[Debian-ha-commits] [fence-agents] 01/09: New upstream version 4.1.0
Valentin Vidic
vvidic-guest at moszumanska.debian.org
Sat Feb 10 10:21:23 UTC 2018
This is an automated email from the git hooks/post-receive script.
vvidic-guest pushed a commit to branch master
in repository fence-agents.
commit 31c295518b2d59b732ca8cf3631cf4d366da167a
Author: Valentin Vidic <Valentin.Vidic at CARNet.hr>
Date: Fri Feb 9 15:08:30 2018 +0100
New upstream version 4.1.0
---
.gitignore | 56 +
.tarball-version | 1 -
.travis.yml | 44 +
.version | 1 -
ChangeLog | 22962 --------------
Makefile.am | 4 +-
Makefile.in | 900 -
README.md | 13 +
aclocal.m4 | 1393 -
compile | 347 -
config.guess | 1421 -
config.sub | 1807 --
configure | 20690 ------------
configure.ac | 67 +-
depcomp | 791 -
doc/COPYRIGHT | 1 +
doc/Makefile.in | 536 -
fence/Makefile.in | 656 -
fence/agents/Makefile.am | 41 +-
fence/agents/Makefile.in | 1181 -
fence/agents/alom/fence_alom.py | 6 -
fence/agents/amt/fence_amt.py | 6 -
fence/agents/amt_ws/fence_amt_ws.py | 7 -
fence/agents/apc/fence_apc.py | 6 -
fence/agents/apc_snmp/README | 45 +
fence/agents/apc_snmp/fence_apc_snmp.py | 6 -
fence/agents/apc_snmp/powernet369.mib | 31109 +++++++++++++++++++
fence/agents/autodetect/a.py | 8 +
fence/agents/autodetect/autodetect.py | 255 +
fence/agents/autodetect/autodetect_test.py | 33 +
fence/agents/autodetect/b.py | 2 +
fence/agents/{apc => autodetect}/fence_apc.py | 25 +-
.../fence_bladecenter.py | 6 +-
.../{brocade => autodetect}/fence_brocade.py | 2 +-
.../fence_ilo_moonshot.py | 2 +-
fence/agents/{lpar => autodetect}/fence_lpar.py | 36 +-
.../{lib/fencing.py.py => autodetect/fencing.py} | 270 +-
fence/agents/aws/fence_aws.py | 126 +
fence/agents/azure_arm/fence_azure_arm.py | 42 +-
fence/agents/bladecenter/fence_bladecenter.py | 6 -
fence/agents/brocade/fence_brocade.py | 6 -
fence/agents/cisco_mds/fence_cisco_mds.py | 6 -
fence/agents/cisco_ucs/fence_cisco_ucs.py | 12 +-
fence/agents/compute/fence_compute.py | 498 +-
fence/agents/docker/fence_docker.py | 8 +-
fence/agents/drac/fence_drac.py | 6 -
fence/agents/drac5/fence_drac5.py | 6 -
fence/agents/dummy/fence_dummy.py | 6 -
fence/agents/eaton_snmp/README | 20 +
fence/agents/eaton_snmp/fence_eaton_snmp.py | 6 -
fence/agents/emerson/fence_emerson.py | 6 -
fence/agents/eps/fence_eps.py | 6 -
fence/agents/evacuate/fence_evacuate.py | 407 +
fence/agents/gce/fence_gce.py | 110 +
fence/agents/hds_cb/fence_hds_cb.py | 6 -
.../heuristics_ping/fence_heuristics_ping.py | 198 +
fence/agents/hpblade/fence_hpblade.py | 6 -
fence/agents/ibmblade/fence_ibmblade.py | 6 -
fence/agents/ifmib/README | 45 +
fence/agents/ifmib/fence_ifmib.py | 6 -
fence/agents/ilo/fence_ilo.py | 6 -
fence/agents/ilo_moonshot/fence_ilo_moonshot.py | 6 -
fence/agents/ilo_mp/fence_ilo_mp.py | 6 -
fence/agents/ilo_ssh/fence_ilo_ssh.py | 15 +-
fence/agents/intelmodular/fence_intelmodular.py | 6 -
fence/agents/ipdu/fence_ipdu.py | 6 -
fence/agents/ipmilan/fence_ipmilan.py | 44 +-
fence/agents/ironic/fence_ironic.py | 6 -
fence/agents/kdump/fence_kdump.8 | 130 -
fence/agents/ldom/fence_ldom.py | 6 -
fence/agents/lib/Makefile.in | 650 -
fence/agents/lib/check_used_options.py | 2 +-
fence/agents/lib/fence2man.xsl | 6 +
fence/agents/lib/fencing.py.py | 160 +-
fence/agents/lib/fencing_snmp.py.py | 26 +-
fence/agents/lib/metadata.rng | 3 +-
fence/agents/lib/tests/test_fencing.py | 123 +
fence/agents/lpar/fence_lpar.py | 6 -
fence/agents/mpath/fence_mpath.py | 6 -
fence/agents/netio/fence_netio.py | 6 -
fence/agents/powerman/fence_powerman.py | 8 -
fence/agents/pve/fence_pve.py | 15 +-
fence/agents/raritan/fence_raritan.py | 6 -
fence/agents/rcd_serial/fence_rcd_serial.py | 7 -
.../agents/rcd_serial/rcd_serial_cable_diagram.svg | 276 +
fence/agents/rhevm/fence_rhevm.py | 56 +-
fence/agents/rsa/fence_rsa.py | 6 -
fence/agents/rsb/fence_rsb.py | 6 -
fence/agents/sanbox2/fence_sanbox2.py | 6 -
fence/agents/sbd/fence_sbd.py | 6 -
fence/agents/scsi/fence_scsi.py | 21 +-
fence/agents/vbox/fence_vbox.py | 94 +-
fence/agents/virsh/fence_virsh.py | 6 -
fence/agents/vmware/fence_vmware.py | 10 +-
fence/agents/vmware/fence_vmware_helper.pl | 276 +
fence/agents/vmware_rest/fence_vmware_rest.py | 183 +
fence/agents/vmware_soap/fence_vmware_soap.py | 9 +-
fence/agents/vmware_vcloud/fence_vmware_vcloud.py | 211 +
fence/agents/wti/fence_wti.py | 6 -
fence/agents/xenapi/fence_xenapi.py | 6 -
fence/agents/zvm/fence_zvm.8 | 87 -
fence/agents/zvm/fence_zvm.c | 1 +
fence/agents/zvm/fence_zvm_man_page | 5 +-
fence/agents/zvm/{fence_zvm.c => fence_zvmip.c} | 440 +-
fence/agents/zvm/fence_zvmip.py | 11 +-
install-sh | 501 -
ltmain.sh | 9655 ------
m4/libtool.m4 | 7992 -----
m4/ltoptions.m4 | 384 -
m4/ltsugar.m4 | 123 -
m4/ltversion.m4 | 23 -
m4/lt~obsolete.m4 | 98 -
make/agentccheck.mk | 23 +
make/agentpycheck.mk | 1 +
make/clusterautoconfig.h.in | 192 -
make/copyright.cf | 6 -
make/fencebuild.mk | 9 +-
make/fencemanc.mk | 10 +
make/fencemanperl.mk | 9 +
make/release.mk | 67 +-
missing | 215 -
scripts/fenceparse | 42 -
tests/data/metadata/fence_alom.xml | 58 +-
tests/data/metadata/fence_amt.xml | 44 +-
tests/data/metadata/fence_amt_ws.xml | 37 +-
tests/data/metadata/fence_apc.xml | 58 +-
tests/data/metadata/fence_apc_snmp.xml | 44 +-
.../{fence_azure_arm.xml => fence_aws.xml} | 56 +-
tests/data/metadata/fence_azure_arm.xml | 53 +-
tests/data/metadata/fence_bladecenter.xml | 58 +-
tests/data/metadata/fence_brocade.xml | 58 +-
tests/data/metadata/fence_cisco_mds.xml | 44 +-
tests/data/metadata/fence_cisco_ucs.xml | 44 +-
tests/data/metadata/fence_compute.xml | 84 +-
tests/data/metadata/fence_docker.xml | 23 +-
tests/data/metadata/fence_drac.xml | 51 +-
tests/data/metadata/fence_drac5.xml | 58 +-
tests/data/metadata/fence_dummy.xml | 9 +-
tests/data/metadata/fence_eaton_snmp.xml | 44 +-
tests/data/metadata/fence_emerson.xml | 44 +-
tests/data/metadata/fence_eps.xml | 51 +-
.../{fence_compute.xml => fence_evacuate.xml} | 94 +-
.../metadata/{fence_xenapi.xml => fence_gce.xml} | 48 +-
tests/data/metadata/fence_hds_cb.xml | 58 +-
.../{fence_sbd.xml => fence_heuristics_ping.xml} | 65 +-
tests/data/metadata/fence_hpblade.xml | 58 +-
tests/data/metadata/fence_ibmblade.xml | 44 +-
tests/data/metadata/fence_idrac.xml | 61 +-
tests/data/metadata/fence_ifmib.xml | 44 +-
tests/data/metadata/fence_ilo.xml | 51 +-
tests/data/metadata/fence_ilo2.xml | 51 +-
tests/data/metadata/fence_ilo3.xml | 61 +-
tests/data/metadata/fence_ilo3_ssh.xml | 58 +-
tests/data/metadata/fence_ilo4.xml | 61 +-
tests/data/metadata/fence_ilo4_ssh.xml | 58 +-
tests/data/metadata/fence_ilo_moonshot.xml | 58 +-
tests/data/metadata/fence_ilo_mp.xml | 58 +-
tests/data/metadata/fence_ilo_ssh.xml | 58 +-
tests/data/metadata/fence_imm.xml | 61 +-
tests/data/metadata/fence_intelmodular.xml | 44 +-
tests/data/metadata/fence_ipdu.xml | 44 +-
tests/data/metadata/fence_ipmilan.xml | 61 +-
tests/data/metadata/fence_ironic.xml | 57 +-
tests/data/metadata/fence_kdump.xml | 2 +-
tests/data/metadata/fence_ldom.xml | 58 +-
tests/data/metadata/fence_lpar.xml | 58 +-
tests/data/metadata/fence_mpath.xml | 16 +-
tests/data/metadata/fence_netio.xml | 44 +-
tests/data/metadata/fence_ovh.xml | 37 +-
tests/data/metadata/fence_powerman.xml | 23 +-
tests/data/metadata/fence_pve.xml | 51 +-
tests/data/metadata/fence_raritan.xml | 44 +-
tests/data/metadata/fence_rcd_serial.xml | 9 +-
tests/data/metadata/fence_rhevm.xml | 53 +-
tests/data/metadata/fence_rsa.xml | 58 +-
tests/data/metadata/fence_rsb.xml | 58 +-
tests/data/metadata/fence_sanbox2.xml | 51 +-
tests/data/metadata/fence_sbd.xml | 16 +-
tests/data/metadata/fence_scsi.xml | 11 +-
tests/data/metadata/fence_tripplite_snmp.xml | 44 +-
tests/data/metadata/fence_vbox.xml | 78 +-
tests/data/metadata/fence_virsh.xml | 65 +-
tests/data/metadata/fence_vmware.xml | 51 +-
.../{fence_rhevm.xml => fence_vmware_rest.xml} | 59 +-
tests/data/metadata/fence_vmware_soap.xml | 44 +-
.../{fence_rhevm.xml => fence_vmware_vcloud.xml} | 59 +-
tests/data/metadata/fence_wti.xml | 58 +-
tests/data/metadata/fence_xenapi.xml | 37 +-
tests/data/metadata/fence_zvmip.xml | 49 +-
189 files changed, 37427 insertions(+), 74484 deletions(-)
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..70cfca5
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,56 @@
+*.orig
+*.rej
+*.swp
+Makefile.in
+aclocal.m4
+autoconf
+autoheader
+autom4te.cache
+automake
+autoscan.log
+compile
+configure
+configure.scan
+config.guess
+config.log
+config.sub
+config.status
+Makefile
+depcomp
+install-sh
+libtoolize
+ltmain.sh
+libtool
+make/stamp-h1
+
+# ignore "libtoolized" m4 files, but keep our (enumerated) ones
+/m4/*
+!/m4/ac_python_module.m4
+
+# make/release.mk related litter
+/.tarball-version
+/tag-*
+
+make/clusterautoconfig.h*
+missing
+*.pc
+.deps
+.libs
+*.o
+*.la
+*.lo
+fence/agents/lib/*.py*
+!fence/agents/lib/*.py.py
+!fence/agents/lib/check_used_options.py
+fence/agents/*/fence_*
+fence/agents/*/.dirstamp
+!fence/agents/*/fence_*.py
+!fence/agents/*/fence_*.c
+!fence/agents/*/fence_*.h
+!fence/agents/kdump/fence_kdump_send.8
+!fence/agents/manual/fence_ack_manual.8
+!fence/agents/zvm/fence_zvm_man_page
+.fence*.tmp
+fence-agents*
+.version
+tests/devices.d/*
diff --git a/.tarball-version b/.tarball-version
deleted file mode 100644
index 19a7345..0000000
--- a/.tarball-version
+++ /dev/null
@@ -1 +0,0 @@
-4.0.25
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..df9e599
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,44 @@
+language: python
+sudo: required
+dist: trusty
+
+python:
+ - "2.7"
+
+addons:
+ apt:
+ packages:
+ - python-pexpect
+ - xsltproc
+ - time
+ - libpam0g-dev
+ - libxml2-utils
+ - libcimcclient0-dev
+ - swig
+ - iputils-ping
+
+before_install:
+ - pip install suds
+ - pip install pycurl
+ - pip install requests
+ - pip install pexpect
+ - pip install boto3
+ - pip install google-api-python-client
+
+before_script:
+ - wget https://github.com/Openwsman/openwsman/archive/v2.6.3.tar.gz
+ - tar zxvf v2.6.3.tar.gz
+ - cd openwsman-2.6.3
+ - perl -p -i -e "s/(\\$\{CURL_LIBRARIES\})/\1 ssl crypto/g" src/lib/CMakeLists.txt
+ - mkdir build && cd build
+ - cmake .. -DPYTHON_EXECUTABLE:FILEPATH=~/virtualenv/python2.7/bin/python -DLIB=/lib/x86_64-linux-gnu -DCMAKE_LIBRARY_ARCHITECTURE=x86_64-linux-gnu -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_VERBOSE_MAKEFILE=TRUE
+ - make
+ - sudo make install
+ - cd ../..
+
+script:
+ - ./autogen.sh
+ - ./configure
+ - make -j4
+ - make -j4 check
+ - PYTHONPATH=fence/agents/lib python fence/agents/lib/tests/test_fencing.py
diff --git a/.version b/.version
deleted file mode 100644
index 19a7345..0000000
--- a/.version
+++ /dev/null
@@ -1 +0,0 @@
-4.0.25
diff --git a/ChangeLog b/ChangeLog
deleted file mode 100644
index e4dd144..0000000
--- a/ChangeLog
+++ /dev/null
@@ -1,22962 +0,0 @@
-2017-01-16 marxsk <mgrac at redhat.com>
-
- Merge pull request #103 from oalbrigt/pycurl-fix-StringIO-issues
- pycurl agents: fix StringIO issues
-
-2017-01-13 Oyvind Albrigtsen <oalbrigt at redhat.com>
-
- pycurl agents: fix StringIO issues
-
-2017-01-09 Oyvind Albrigtsen <oalbrigt at redhat.com>
-
- Merge pull request #102 from ofaaland/b_powerman_path_fix
- fence_powerman: fix typo in option powerman-path
-
-2017-01-06 Olaf Faaland <faaland1 at llnl.gov>
-
- fence_powerman: fix typo in option powerman-path
- References to dictionary options[] sometimes used key "powerman_path"
- and other times "powerman-path", resulting in references to keys that
- did not exist.
-
- This resulted in total failure of the fence agent.
-
- This commit makes the key used consistent.
-
-2017-01-06 Oyvind Albrigtsen <oalbrigt at redhat.com>
-
- Merge pull request #101 from oalbrigt/python3-only-build
- Fix to be able to build on Python 3 only systems
-
-2016-12-23 Oyvind Albrigtsen <oalbrigt at redhat.com>
-
- Fix to be able to build on Python 3 only systems
-
-2016-12-22 Oyvind Albrigtsen <oalbrigt at redhat.com>
-
- Merge pull request #98 from n3world/disableStderrLogging
- fencing: Add option to disable logging to stderr
-
-2016-12-21 Nate Clark <nate at neworld.us>
-
- fencing: Add --quiet option to disable logging to stderr
-
-2016-12-13 Oyvind Albrigtsen <oalbrigt at redhat.com>
-
- Merge pull request #87 from mbaldessari/fence_ironic
- Ironic fence agent
-
-2016-12-12 marxsk <mgrac at redhat.com>
-
- Merge pull request #100 from oalbrigt/travis-fix
- travis: update Python path
-
-2016-12-12 Oyvind Albrigtsen <oalbrigt at redhat.com>
-
- travis: update Python path
-
-2016-12-12 marxsk <mgrac at redhat.com>
-
- Merge pull request #99 from MSSedusch/master
- remove getopt for new parameters for fence_azure_arm
-
- Merge pull request #97 from n3world/specifyLogCommand
- fencing: Specify command to be logged by run_command
-
- Merge pull request #96 from vuntz/fix-travis
- Fix travis issue in XML metadata introduced by 0f170a9
-
-2016-12-06 Sebastian Dusch <sedusch at microsoft.com>
-
- remove getopt for new parameters
-
-2016-12-01 Nate Clark <nate at neworld.us>
-
- fencing: Specify command to be logged by run_command
- Currently run_command special cases the logging of commands with ipmitool and removes everything
- between the flat -P and -p. Instead of special casing commands with ipmitool allow the caller to
- provide the command to log so that the command can do any necessary scrubbing of the message to be
- logged.
-
-2016-12-01 Vincent Untz <vuntz at suse.com>
-
- Fix travis
- Regression introduced in 0f170a937bd0944e172004dc30df2fc240d9ca20
-
-2016-12-01 Andrew Beekhof <andrew at beekhof.net>
-
- Merge branch 'master' of github.com:ClusterLabs/fence-agents
-
- compute: Fix debug message
-
-2016-11-23 marxsk <mgrac at redhat.com>
-
- Merge pull request #95 from memotype/master
- fence_vmware_soap: Suppress InsecureRequestWarning when ssl_insecure is given
-
-2016-11-21 Isaac Freeman <memotype at gmail.com>
-
- Suppress InsecureRequestWarning when ssl_insecure is given
-
-2016-11-14 marxsk <mgrac at redhat.com>
-
- Merge pull request #84 from jnpkrn/build-m4-macro-move
- build: fix possibly undefined macro AC_PYTHON_MODULE
-
-2016-11-10 Jan Pokorný <jpokorny at redhat.com>
-
- build: fix possibly undefined macro AC_PYTHON_MODULE
- As already mentioned 2 years back by Alan Evangelista[1], fence-agents
- project indeed uses a strange build setup, which furthermore makes it
- impossible to pass the configure stage successfully, at least with
- some combinations of the "autotools" programs' versions (e.g., as old
- ones as present in RHEL 6).
-
- Remedy is as simple as originally suggested, which also means m4
- directory no longer needs to be reinsured in autogen.sh (though it
- still is as a legacy), but special care must be taken with .gitignore
- and maintainer-clean-local target of the main Makafile.
-
- [1] https://www.redhat.com/archives/cluster-devel/2014-October/msg00161.html
-
-2016-11-10 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Remove unused Makefile.am files
- Currently, we are using single Makefile.am in fence/agents directory.
-
-2016-11-10 marxsk <mgrac at redhat.com>
-
- Merge pull request #92 from MSSedusch/master
- fence_azure_arm: add fencing agent for Azure Resource Manager
-
- Merge pull request #93 from ofaaland/feature-powerman-upstream
- fence_powerman: Add powerman agent
-
-2016-11-10 Andrew Beekhof <andrew at beekhof.net>
-
- compute: Simpler check for nova force down compatibility
-
-2016-11-09 Olaf Faaland <faaland1 at llnl.gov>
-
- feature powerman address review comments pass 2
- * Set default for powerman_path in configure
-
- * Remove unnecessary query after powerman --on or --off
- fence_action() automatically queries power status after a power_set
- function call, because many devices report success when the on/off
- actually failed.
-
- * Delay before checking powerman is executable
- Use the provided run_delay() function to determine when a delay is
- necessary. Call it before testing that the powerman binary is
- executable. The project's sanity tests depend on this to handle the
- missing dependency (powerman), within their testing environment.
-
-2016-11-09 Sebastian Dusch <sedusch at microsoft.com>
-
- fence_azure_arm: remove reboot action, remove sys.exit for setting powerstate, remove global compute_client and pass it as argument to functions
-
-2016-11-09 Marian Krcmarik <mkrcmari at redhat.com>
-
- compute: Ensure we can connect to nova when fixing the plug name
-
- compute: Correctly identify when the nodename already includes the supplied domain
-
- compute: correctly implement 'on' when the force-down API call is available
-
- compute: Use the best available nova API version
-
-2016-11-08 Olaf Faaland <faaland1 at llnl.gov>
-
- feature powerman address review comments pass 1
- Removed static manpage which will be auto-generated from metadata
- Removed unnecessary run_delay() call in main
- Create option to set path to powerman binary
- Verify powerman binary is executable
- Removed redundant default ipport
- Removed unnecessary debug logging of raw arguments
- Removed unnecessary reboot function, implemented in a
- way that made it no better than the one already
- implemented within lib/fencing.py
- Return value of monitor action is 'error' if powerman not running
-
-2016-11-08 marxsk <mgrac at redhat.com>
-
- Merge pull request #88 from oalbrigt/fence_compute-fix-connectionerror
- fence_compute: fix ConnectionError by using full module name
-
-2016-11-07 Olaf Faaland <faaland1 at llnl.gov>
-
- feature-powerman Add list support and verify power state after changes
- Add list support and change log level to error, for error messages users
- should be made aware of.
-
- When fencing or unfencing a node, verify the power state of the device
- with --query before returning. Return code from the powerman "on" or
- "off" commands can be unreliable for some devices.
-
-2016-11-07 Michael Kit Gilbert <gilbert32 at llnl.gov>
-
- feature-powerman add fence agent for powerman
- Add a fence agent for powerman, https://github.com/chaos/powerman
-
-2016-11-07 Sebastian Dusch <sedusch at microsoft.com>
-
- fence_azure_arm: move option definitions to define_new_opts
-
- fence_azure_arm: add fencing agent for Azure Resource Manager
-
-2016-11-02 Michele Baldessari <michele at acksyn.org>
-
- Ironic fence agent
- Introduce a fence agent that plugs into OpenStack's Ironic (Bare Metal
- as a service) service.
-
- Testing recap:
- 1) With ironic services up and running
- 1.1) Status
- $ fence_ironic -k $OS_AUTH_URL -l admin -p $OS_PASSWORD -o status -n 2b40a642-3d7b-4a43-b6a2-57a3967ebb1c
- Status: ON
-
- 1.2) Power off
- $ fence_ironic -k $OS_AUTH_URL -l admin -p $OS_PASSWORD -o off -n 2b40a642-3d7b-4a43-b6a2-57a3967ebb1c
- Success: Powered OFF // Machine confirmed to be off
-
- 1.3) Power on
- $ fence_ironic -k $OS_AUTH_URL -l admin -p $OS_PASSWORD -o on -n 2b40a642-3d7b-4a43-b6a2-57a3967ebb1c
- Success: Powered ON
-
- 1.4) Power on (when already powered on)
- fence_ironic -k $OS_AUTH_URL -l admin -p $OS_PASSWORD -o on -n 2b40a642-3d7b-4a43-b6a2-57a3967ebb1c
- Success: Already ON
-
- 2) With ironic services down/in error
- 2.1) Status
- $ fence_ironic -k $OS_AUTH_URL -l admin -p $OS_PASSWORD -o status -n 2b40a642-3d7b-4a43-b6a2-57a3967ebb1c
- Failed: Unable to obtain correct plug status or plug is not available
-
- 2.2) Power off
- $ fence_ironic -k $OS_AUTH_URL -l admin -p $OS_PASSWORD -o off -n 2b40a642-3d7b-4a43-b6a2-57a3967ebb1c
- Failed: Unable to obtain correct plug status or plug is not available
-
- 2.3) Power on
- $ fence_ironic -k $OS_AUTH_URL -l admin -p $OS_PASSWORD -o on -n 2b40a642-3d7b-4a43-b6a2-57a3967ebb1c
- Failed: Unable to obtain correct plug status or plug is not available
-
- 3) Non existing VM
- $ fence_ironic -k $OS_AUTH_URL -l admin -p $OS_PASSWORD -o on -n foo
- Failed: Unable to obtain correct plug status or plug is not available
-
- 4) Verified that password is never logged even when invoked with '-v'
-
- 5) Tested list command
- $ fence_ironic -k http://192.0.2.1:5000/v2.0 -l admin -p 1ea6ac2d58b975455bf90eeb625ba57ac2c67766 -o list-status -C " "
- ffa9ff02-20f1-45f4-b44c-1276d8120827 control-0 ON
- 79956ff7-8f9a-45a8-k90b-f711daf79bed control-2 ON
- 2b40a642-3d7b-4a43-b6a2-57a3967ebb1c compute-0 ON
- 70e07769-c4c5-4e0d-k134-41bca3f525d4 control-3 ON
- b1db4b9b-da1a-4f3b-k980-88251eb5bdcd control-1 ON
-
- Set up the fence agent like this:
- hostmap=$(nova list | grep ctlplane | awk -F\| '{print $3 ":" $2}' | tr -d ' ' | tr '\n' ' ')
- sudo pcs stonith create shooter fence_ironic auth-url=${OS_AUTH_URL} \
- login=${OS_USERNAME} passwd=${OS_PASSWORD} tenant-name=${OS_TENANT_NAME} \
- pcmk_host_map=\"${hostmap}\" op monitor interval=60s
-
-2016-10-17 Oyvind Albrigtsen <oalbrigt at redhat.com>
-
- fence_compute: fix ConnectionError by using full module name
-
-2016-09-19 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_zvmip: Update XML metadata
-
- fence_zvmip: Default shell timeout was float instead of integer
-
- fencing: Add new types to RNG schema
-
- fencing: Add types 'integer/second' for validation and metadata
-
- fence_lpar: Handle exceptions when invalid output is read
-
-2016-09-12 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_lpar: Add support for IVM
-
-2016-08-22 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_cisco_ucs: Improve a method to obtain status
- On Cisco UCS there are two attributes which are important for obtaining
- correct power status of blade. One checks if slot is powered ON and other if
- the node is pulled off the blade.
-
-2016-08-22 marxsk <mgrac at redhat.com>
-
- Merge pull request #81 from oalbrigt/install-fix
- Fix install issue for symlinked agents
-
- Merge pull request #85 from oalbrigt/fence_mpath-unique-key-per-node
- fence_mpath: update unique key info to say that it's per node and not per node/device
-
-2016-08-17 Oyvind Albrigtsen <oalbrigt at redhat.com>
-
- fence_scsi: correct 'devive(s)' typo
-
- fence_mpath: update unique key info to say that it's per node and not per node/device
-
-2016-08-15 Marek 'marx' Grac <mgrac at redhat.com>
-
- build: Do not test paths in metadata
-
-2016-07-13 Oyvind Albrigtsen <oalbrigt at redhat.com>
-
- Python 2.6 compatibility
-
- Fix install issue for symlinked agents
-
-2016-07-06 Andrew Beekhof <beekhof at Andrew-MBP16.local>
-
- compute: Prevent use of undefined variable
-
-2016-06-29 Marek 'marx' Grac <mgrac at redhat.com>
-
- build: clean-up of CLEAN_TARGET_ADDITIONAL
-
- build: Do not fail if manual/ exists
-
-2016-06-27 Marek 'marx' Grac <mgrac at redhat.com>
-
- build: Properly handle fence_ack_manual
-
- build: Fix release scripts
-
- build: Check if pywsman is installed
-
-2016-06-22 marxsk <mgrac at redhat.com>
-
- Merge pull request #78 from oalbrigt/fence_compute-indent-fix
- fence_compute: fix indent issue
-
- Merge pull request #79 from oalbrigt/fence_apc-fix-connection-timed-out
- fence_apc: fix for connection timed out issue
-
-2016-06-22 Oyvind Albrigtsen <oalbrigt at redhat.com>
-
- fence_apc: fix for connection timed out issue
-
-2016-06-16 marxsk <mgrac at redhat.com>
-
- Merge pull request #73 from vvidic/master
- fence_sbd: fix return value of fence functions
-
-2016-06-14 Andrew Beekhof <andrew at beekhof.net>
-
- compute: Correctly handle installations without tagged flavours
-
-2016-06-07 Oyvind Albrigtsen <oalbrigt at redhat.com>
-
- fence_compute: fix indent issue
-
-2016-06-06 marxsk <mgrac at redhat.com>
-
- Merge pull request #74 from oalbrigt/parallel-build
- Parallel build
-
-2016-06-02 Oyvind Albrigtsen <oalbrigt at redhat.com>
-
- fence_pve: fix indentation
-
- Parallel build
-
-2016-06-02 Valentin Vidic <Valentin.Vidic at CARNet.hr>
-
- fence_sbd: return value of fence functions is bool
-
-2016-05-11 Marek 'marx' Grac <mgrac at redhat.com>
-
- Merge branch 'master' of https://github.com/ClusterLabs/fence-agents
-
-2016-06-02 marxsk <mgrac at redhat.com>
-
- Merge pull request #34 from aspiers/fix/typos
- Fix a couple of typos
-
- Merge pull request #48 from credativ/install-fence_zvm.h
- Install missing fence_zvm.h into release tarball
-
- Merge pull request #75 from xtavras/fence_pve_fix
- this fix allows to use dedicated user for fencing, not only root at pam
-
- Merge pull request #69 from oalbrigt/onoff-cycle-cleanup
- onoff/cycle cleanup
-
-2016-06-02 Andrew Beekhof <andrew at beekhof.net>
-
- compute: Allow evacuation to be disabled
- instance-filtering = false
- - nothing happens
-
- instance-filtering = true and no flavors or images tagged
- - evacuate everything for compatibility with OSP 8
-
- instance-filtering = true and at least one flavor or image is tagged
- - evacuate only the instances derived from those flavors and/or images
-
-2016-05-27 Andrew Beekhof <andrew at beekhof.net>
-
- compute: Correctly enable filtering and fix related bugs
- Enable tag based filtering when any images or flavors are found with the
- 'evacuable' tag. Otherwise continue to evacuate all instances.
-
- Also fix a number of bugs in the code that determines which instances
- should be evacuated.
-
-2016-05-25 Stanislav Kopp <stanislav.kopp at native-instruments.de>
-
- this fix allows to use dedicated user for fencing, not only root at pam
-
-2016-05-25 marxsk <mgrac at redhat.com>
-
- Merge pull request #67 from oalbrigt/scsi-shouldnt-reference-dm
- Remove reference to /dev/dm-X devices
-
- Merge pull request #68 from oalbrigt/fence_ipmilan-warning-about-success-before-node-is-powered-off
- fence_ipmilan: add warning that cycle method can report success before node is powered off
-
-2016-05-18 marxsk <mgrac at redhat.com>
-
- Merge pull request #70 from oalbrigt/python3-support
- Python 3 support
-
-2016-05-10 Valentin Vidic <Valentin.Vidic at CARNet.hr>
-
- fence_sbd: fix return value of fence functions
- sbd command exits with 0 on success but fence functions
- should return True in this case
-
-2016-05-10 Oyvind Albrigtsen <oalbrigt at redhat.com>
-
- fence_compute: Python 3 support
-
- Merge remote-tracking branch 'upstream/master' into python3-support
-
-2016-05-09 Andrew Beekhof <andrew at beekhof.net>
-
- fence_compute: fix expected metadata
-
- fence_compute: improved handling of compute nodes with/without FQDNs
-
-2016-04-28 Oyvind Albrigtsen <oalbrigt at redhat.com>
-
- Python 3 support
-
-2016-04-20 Oyvind Albrigtsen <oalbrigt at redhat.com>
-
- onoff/cycle cleanup
-
- Remove reference to /dev/dm-X devices
-
- fence_ipmilan: add warning that cycle method can report success before node is powered off
-
-2016-04-07 marxsk <mgrac at redhat.com>
-
- Merge pull request #65 from oalbrigt/travis-openwsman-fix
- travis: fix for openwsman test
-
-2016-04-06 Oyvind Albrigtsen <oalbrigt at redhat.com>
-
- travis: fix for openwsman test
-
-2016-03-22 Andrew Beekhof <andrew at beekhof.net>
-
- Merge pull request #37 from vuntz/compute-options
- fence_compute: Add --insecure and --region-name command line arguments
-
-2016-03-17 Andrew Beekhof <andrew at beekhof.net>
-
- fence_compute: additional debug logging for when things go wrong
-
- fence_compute: Correctly locate all instances to be evacuated
-
-2016-03-14 marxsk <mgrac at redhat.com>
-
- Merge pull request #47 from credativ/zvm-help
- Print fence_zvm --help to stdout and exit with status 0
-
- Merge pull request #63 from disco-stu/fence_ipdu-syspath
- fence_ipdu: fix hardcoded FENCEAGENTSLIBDIR.
-
-2016-03-13 Adrian Vondendriesch <adrian.vondendriesch at credativ.de>
-
- fence_ipdu: fix hardcoded FENCEAGENTSLIBDIR.
- FENCEAGENTSLIBDIR was hardcoded to "/usr/share/fence".
-
-2016-03-03 marxsk <mgrac at redhat.com>
-
- Merge pull request #49 from oalbrigt/fence_amt_ws
- fence_amt_ws: new fence-agent
-
-2016-03-03 Oyvind Albrigtsen <oalbrigt at redhat.com>
-
- fence_amt_ws: new fence-agent
-
-2016-02-11 Adam Spiers <aspiers at suse.com>
-
- fix "foce" typo
-
- fix "it's" typo
-
-2016-02-09 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_cisco_ucs: Update XML metadata
-
- fence_cisco_ucs: Add --missing-as-off
-
- fence_cisco_ucs: Obtain 'status' from different attribute
-
-2016-02-06 Christoph Berg <myon at debian.org>
-
- Install missing fence_zvm.h into release tarball
-
- Print fence_zvm --help to stdout and exit with status 0
- This makes fence_zvm --help conform with the other fence agents
- behavior.
-
-2016-02-01 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_cisco_ucs: Obtain status of device from different endpoint
- Resolves: rhbz#1298430
-
-2016-01-28 marxsk <mgrac at redhat.com>
-
- Merge pull request #40 from oalbrigt/fence_scsi-fix-typo-in-short-desc
- fence_scsi: fix "persistentl" typo in short desc
-
-2016-01-28 Oyvind Albrigtsen <oalbrigt at redhat.com>
-
- fence_scsi: fix "persistentl" typo in short desc
-
-2016-01-27 marxsk <mgrac at redhat.com>
-
- Merge pull request #39 from kwaping/add_doc_link
- docs: added link to cluster wiki in README
-
-2016-01-27 Ollie Ready <kwaping at users.noreply.github.com>
-
- docs: added link to cluster wiki in README
-
-2016-01-20 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_compute: Fix indentation
- Mixed indentation is not allowed with 'python -tt'
-
-2016-01-07 Vincent Untz <vuntz at suse.com>
-
- fence_compute: Add --region-name command line argument
- Useful for multi-region setups.
-
- fence_compute: Add --insecure command line argument
- This makes it possible to have fence_compute work with OpenStack
- deployments with SSL certificates that can't be verified (can be the
- case in test systems).
-
-2016-01-06 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_zvmip: Fix makefile to work with dist* targets
-
-2016-01-05 Andrew Beekhof <andrew at beekhof.net>
-
- Merge pull request #33 from beekhof/master
- Instance HA fixes/improvements
-
-2016-01-04 Andrew Beekhof <andrew at beekhof.net>
-
- fence_compute: Status wont work if the control plane is not yet up
-
-2015-12-16 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_scsi: Replace hard reboot with direct call to libc
-
- fence_ipmilan: 'diag' action should not require setting --method=cycle
- When action is 'diag', set --method to cycle automatically.
-
-2015-12-09 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_ipmilan: Fix typo in reboo_cycle
-
-2015-12-09 Andrew Beekhof <andrew at beekhof.net>
-
- fence_compute: Correctly find instances assigned to a named compute node
-
- fence_compute: Logging improvements
-
- fence_compute: Correctly find the UUID of instances to be evacuated
-
- fence_compute: Fencing should fail if instances cannot be evacuated
-
- fence_compute: Just pass the uuid to _server_evacuate
-
- fence_compute: Record error codes from the Nova API
-
- fence_compute: Simplify option passing to _host_evacuate()
-
- fence_compute: Use the non-deprecated form for --update
-
- fence_compute: Log exception details in debug mode
-
- fence_compute: Make the instance filtering logic optional
-
-2015-12-08 Andrew Beekhof <andrew at beekhof.net>
-
- fence_compute: Update expected metadata
-
- fence_compute: Update metadata
-
- fence_compute: Support a present-but-disabled mode
-
-2015-12-03 Andrew Beekhof <andrew at beekhof.net>
-
- fence_compute: Do not default to evacuating all instances if none are flagged
-
- fence_compute: Perform a real status operation in record-only mode
-
- fence_compute: Advertise ourselves as a fabric device to prevent reboot operations
-
- fence_compute: Match compute nodes as both FQDN and host names
-
-2015-12-02 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_ipmilan: Add action diag
- Previous version of fence_ipmilan (C-based) contains also action 'diag'. This commit adds this action to new fence agent.
-
- Resolves: rhbz#1286045
-
-2015-12-02 marxsk <mgrac at redhat.com>
-
- Merge pull request #32 from kwaping/readme_update
- README wording update
-
-2015-12-01 Ollie Ready <kwaping at users.noreply.github.com>
-
- README wording update
-
-2015-11-19 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- Merge pull request #27 from aspiers/fix/evacute-typo
- fix 'evacute' typo
-
-2015-11-18 Adam Spiers <aspiers at suse.com>
-
- fix 'evacute' typo
- This requires the corresponding fix in NovaCompute and NovaEvacuate.
-
-2015-11-16 Marek 'marx' Grac <mgrac at redhat.com>
-
- fix
-
- cleanup
-
- next
-
-2015-11-12 Marek 'marx' Grac <mgrac at redhat.com>
-
- refactor login
-
-2015-11-09 Marek 'marx' Grac <mgrac at redhat.com>
-
- it is working: apc, lpar4, blade, brocade
-
- working LPAR
-
-2015-11-05 Marek 'marx' Grac <mgrac at redhat.com>
-
- simplify
-
- autodetect: simplify
-
- Autodetect init
-
-2015-11-04 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Log when cmd-line argument is not used
- Fencing library parse sys.argv[] but it is possible that not all of the arguments will be used. Left arguments are user's mistake but user has to know about it. Warning was added for these cases (usually multiple values for one paramater or parameter without leading --)
-
-2015-10-26 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_zvm: Manual page for fence_zvm
- Normally, manual pages are generated directly from fence agent. In this case, we have manual page
- still in a static file.
-
- fence_zvm: Re-enable fence_zvm agent
-
- fence_ipmilan: Revert default value for --power-wait to 2 seconds
- Resolves: rhbz#273632
-
-2015-10-23 marxsk <mgrac at redhat.com>
-
- Merge pull request #26 from johnruemker/brocade-fix_get_power_status_return
- fence_brocade: Fix incorrect return when getting status for "on", "off"
-
-2015-10-22 John Ruemker <jruemker at redhat.com>
-
- fence_brocade: Fix incorrect return when getting status for "on", "off"
-
-2015-10-19 marxsk <mgrac at redhat.com>
-
- Merge pull request #25 from sbauza/instance_selectivity
- Allow to select which instances to evacuate
-
-2015-10-14 Sylvain Bauza <sbauza at redhat.com>
-
- Allow to select which instances to evacuate
- In order to select which instances could be evacuated automatically,
- the instance has to have either:
- - a flavor where one extra spec key is "evacuate" with "True" as value
- - an image where a metadata key is "evacuate" with "True" as value
-
- In case one instance is neither having a flavor or an image like that,
- the instance won't be evacuated.
-
-2015-10-12 marxsk <mgrac at redhat.com>
-
- Merge pull request #24 from sbauza/mark_host_down
- fence_compute: Set mark host down flag if possible
-
-2015-10-12 Sylvain Bauza <sbauza at redhat.com>
-
- Set mark host down flag if possible
- Since Nova API version 2.11, there is now a new novaclient tool
- that allows to bypass the servicegroup check and not wait for it
- to catch the right host liveness. Using it as a first try and if
- failing, fallbacking to the existing polling.
-
-2015-10-12 marxsk <mgrac at redhat.com>
-
- Merge pull request #22 from krig/fence_vbox
- fence_vbox: Add a fencing agent for VirtualBox
-
-2015-10-12 Kristoffer Grönlund <krig at koru.se>
-
- fence_vbox: Add a fencing agent for VirtualBox
- Adds a fencing agent for virtual machines managed by VirtualBox.
-
- Based on fence_virsh, tested with VirtualBox version 5.0.4 on
- openSUSE 13.2.
-
-2015-09-30 marxsk <mgrac at redhat.com>
-
- Merge pull request #21 from HideoYamauchi/master
- Low:The error output when operator failed in the practice of the command.
-
-2015-09-30 Hideo Yamauchi <renayama19661014 at ybb.ne.jp>
-
- Low:The error output when operator failed in the practice of the command.
- When setting of Docker is necessary, a message of Docker is displayed by
- on commands.
- However, fence_docker does not display it.
- This patch displays a result when "Cannot parse json" error happened.
-
-2015-09-25 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_docker: Add option to set Docker Remote API
-
- fence_scsi: Install fence_scsi_check_hardreboot
-
-2015-09-25 marxsk <mgrac at redhat.com>
-
- Merge pull request #20 from johnruemker/scsi-check_hardreboot
- fence_scsi: Offer hard-reboot option for fence_scsi_check script
-
-2015-09-24 Adrian Vondendriesch <adrian.vondendriesch at credativ.de>
-
- fence_sbd: Add a fencing agent for sbd
- Add a STONITH agent for SDB (STORAGE BASED DEATH).
-
-
- Add option --sbd-path & XML metadata
-
- Remove magic numbers
-
- --delay should work as expected
-
- one more magic number
-
- Use "method" from fencing library
-
- fence_sdb: rename parameter --sbd-devices
-
- Rename --sbd-devices to --devices. Other agents have identical parameters and
- call them "--devices". So keep this parameter equal over the different fencing
- agents.
-
- fence_sbd: Update fence_sdb xml data.
-
- Update fence_sbd xml meta data to catch up with the current state.
-
-2015-09-24 John Ruemker <jruemker at redhat.com>
-
- fence_scsi: Offer hard-reboot option for fence_scsi_check script
- The existing implementation of fence_scsi_check returns an error if any
- device is no longer registered properly, and this error return causes
- watchdog to use its custom procedure to reboot the host. This procedure
- is prone to blocking, especially when GFS2 file systems are mounted or
- multipath devices are configured to queue indefinitely, so having the
- check be able to hard-reboot the host instead of returning a failure
- gives a means for avoiding these blockages.
-
-2015-09-23 marxsk <mgrac at redhat.com>
-
- Merge pull request #19 from johnruemker/scsi-reset_before_getkeys
- fence_scsi: Reset device prior to all uses of sg_persist
-
-2015-09-22 John Ruemker <jruemker at redhat.com>
-
- fence_scsi: Reset device prior to all uses of sg_persist
- Currently the agent will reset prior to several areas where it runs
- sg_persist, to clear out any "Unit Attention" conditions that could
- otherwise cause the sg_persist command to report failures. However
- several paths remain that could fail if a "Unit Attention" condition
- exist, so we should reset before any use of sg_persist.
-
-2015-09-10 Marek 'marx' Grác <mgrac at redhat.com>
-
- fence_apc: Support for v6.x firmware
- There are no changes in interface, so it is enough to accept new version number.
-
- Login process over telnet has changed a bit and autodection of EOL did not work properly. Relevant part
- of changed so it work correctly when after empty 'User Name', the device ask for it again.
-
-2015-09-07 marxsk <mgrac at redhat.com>
-
- Merge pull request #14 from mbaldessari/amt_fix
- Fix AMT fence agent
-
-2015-08-26 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_ilo: If gnutls can not open connection than --tls1.0 is tried in second attempt
- Resolves: rhbz#1256902
-
-2015-08-19 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_virsh: Fix --missing-as-off
- Patch 0aacfcf209c473ab4c1fff4de653a673b92484de was pushed unintentionally before tests were done.
-
- testing: Start using Travis CI
-
- fence_virsh: Add --missing-as-off option
- Resolves: rhbz#1254821
-
-2015-08-17 Marek 'marx' Grac <mgrac at redhat.com>
-
- testing: Improve tests for --delay
- (and fix fence_dummy that was broken)
-
- fence_mpath: Update XML metadata to match changes in --devices
-
- fence_mpath: --devices is required argument
- In the fence_scsi this argument is not required because it can be automatically determined.
- This is not yet valid for fence_mpath.
-
- fence_scsi: Watchdog script should pass on a system that is not configured
-
-2015-08-13 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_mpath: Fix unfencing problems when /var/run/cluster is removed and monitor these files
- This patch solves same problem as 2f1be046c0c880ec14caff2193b4daa18bcecab7 and 5b3c2b26e5dfa4784d44ac875c7780495bacdde8
- for fence_scsi.
-
-2015-08-12 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Actions 'list-status' and 'validate-all' were not documented in manual pages
-
-2015-08-11 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Do NOT check if --plug is used together with --port-as-ip for stdin input
- On STDIN input it should be ignored as other unknown parameters.
-
-2015-08-10 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Fence library should work correctly also when power state is None
- Previously, valid states ON/OFF were accepted and all other values were mapped to UNKNOWN. But if value is None then
- it is not possible to do state.upper() and fencing fails.
-
- Resolves: rhbz#1251491
-
-2015-08-09 Michele Baldessari <michele at acksyn.org>
-
- Fix AMT fence agent
- The 'amttool' command takes the AMT_PASSWORD environment variable.
- When amttool prompts for a confirmation the variable is read only
- by the left side of the pipe command:
- - Broken:
- $ AMT_PASSWORD='foobar' echo 'y' | /usr/bin/amttool nuc2 powerdown
- 401 Unauthorized at /usr/bin/amttool line 129.
- - Working:
- $ AMT_PASSWORD='foobar' sh -c "(echo 'y' | /usr/bin/amttool nuc2 # powerdown)"
- execute: powerdown
- result: pt_status: success
-
- A longer-term fix is to remove the amttool dependency and implement the
- calls directly via the python-openwsman package
-
-2015-08-07 marxsk <mgrac at redhat.com>
-
- Merge pull request #13 from GamerSource/united_fixes
- Default to SSL to comply with pve and fix typo
-
-2015-08-07 Thomas Lamprecht <t.lamprecht at proxmox.com>
-
- Default to SSL to comply with pve and fix typo
- SSL encrypted communication, so we set it as
- default. As pve generates a self signed certificate we set
- insecure ssl as default option. A unencrypted connection is rejected
- by the PVE proxy so it isn't needed as an option.
- Also a typo (opts instead of options) was corrected.
-
-2015-08-05 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: update XML to conform --ip-as-port where both ip and port are optional
- These values are used in pacemaker to determine if arguments are specified.
-
- fence_rcd_serial: Add support for delay
-
- fence_rcd_serial: Fix Makefile to contain proper test args
-
- fence_dummy: Update XML metadata and fix its creation
- fence_dummy is special because 'port' in device_opt is removed at the run-time
- according to other option.
-
- fence_rcd_serial: Add regression XML tests
-
- fence_virsh: Update XML metadata to match df21ebbee6a328dcacdf60a65cf34e4742a73aa8
-
- fencing: When --port-as-ip is used both IP and plug should not be required
- Resolves: rhbz#1214522
-
- fence_rcd_serial: Fix & in documentation
-
-2015-08-05 marxsk <mgrac at redhat.com>
-
- Merge pull request #11 from sammcj/master
- fence_rcd_serial: update description, makefile & add circuit diagram
-
-2015-07-28 Sam McLeod <samm at infoxchange.net.au>
-
- update description, makefile & add circuit diagram
-
-2015-07-27 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_rcd_serial: Add new fence-agent to build system
-
-2015-07-27 marxsk <mgrac at redhat.com>
-
- Merge pull request #10 from sammcj/master
- New / re-write of the rcd_serial fence agent
-
-2015-07-27 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Password was awaited twice in some cases when connecting via telnet
- Regression by commit 364de00cdd7619ad65f5eabdab2d8499d448045d
-
- fencing: If --port-as-ip is used then monitor action should be 'status', not 'list'
-
-2015-07-23 Sam McLeod <samm at infoxchange.net.au>
-
- update fence_rcd_serial.py from RH
-
-2015-07-22 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Add device_opt for no_on, no_off
- Useful for devices that can't do ON/OFF. Usually they can do reboot only
-
- fencing: reboot_fn should work also with no_status
-
- fencing: Monitor action should pass with "no_status"
- If fence device does not have multiple ports then 'status' action is doing during
- 'monitor' action. If device has 'no_status' option then it is not possible to do
- the 'status' but monitor should not fail as this is expected.
-
- fencing: Do not add --port-as-ip when --ip is not present
-
-2015-07-22 Sam McLeod <samm at infoxchange.net.au>
-
- Add fence_rcd_serial
-
-2015-07-16 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_scsi: Monitor action checks also existence of files with SCSI keys
-
- fencing: Add option that forces ON even if machine is already ON
- This feature is required for fence_scsi when we have to do unfencing after reboot even
- if node was not fenced at all. Keys for SCSI are stored in /var/run/cluster and so they
- have to re-created.
-
-2015-07-12 marxsk <mgrac at redhat.com>
-
- Merge pull request #9 from disco-stu/master
- fence_virsh: escape "EXPECT" string.
-
-2015-07-11 Adrian Vondendriesch <adrian.vondendriesch at credativ.de>
-
- fence_virsh: escape "EXPECT" string.
- Escape EXPECT string to prevent nroff error "warning: can't find special
- character `EXPECT\'`"
-
-2015-07-10 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_ipmilan: Do not print password to debug info
- Resolves: rhbz#1241648
-
-2015-07-01 Marek 'marx' Grac <mgrac at redhat.com>
-
- tests: Update XML metadata for changed agents
-
-2015-06-29 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_compute: Update version to be sync with out-of-tree tested versions
-
-2015-06-20 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- fence_compute: add support for recording fencing operations in attrd
- This is required to support multiple compute nodes failure at once
- with controller node failures happening at the same time.
-
- compute: add support for endpoint-type
-
- fence_compute: fix on-shared-storage option parsing
-
-2015-06-18 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_zvmip: Update XML metadata with --missing-as-off
-
- fence_zvmip: Change used API methods
- * monitor -> check if authentication works instead of list
- * status -> check individual plug only
-
-2015-06-17 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_hpblade: Add support for HP Integrity Superdome X (BL920s)
-
-2015-06-03 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Add verbose output also before command-prompt is found
- Previously, it was not possible to get information about connection (or error messages)
- before connection was established. After this patch, it is possible to see problems if
- verbose output is enabled.
-
-2015-05-20 marxsk <mgrac at redhat.com>
-
- Merge pull request #5 from credativ/fix-whitespace
- Fix bad whitespace in lpar, mpath and zvmip agents
-
- Merge pull request #6 from rtheys/rhevm
- fence_rhevm fixes
-
-2015-05-19 Rik Theys <Rik.Theys at esat.kuleuven.be>
-
- fence_rhevm: Fill in outlet status in get_list
- The outlet status was set to None for all outlets. This results in a
- traceback in fencing.py as it tries to execute the upper() function on
- the status. This is fine when the account that tries to access the data
- is an admin account as the list will be empty. If a UserRole user is
- used, the vm list is not empty and the error occurs.
-
- Fill in the status of each vm in the outlet status to prevent the
- traceback.
-
- fence_rhevm: Add Filter header
- oVirt users who only have the UserRole role don't have enough privileges
- to query the vm list, unless the Filter header is set to true.
-
- See rhbz#1102801 for details.
-
-2015-05-18 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_compute: Fix status if node is off
-
-2015-05-15 Christoph Berg <myon at debian.org>
-
- Fix bad whitespace in lpar, mpath and zvmip agents
-
-2015-05-14 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_compute: Fence agent for Nova compute machines
- Author: Andrew Beekhof
-
-2015-05-11 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Add warning if line on STDIN is ignored because of missing value
-
-2015-05-06 Marek 'marx' Grac <mgrac at redhat.com>
-
- [build] Update makefiles so tests can be executed in parallel
- Previously, tests can not be executed in parallel because they were using simple temp file
- per one directory.
-
-2015-04-27 marxsk <mgrac at redhat.com>
-
- Merge pull request #4 from johnruemker/scsi-status_all_devices
- fence_scsi: status should return off if any device is off
-
-2015-04-27 John Ruemker <john.ruemker at gmail.com>
-
- fence_scsi: Status report "off" if any device is off during "on" action
- We need status to report "on" if any device is on most of the time so
- that stonith or other entities can know if a host is capable of
- accessing shared resources, but during an "on" action this is
- problematic because even if some devices are off, we will skip turning
- them on since we reported the status as on. This changes the behavior
- to report "off" if any device is off, but only during "on" actions.
-
-2015-04-27 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Introduce option --port-as-ip (port_as_ip on stdin)
- Pacemaker's mapping between fence devices and appropriate ports works fine. But if
- fence device is used only for single device (IPMI, iLO, DRAC, ...) then configuration
- is more complex. With this new option, user can use --plug/-n/port to specify IP address
- what simplify configuration.
-
- [refactor] Allowed values for options are now automatically added to manual page
-
- [refactor] Line wrapping in --help is done automatically
-
- [refactor] Remove "shortdesc" that changes regression tests
-
- [refactor] Remove "shortdesc" from option definition if it can derived automatically
- Previously, each "option" has also "shortdesc" argument that was used exclusively
- for purpose of XML metadata (and subsequentally also manual pages and user interface).
- This commit prepares code for automatic derivation and remove those shortdesc where results
- does not change XML metadata regression tests.
-
-2015-04-22 marxsk <mgrac at redhat.com>
-
- Merge pull request #3 from johnruemker/scsi-monitor
- fence_scsi: Add support for monitor action
-
-2015-04-20 John Ruemker <john.ruemker at gmail.com>
-
- fence_scsi: Add support for monitor action
-
-2015-03-26 Marek 'marx' Grac <mgrac at redhat.com>
-
- [test] Update XML metadata for SSL fence agents
-
- fence2rng.xsl: Correctly handle quotes in description
-
- [test] Test if XML metadata are valid after fence2rng.xsl
-
-2015-03-19 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_ipmilan: Un-set default cipher
- Previously, the default cipher was left to ipmitool, in one of latest releases we have changed it
- to cipher=0. This commit removes this default and uses --cipher for ipmitool only when explicitly
- set by user.
-
- Resolves: rhbz#1203877
-
- fence_bladecenter: Fix login process
- fence_bladecenter is specific because motd contains string "Last login:" which
- can be easily mishandled with "login:". This dual checking is included to properly
- work with CR/LF autodetection.
-
-2015-03-12 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_amt: Password was not put correctly into environment
-
-2015-03-11 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Add support for --tls1.0
- HP iLO2 firmware 2.27 has broken implementation of TLS and SSLv3 is disabled by default.
- gnutls (3.4.x) has support to disable proper negotiation and use only TLS1.0 that works well.
-
- Option --tls1.0 (tls1.0 on stdin) was added to enable this feature and fence_ilo(2) works
- correctly also with this firmware.
-
-2015-03-05 marxsk <mgrac at redhat.com>
-
- Create README
-
-2015-03-05 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Wrap line with actions in --help
-
-2015-03-04 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Add operation 'list-status'
- This new action will report output similar to 'list' with 3rd column that
- represents status of node = ON/OFF/UNKNOWN. Majority of relevant fence agent
- is supported.
-
- Exceptions are:
- 'list' is not working at all
- fence_ovh, fence_scsi, fence_mpath
- 'list-status' reports 'UNKNOWN' status all the time
- fence_lpar
- fence_ifmib
- fence_bladecenter
- fence_hds_cb
- fence_cisco_ucs
- fence_eaton_snmp
- fence_netio
- fence_rhevm
-
- fencing: Propagate 'list' only when it makes sense
- Previously, action 'list' was propagagated also for fence agents which
- work with only one machine, so list makes no sense. Return was always N/A.
-
- This was done together with simplification of removing duplicity code.
-
-2015-03-02 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Operation 'validate-all' should not change default behaviour
- Previously included patch has issue for fence agents that have 'other_conditions=True'. In such
- case fence agent did not stop when problem was encountered even when validate-all action was not
- used.
-
- fencing: Add alias 'meta-data' as proposed in OCF standard
- Actions 'meta-data' is just an alias to 'metadata'.
-
- fencing: Add operation 'validate-all'
- Previously, user had to run fence agent in non-destructive mode to find out
- if parameters are correct or not. With this commit, the action 'validate-all'
- (required by OCF) is added and parameters that can be checked without connecting
- to real hardware are tested.
-
- As a bonus of this approach, if there are several problems, user will know all
- of them at once what is a benefit also for user interfaces.
-
- fence_kdump: Fix possible problems according to Coverity
- Previously, there was issue detected by Coverity. They do not matter too much
- because we care only about return value and it will not be 0 if program crash.
- But it is always better to have clean code, so fixing.
-
-2015-02-26 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing_snmp: Path to snmp(walk|get|set) can be set at runtime
-
- fencing_snmp: Replace device_opt "community" with "snmp"
- Previously, all dependencies of SNMP fence agents were dependant on "community". What
- is quite confusing. This update makes all original depencies + "community" be dependant
- on "snmp".
-
- fence_kdump: [test] Update XML metadata pattern after adding "monitor"
-
- fence_kdump: Fix problem in metadata
-
-2015-02-25 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_kdump: Add 'monitor' action which tests possibility of doing kdump on local node
- In case of fence_kdump we can not test if remote 'fencing device' is working because
- fence_kdump_send is started only after kernel crash. So, monitor action checks if LOCAL
- node can enter kdump. The test looks if crashkernel=.. occurs between boot arguments.
-
-2015-02-09 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Default values of ipport in metadata
- Default values were correctly set but they were not used in metadata after
- previous patches.
-
-2015-01-14 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: default values for ipport #2 (--ssl-insecure, SNMP agents)
- Previous patch of this problem:
- * did not solve problem was --ssl-insecure
- * did not work correctly with minimalist SNMP agent where snmp_version can not be set
-
- Problem found using unit-tests.
-
- [test] First attempt on unit-tests for fencing library
- Focus was on unit-testing parts responsible for setting default values as
- was reported in 575cbe08a6077ecc1512ceaecfc964378c1a11a6
-
- fencing: default value for ipport was not always correct
- Correction of metadata output lead to situation when default value of
- ipport was not properly set e.g. if --ssh was not default, it's value
- was ignored. This update, moves setting default value to proper function.
-
-2015-01-08 Marek 'marx' Grac <mgrac at redhat.com>
-
- [build] Replace using $AWK for different use then awk binary
-
- fence_apc_snmp: New symlink fence_tripplite_snmp for already supported device
-
-2015-01-07 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_mpath: Fix duplicate "getopt" which was not propagated anywhere
- Found by integrated tests.
-
- fencing: Validate if short "getopt" of available options is unique
-
- fence_zvm: Manual page is obsoleted because it is autogenerated now
-
- fencing: Short options can be misinterpreted
- If there are several entries in all_opt that have same short getopt. It
- is possible that they are handled incorrectly and they are stored under same
- key in 'options' variable.
-
- This update fixes this problem for cases when the other of all_opt entries should
- not be present at all. E.g. -d is used for vmware_type and snmp_version, and they are
- not allowed at same time.
-
-2015-01-05 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_zvmip: Port fence agent to fencing library
- This rewrite adds a correct result codes, support for 'list' action and
- autogenerated manual page. The original code is still part of codebase as
- new agent requires additional testing.
-
-2014-12-15 Marek 'marx' Grac <mgrac at redhat.com>
-
- [refactor] Function _get_opts_with_invalid_choices(...)
-
-2014-12-08 Marek 'marx' Grac <mgrac at redhat.com>
-
- [refactor] Function _parse_input_cmdline(...)
- Simplify and remove code for adding also short names to final dict. This is no
- longer needed and only long names are entered there.
-
- library: Properly escape XML also in getopt mixed=".."
-
- fence_emerson: Add power-wait=5seconds because device is too fast
-
-2014-12-04 Marek 'marx' Grac <mgrac at redhat.com>
-
- [refactor] simplifying function metadata() + fix XML for fence_cisco_ucs
- Two if-s where removed as they are no longer needed by fence agents. One of
- its impact was that two fence agents has changed their XML metadata. In case
- of fence_ovh it was because default value was set even when it should not be.
- And in the case of cisco_ucs, default was not propagated properly because
- it was empty string.
-
- fence_emerson: New fence agent for Emerson's devices MPX and MPH2
- Thanks to Emerson Network Power
-
- fence_eps, fence_amt: Fix invalid default port values
-
- [refactor] Function _update_metadata(..)
-
- [refactor] function process_input(..)
-
- [refactor] function metadata(..)
-
- [refactor] function check_input(..)
-
- [refactor] Functionality of fence_login(...) was too broad
- New 'private' functions were created for opening ssl connection, telnet,
- ssh with password and ssh with identity file
-
- [refactor] remove unused variable
-
-2014-12-03 Marek 'marx' Grac <mgrac at redhat.com>
-
- [refactor] Change definition of log_expect() method
- Previously, log_expect definition was:
- def log_expect(self, options, pattern, timeout):
-
- but the 'options' where not used anywhere and if we will plan to use it in this method,
- we already have self.opt available. New method definition is:
- def log_expect(self, pattern, timeout):
-
- the rest of this large patch is just removing of options as 1st argument of every call
-
- [refactor] Fix issues according to pylint
-
- [refactor] Fix issues according to pylint
-
-2014-12-01 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_ilo_ssh: Add XML regression test data
-
- fence_mpath: Do not run regression test on store_path value
- This is not possible because unlike the other paths this one
- is dependant on ./configure --prefix XXX. With this patch,
- line with value will be removed.
-
- fence_mpath: Update XML metadata
-
- fence_scsi: Update XML metadata
-
- fence_ilo_ssh: Create symlinks for fence_ilo3_ssh and fence_ilo4_ssh
- Resolves: rhbz#1121122
-
- fence_ilo_ssh: Create symlinks for fence_ilo3_ssh and fence_ilo4_ssh
- Resolves: rhbz#1121122
-
- fence_ilo_ssh: Change EOL to \r
- Previously, we have used \r\n that works fine with iLO3 with firmware >=1.50 but
- for iLO4 all firmware that we have tested works only with \r
-
- Resolves: rhbz#1121122
-
-2014-11-27 Marek 'marx' Grac <mgrac at redhat.com>
-
- [fencing] Character \x00 can't be inside syslog message
-
-2014-11-19 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_bladecenter: Simplify login process
- Previously, unique regular expression was used what could cause problems in
- planned autodetection of fence agents.
-
- fence_cisco_ucs: protocol prefix of URL was not correctly set with --ssl-(in)secure
- Resolves: rhbz#1165591
-
- fencing: Fix problem with not validating SSL certificates
- In commit 809b909651118c06d2ab48d7911bbee2e512e478, --ssl-(in)secure options were
- added. With --ssl be equal to --ssl-secure this was not implemented properly.
-
- Resolves: rhbz#1162092
-
- fence_mpath: new fence agent for dm-multipath based on mpathpersist
- Previously, scenario with multipath and underlying SCSI devices was solved by using
- fence_scsi what works correctly but there are some limitation. The most important
- is that unfencing has to be done when all paths are available as it is executed only once.
- This new fence agent solve this situation properly as most of this situations are solved
- by mpathpersist which is part of dm-multipath.
-
-2014-11-13 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_scsi: "order" value of *_path should be same as in library
-
- fencing: Introduce --gnutlscli-path --sudo-path --ssh-path and --telnet-path
- Previously, those four variables were set as global options. Proposed change
- unify the working with them as with standard options with appropriate default
- value (provided by autoconf).
-
- This patch is quite long because XML metadata has to be changed to contain those
- options were appropriate.
-
- fencing: Improve accessibility of possible connection (+telnet,+web)
- 'web' was previously not set properly on each fence agent
- 'telnet' is completely new option
-
- fencing: Some short options were not propagated, so they were removed
- In old versions, it was required to have short getopt options (-k, -x, ...) for
- each option available. This is not true for some time but these options
- were defined also for options were they were not really used and long options were
- the only presented.
-
- Main reason for removing this short options from specific options was that some
- of them were really overloaded.
-
- fence_scsi: Short getopt for logfile differs in help/getopt
- According to help text, user should use -a for setting logfile but
- this option means 'APTL flag", this patch fixes it to -f as was accepted
- also before.
-
- fencing: Stability of sort of items in XML metadata
- Previously, sorting was done only according to values in "order" but
- if several items have same "order" value then they were sorted same way
- only until something did not interfere it. In order to have XML metadata
- more stable, the secondary attribute for sorting - stdin name of attribute.
-
- Problem was visible only during regression testing of XML metadata as ordering
- did not usually impact applications that reuse it.
-
- The patch is long but the only real change is in lib/fencing.py.py, the
- rest is just reordering without further changes.
-
-2014-10-23 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Available actions in --help where not always up-to-date
- Previously, we have different help text for action only for fabric fencing (no-reboot). But
- we have fence agents that do not have 'status' action e.g. fence_ovh. With this update,
- the help text is always accurate.
-
- fence_zvm: Add support for 'monitor'
- Author: Neale Ferguson
-
- [build]: Add build requirements to autoconf
-
-2014-10-16 Marek 'marx' Grac <mgrac at redhat.com>
-
- [test] Update XML metadata
-
- [build] During clean up stage remove also *.wiki files
-
- [build] Fix paths in process of building releases
-
- [build] fencing library: Add fence2wiki.xsl as XSL in Makefile.am
-
- [test] fence_ilo_ssh: Add required parameter for testing --delay
-
-2014-10-15 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_rhevm: Add support for cookies based authentication
- The first command is authenticated as usually but rest can be used without additional authentication.
- This is useful only for reboot or obtaining status of several nodes at once.
-
-2014-10-13 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_pve: Add support for --ssl-secure and --ssl-insecure
- Resolves: rhbz#1151515
-
-2014-10-02 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_wti: Fix invalid "eol"
- Fence agent for WTI does not use standard telnet login because it is possible that username/password are not
- required. EOL is set by fence_login() function that is not used, so we set it manually and replace
- obsolete combination of send (+eol) to correct send_eol()
-
- Resolves: rhbz#1148762
-
- fence_rsb: Fix 62d90e3a0827fcdc5be632bdf4103d3c08b39622
- Patch was not incorporated correctly from older version.
-
- Resolves: rhbz#1110428
-
-2014-09-24 Marek 'marx' Grac <mgrac at redhat.com>
-
- [doc] Improve wiki export
-
-2014-09-22 Marek 'marx' Grac <mgrac at redhat.com>
-
- [doc] Improve wiki export
-
- fence_apc: --shell-timeout was used instead of --power-timeout
-
-2014-09-18 Marek 'marx' Grac <mgrac at redhat.com>
-
- [build] Unify make clean
-
- [build] Add XSLT for creating wiki
-
- [build] Create a new target for wiki export
- Create a list of arguments in wiki format
-
-2014-09-17 Marek 'marx' Grac <mgrac at redhat.com>
-
- [build] fence_scsi_check is generated during build time
-
- fence_rhevm: Use https:// prefix also with --ssl-secure and --ssl-insecure
-
-2014-09-15 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_zvm: Add support for 'on', improve documentation
- Author: Neale Ferguson
-
-2014-09-12 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_zvm: Fixes for better upstream inclusion
-
-2014-09-08 Marek 'marx' Grac <mgrac at redhat.com>
-
- [clenaup] Fix whitespace convention issues
-
- fence_cisco_ucs & fence_vmware_soap: Logout has to be performed even when fencing fails
- Previously, logout was not performed in the case when fence agent was aborted e.g. timeout. What could
- lead to a situation when connections were not closed correctly. In the extreme case, it was not possible
- to log into device at all
-
- Resolves: rhbz#1111599
-
-2014-09-03 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_ilo_ssh: New fence agent for HP iLO3/4 via SSH
- Resolves: rhbz#1121122
-
-2014-09-01 Marek 'marx' Grac <mgrac at redhat.com>
-
- [tests] Update XML metadata of fence agents
- added --ssl-secure, --ssl-insecure
-
- fencing: Add new options --ssl-secure and --ssl-insecure
- These new options extends current --ssl (same as --ssl-secure). Until now certificate of the fence device
- was not validated what can possibly lead to attack on infrastructe. With this patch, user can decide
- if certificate should (--ssl-secure) or should not (--ssl-insecure) be verified.
-
- The default option is to validate certificate.
-
- Resolves: rhbz#1072564
-
-2014-08-27 Marek 'marx' Grac <mgrac at redhat.com>
-
- [build] Fix automake files, so 'make distcheck' works
-
- fence_ilo_moonshot: Add current XML metadata to test suite
-
- fence_zvm: Add current XML metadata to test suite
-
- fence_zvm: Add support for "on" and "status"
- Developed by: Neale Ferguson
-
- fence_ilo_moonshot: New fence agent for HP Moonshot iLO
- Resolves: rhbz#1099551
-
- fence_apc_snmp: Add support for firmware 6.x
- Resolves: rhbz#1123897
-
- Fix usage of non-existent function
-
-2014-07-14 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: 'nodename' should not be logged as ignored argument
- nodename is send by default, so there is not reason to log it.
-
-2014-07-10 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Replace syslog.syslog() calls with new logging handler
- Original logging handler for syslog writes everything to a device but that
- way we will have incorrect source. New logging handler is created on top
- of standard old-style syslog library.
-
-2014-07-01 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Monitor is not working correctly without 'list' or 'status'
- Action monitor either executes 'status' (without --plug) or 'list' (with --plug). But
- it is not required to have 'list' action. If they do not then 'monitor' has to be done
- in different way, e.g. login/logout.
-
- fence_brocade: Add support for 'list' action
-
- [build] Fix building of fence_scsi_check
-
- [build] Fix build system to cover tests properly
-
-2014-06-26 Ondrej Mular <omular at redhat.com>
-
- fence_docker: new fence agent for Docker containers
- With support for TLS authentication.
-
-2014-06-26 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Fix problems with options without short getopt
-
- [build] Ensure that we are building in correct directory
-
-2014-06-23 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Checking status of several slots was done incorectly
- Found-by: Ondrej Mular
-
-2014-06-20 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_rsb: Accept new prompt in parsing
- Resolves: rhbz#1110428
-
-2014-06-09 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Remove unmaintained fence agents
- Following agents were removed:
- fence_baytech
- fence_bullpap
- fence_cpint
- fence_mcdata
- fence_rackswitch
- fence_vixel
- fence_xcat
-
- [testing] Add XML metadata for fence_scsi
-
- fencing: Fix problems when fence agent do not have --plug / -n
- Found during tests on fence_dummy
-
-2014-06-04 Marek 'marx' Grac <mgrac at redhat.com>
-
- [clean] set_multi_power_fn now also includes support for --retry-on
- Previously, the code was there multiple times.
-
-2014-05-21 Marek 'marx' Grac <mgrac at redhat.com>
-
- testing: Update XML metadata for fence_zvmip
-
- testing: fence_zvm agent is tested for working delay function
- also adds support for checking --delay for every C-based fence agent
-
- fence_zvm: Add support for --delay in fence_zvm
- Patch by: Neale Ferguson
-
-2014-05-14 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_zvm: Add a zvmsys option to fence_zvm to support distributed z/VM systems
- Also emove spurious crlf in CRLF
-
- Author: Neale Ferguson
-
- fence_scsi: --delay should be applied before attempt to test available devices
-
- fence_scsi: Do not use SYMTARGET for fence_scsi_check
- SYMTARGET in Makefile.am should not be used becasue fence_scsi_check is not a
- fence agent and so the tests will fail.
-
-2014-05-14 Ondrej Mular <omular at redhat.com>
-
- fence_scsi: port to fencing library
-
-2014-05-05 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_pve: Add testing arguments for --delay test
-
- fence_ovh: --delay should be applied before attempt to login
-
- fence_ovh: Fix problems according to patch in mailing list.
-
- testing: python agents are tested for working delay function
-
- [cleanup] Fix whitespace according to PEP8
-
- [cleanup] function array_to_dict() from agents to library
-
- [cleanup] '--action' should be normalized to lowercase at one place only
-
- [cleanup] Simplify 'if' statements to use 'not' and 'get'
-
-2014-05-05 Ondrej Mular <omular at redhat.com>
-
- fence_pve: new fence-agent for Proxmox VE
- Thanks to Frank Brendel (author of original perl fence_pve) for help with writing and testing this agent.
-
- fencing: added option "on_target"
- added option "on_target" for agents that need attribute "on_target" in metadata
-
-2014-04-23 Marek 'marx' Grac <mgrac at redhat.com>
-
- [cleanup] Create function fence_logout()
- This function replaces almost all logout functions. Exception is in
- fence_sanbox2 where two lines are required for exit.
-
- [cleanup] Remove unused import of modules
-
- [cleanup] Add broad exception specification for each except
-
- fencing: Add support for --delay for all python SNMP fence agents
-
- fencing: Add support for --delay for all python non-SNMP fence agents
-
- fencing: Introduce new device option 'no_status'
- Some fence agents are not able to obtain status e.g. fence_ovh or fence_kdump,
- with this patch this can be reflected in metadata. Also fix for fence_ovh.
-
- [cleanup] Removing unused part which was replaced by proper 'default' values for 'ipport'
-
- [cleanup] Remove method log_command() from FencingSnmp as it was replaced by logging.debug()
-
- [cleanup] Remove warning logging-not-lazy
-
-2014-04-16 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Pexpect problems - missing return statement
- Previusly pexpect.send() returned value which was not used anywhere, with new version this is no
- longer true and our inherited class fspawn has to return proper values (length of the written string)
-
- fencing: Fix invalid parsing in XML metadata
- This error has no functional impact on fence agents integration.
-
- fencing: ipport defaults was set after defaults were used
- SNMP fence agents were influenced - introduced in 91dcb051959c5e70094cbb3c5b5243e4a328d8bc
-
- [cleanup] Replace vmware_log() with direct call of logging
-
- [cleanup] Remove additional parentheses
-
- [cleanup] Replace map/filter by list comprehensions
-
-2014-04-14 Ondrej Mular <omular at redhat.com>
-
- fence_amt: sending password over env
-
- fencing: added timeout and env parameters to run_command function
- Now, we can set enviromant variables and maximum execution time for subprocess.
-
-2014-04-11 Marek 'marx' Grac <mgrac at redhat.com>
-
- [cleanup] Cleaning in fence_raritan
- Previous set of patches was prepared without this new fence agent.
-
- fence_vmware: Invalid arguments for vmware_get_outlets_vi()
- Fence agent was not working correctly for VMWare ESX because function vmware_get_outlets_vi()
- was called with additional arguments.
-
- [cleanup] Define parent class even if it is object
- Resolve warning: old-style-class
-
- [cleanup] Add missing spaces
-
- fencing: Refactor access to 3rd-party binaries
- Previously, we had just one fence agent of that type that was ported to
- fencing library. Now, there are fence_amt and fence_ipmilan so it is possible
- to create a more generic version of such access.
-
-2014-04-11 Ondrej Mular <omular at redhat.com>
-
- fence_ipmilan: send empty password, if password is not entered
- Previously, agent stuck on password prompt from ipmitool, if password was not specified.
-
- Resolves: rhbz#1083600
-
-2014-04-09 Marek 'marx' Grac <mgrac at redhat.com>
-
- [cleanup] remove LOG_MODE_*
- These constants can be removed because they were replaced by logging.* subsystem.
-
- [cleanup] fence_wti: Fix variables that can be used before assignement
-
- fence_wti: Action 'list' prints also named groups
- Resolves: rhbz#1085887
-
- [cleanup] Fixing small issues created during cleaning phase
-
- [cleanup] Fix invalid names of variables
-
- [cleanup] Remove transfer script used in transition 3.x->4.x
-
- [cleanup] Remove unused arguments
- Arguments 'options' which will be used instead of global variables are left untouched
- so that this problem is visible.
-
- [cleanup] Remove snmp_define_defaults()
- This function is always called for SNMP fence agents so it is possible to run it automatically.
-
- [cleanup] Mark raw strings with r"" in fence_virsh
-
- [cleanup] Errors when encountering mixed space/tab in python
-
- [cleanup] Only symbols that should be used are exported from fencing_snmp library
-
- [cleanup] Mark raw strings with r""
-
- [cleanup] Only symbols that should be used are exported from fencing library
- Previously, all symbols were exported what ends with redefining some symbols. Currently, the
- wildcard (from fencing import *) imports only those that should be used. Rest of them make sense
- for some fence agents (e.g. TELNET_PATH if we are not able to use regular fence_login) but there
- are some symbols which have to be used before but they are not needed now. This will be solved later.
-
- [cleanup] Remove problems with redefining variables/functions
-
- [cleanup] Remove unused dependencies
-
- [cleanup] Split lines that were too long
-
- [cleanup] Remove unused variables
-
- [cleanup] Proper import of atexit
- Previously atexit library was imported only from the fencing library.
-
- [cleanup] Add missing spaces and fix tab/spaces indentation
-
- testing: Add regression tests for XML metadata of C fence agents
-
-2014-04-07 Marek 'marx' Grac <mgrac at redhat.com>
-
- testing: Add regression tests for XML metadata of python fence agents
- Previously, it was possible that XML metadata were changed unintentionally. This patch
- provides infrastructure and data from current release.
-
-2014-04-02 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Replace printing to stderr with proper logging solution
- This patch replaces local solutions by standard python logging module. Levels of messages
- is not final, it just reflects the previous state. So, debug level is available only with
- -v / verbose option.
-
- fence_raritan: new fence agent for Raritan Dominion PX
- Written by David Smith <dsmith at mypchelp.com>
-
-2014-03-21 Marek 'marx' Grac <mgrac at redhat.com>
-
- [cleanup] Remove messages 'Due to limitations,binary dependencies ...'
- This message is no longer true as we ship subpackages for fence agents and users
- do not have to install all 3rd party sotfware.
-
- fence_wti: Respect --delay in telnet connection
- Previously --delay was respected only in ssh connection because fence_wti uses different login
- mechanism.
-
- Resolves: rhbz#1079282
-
-2014-03-12 Ondrej Mular <omular at redhat.com>
-
- fencing: fixed pexpect TypeError exception, when using identity file for login via ssh
- Previously, fence-agent failed to log in (ssh) using identity file. This caused fence-agent failure because of uncaught exception.
-
- Resolves: rhbz#1073947
-
-2014-03-02 Marek 'marx' Grac <mgrac at redhat.com>
-
- testing: Extend tests of using invalid keys for "options"
- Previously only keys that match [--.*] where considered because [-.*] should not be used in
- v4.x at all. Currently, tests where extended to find also these problems.
-
- Relevant: rhbz#1018780
-
-2014-02-27 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- fence_vmware_soap: fix short/long option parsing traceback
-
-2014-02-26 Ondrej Mular <omular at redhat.com>
-
- fencing: accept only options used in fence-agent
- In transformation from short options to long options, was used list of all options. That caused collision of options if there was 2 options with same short name, but only one was used in fence-agent.
-
- fencing: correct default values in manual pages for symlinks
-
-2014-02-26 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- vmware_soap: drop warning from python suds when error occours
- prepatch:
- fence_vmware_soap -z -l test -p wrongpasswd -a blabla -n vm1 -o reboot -v
- No handlers could be found for logger "suds.client"
- Failed: The user does not have the correct privileges to do the requested action.
-
- postpatch:
- fence_vmware_soap -z -l test -p wrongpassed -a blabla -n vm1 -o reboot -v
- Failed: The user does not have the correct privileges to do the requested action.
-
- Based on https://fedorahosted.org/suds/wiki/Documentation
- logging must be configured and filter for CRITICAL since the harmless
- error is at INFO level.
-
-2014-02-20 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- Allow ssl connections to fallback to SSL3.0 negotiation
- The preferred/default method is TLS1.x, but some old devices
- just can't deal with it.
-
- Add support for "notls" option that will force negotiation
- to use SSL3.0. Wherever possible you are adviced to upgrade
- your device firwmare.
-
-2014-02-17 Marek 'marx' Grac <mgrac at redhat.com>
-
- [build] Remove nss/nspr checks from autoconf
-
- fence_vmware_soap: Unknown exception fixed
- Resolves: rhbz#1018780
-
- fence_ilo: Replacing nss_wrapper with gnutls-cli
- SSLv2 was disabled in nss package (rhbz#1001841), ilo2 now supports also SSLv3
- and it is possible to use standard tool for communication.
-
- fence_ipmilan: Mismatch between device options and getopt arguments (-L / -P)
-
-2014-01-29 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_wti: Add support for firmware v1.40 (on MPC device)
- Previously, named groups were tested only on firmware v1.43 (on NPS device).
-
-2014-01-27 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Do not output duplicities in metadata
- With DEPENDENCY_OPT it becomes possible that items in device_opt can occur multiple times easily as they
- are added automatically (e.g. 'password' imports also 'password_script'). This lead to a situation when
- eveyrything works but XML metadata contains this item multiple times and metadata can not be used properly
- by cluster stack.
-
-2014-01-23 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_kdump: Add vendor-url to metadata
- Resolves: rhbz#1022529
-
- fence_scsi: Change path to corosync from /sbin to /usr/sbin
- /sbin is just a symlink to /usr/bin - so it does not impact functionality
-
-2014-01-22 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_scsi: Replace automatic key generation to work with corosync clusters instead of cman
- Resolves: rhbz#994466
-
- fencing: Fabric fence agents should have default action "off"
- Previously, when you have run fence agent without -o XYZ, reboot was performed. Fabric fence agents do not have them
- so fence agent fails. This update does not fix only this issue but also text --help and in manual pages.
-
- Resolves: rhbz#1021392
-
-2014-01-10 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_vmware_soap: --delay is not respected
- Because fence agent do not use standard login process, support for the --delay has to be added.
-
-2014-01-10 Ondrej Mular <omular at redhat.com>
-
- fence_ipmilan: add long description
-
- fence_amt: add long description
-
- fencing: method cycle can be used with maximum 1 plug
- Checks input for invalid usage of cycle (method cycle and plug).
-
-2014-01-08 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_ipmilan: auth type should not have default
- When auth type has a default value set to 'none' then autodetect of auth type is not
- done. If user want to user password, he had to enter -A password, with this patch this is
- not necessary (as in previous C-based implementation)
-
- fence_ipmilan: Improve readibility of verbose output
-
- fencing: Error messages should be send to STDERR by default
- Previously, it was sent to STDERR only when debug file was not set and --verbose was not set.
-
-2014-01-06 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_amt: Adapt environment and build system to incorporate fence_amt
-
-2014-01-06 Ondrej Mular <omular at redhat.com>
-
- fence_amt: new fence agent for Intel AMT
- New fence agent for Intel AMT.
-
-2014-01-06 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_ipmilan: Remove old fence agent
-
- fence_ipmilan: Adapt Makefile from C to Python fence agent
-
- fencing: Fix replacement of path to ipmitool/amttool
-
-2014-01-06 Ondrej Mular <omular at redhat.com>
-
- fence_ipmilan: port to fencing library
- Port of fence_ipmilan to fencing library.
-
- fencing: add function is_executale
- New function is_executable added to fencing library.
- Function checks if path is reachable and executable.
- Used for example in fence_amt to check path to amttool.
-
-2014-01-06 Bogdan Dobrelya <bogdando at mail.ru>
-
- fence_apc_snmp: Add Tripplite PDU support
- Tested with Tripplite PDUMH20HVNET 12.04.0055 - SNMP v1, v2c, v3
-
-2014-01-06 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Do not use public keys when identity-file is not defined
- Previously, fence agent (ssh) tried to use keys before it asks for password. This lead to a situation
- when fence agent did not work correctly as it was waiting for 'Password' which did not occur.
-
-2013-12-19 Ondrej Mular <omular at redhat.com>
-
- fencing: new option --method
- Add new option method --method for cycle reboot
-
-2013-12-16 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_virsh: Add UUID support for fence_virsh
- UUID support for fence_virsh (libvirt) was added. The only function which has to be rewritted was
- get_power_status as currently, there is no easy way how to print (name, uuid and state) via virsh.
-
- This patch is based on one proposed by Bogdan Dobrelya for RHEL6.
-
-2013-12-02 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Add support for ipmitool/amttool binaries during autoconf
- Configuration of autoconf was extended to dynamically find ipmitool/amttool. If the binary is not found on
- the system then we will switch to default values (Fedora/RHEL). Path to binaries is exported and replaced in
- fencebuild using same processes as a version number or sbin/logdir.
-
-2013-11-20 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Add information about option that have to be selected from list to XML metadata
-
- fencing: Add support for options which should be selected from a list of values
- Previously, we have supported only strings and booleans; this is first patch that adds
- support for entering constrains like select a proper SNMP version from [1, 2c, 3].
-
-2013-11-12 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_drac5: Remove debug info
-
- fence_drac5: Add support for Dell DRAC MC model
-
- fencing: Issue with login when autodetection of EOL is used
- When fence agent attempts to login to fence device it tries to find out proper EOL. During tests
- on the new fence device (Dell DRAC MC) we have found two minor problems which are fixed in this commit:
-
- 1) Regular expression for expected login prompt was case sensitive previously
-
- 2) Expectation that after pressing ENTER we will obtain sequence:
- login prompt, password prompt, login prompt, password prompt, ...
- was found to be incorrect as this fence device shows password prompt only when login prompt was not empty
-
-2013-10-30 Marek 'marx' Grac <mgrac at redhat.com>
-
- [build] updates in build system to properly work with metadata.rng
- Minor updates were required to build a package without this patch you
- can do ./autogen.sh; ./configure; make - but not a build package process
-
-2013-10-23 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_rsb: Change in power status output
- Regular expression was extended to support newer version.
-
- Patch by: Christian Masopust
-
-2013-10-21 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_wti: Add support for named groups
- On some WTI devices it is possible to name a group of devices by single names (e.g. 1,2 -> server). These
- groups can be used to operate all these plugs by single command.
-
- Patch by: Thibat Pouzet
-
- fence_xenapy: Fix invalid use of options
- Fixing typos (--passwd -> --password; --uid --> --uuid)
-
- fence_vmware: Option --vmware_type is not used correctly
- --vmware_type is defined but --vmware-type was used in source code.
-
- fence_drac5: Fix test used for Dell DRAC CMC
- In version 4.x the '--module-name' was renamed to standard '--plug'. This patch
- reflects it.
-
- testing: Check if fence agent uses only valid keys in options["--???"]
- Valid keys are defined in fencing library or fence agent itself. This check
- will be run at every build, so we should be protected against case when
- developer unintentionally use new key (e.g. typo). These type of bugs are
- usually not detected by static analyzers.
-
-2013-10-14 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_vmware_soap: Correct error message when user does not have privileges
- Previously, when an user does not have privileges to reboot a virtual machine, the
- fence agent fails with python traceback. After applying this patch (by Shane Bradley),
- the fence_vmware_soap fails with human readable error message.
-
- Resolves: rhbz#1918263
-
-2013-10-10 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Add schema for fence agents metadata (relax ng)
- Add a metadata schema which reflects current state. In order to simplify it
- few minor changes were done to fence agents.
-
-2013-10-07 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_zvm: Clean-up after replacing fence agent
-
- fence_vmware_soap, fence_ovh: Caching problem with SOAP library
- Both fence agents are built on top of SUDS library which creates a cache file. Unfortunately,
- it is not yet possible to completely move cache or remove it. Due to possible security issue (symlink
- vulnerability) we have decided to solve this problem as simply as possible. So '/tmp' was changed to an
- automatically generated temp directory which is removed at the exit of fence agent as we won't reuse it anyway.
-
- Resolves: rhbz#1014000
-
- fence_zvm: completely rewrited zvm fence agent
- Fence agent no longer requires package with s3270.
-
- Developed by Neale Ferguson <neale at sinenomine.net>
-
-2013-09-30 Niels de Vos <ndevos at redhat.com>
-
- fence_netio: new fence-agent for the Koukaam NETIO-230B PDU
- The Koukaam NETIO-230B is a power distribution unit with four normal
- (European) sockets. The device has a webui and a telnet interface. Each
- socket can be given a custom name, which is returned with '-o list'.
-
- Link to the device, its specifications and API:
- - http://www.koukaam.se/kkm/showproduct.php?article_id=1502
-
-2013-09-27 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Add information about automatic "unfence" to metadata
- Resolves: rhbz#1012994
-
-2013-08-29 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_bladecenter: Fix telnet login failure
- Problem occured due to fact that welcome message contains string which looks like login prompt.
-
- Resolves: rhbz#997416
-
- fence_brocade: Port fencing agent to fencing library
- Resolves: rhbz#641632 rhbz#642232 rhbz#841556
-
-2013-08-28 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing_snmp: Fix 'KeyError --a' that results in traceback
- Resolves: rhbz#999146
-
-2013-08-12 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_scsi: Add documention of "delay" into manual pages
- Resolves: rhbz#912773
-
-2013-08-07 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_scsi: Fix error in XML metadata
- Resolves: rhbz#994186
-
-2013-07-31 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_ilo2: Unable to login when password contains "
- Resolves: rhbz#990537
-
-2013-07-18 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_ipmilan: Better description of lanplus parameter
- resolves: rhbz#981086
-
-2013-07-17 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_ovh: New fence agent for OVH
- Be aware that "off" command represents reboot into rescue mode
-
- fencing: fix attribute --login to --username
- Resolves: rhbz#984975
-
-2013-07-10 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_ipmilan: New symlink fence_ilo4
- For HP iLO4, there is no need to have a power wait and only 'lanplus' option is required.
-
- Resolves: rhbz#870269
-
-2013-07-01 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: --command-prompt option was useless because user cannot prepare list on command line
- User input is automatically translated into list.
-
- fencing: Add notice that command prompt is expected as python regex
-
- fence_na: Remove fence agent node assassin
- Fence agent temporary removed as requested by author because project
- is in "extended hiatus"
-
- http://www.redhat.com/archives/cluster-devel/2013-June/msg00183.html
-
-2013-06-27 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_apc: Problem with <ENTER> prompt
- After introducing support for firmware 5.x, the length of command prompt regular expressions is not strictly equal to one.
- This patches solves this problem by moving '<ENTER>' prompt to first position (index 0), so we do not rely on length of
- command prompt.
-
-2013-06-07 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_dummy: An option to add random delay to start of this fence agents
- Previously -R was used but this should be used for password script for SNMP, now -r is used.
- Functionality was added only now.
-
- fencing: Improve work with invalid power states
- Previously, status for N ports was OFF if all of these nodes where off
- and it differs when of these ports were ON. This did not work properly
- when fence agents responeded with 'unknown' values. This patches fixes
- this issue and if at least one value is non-OFF then status is not-OFF too.
-
- fencing: Actions to set power status are not working properly for fence agents without --plug
- The bug was introduced when support for multiple ports was added.
- commit 0097e806545d722270b739f31a754d65994b18c9
-
- fence_dummy: Add a 'fail' test dummy agent
-
- fencing: Action 'monitor' is not working properly for fence agents without '--plugs'
- The bug was introduced when support for multiple ports was added.
- commit 0097e806545d722270b739f31a754d65994b18c9
-
-2013-05-31 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_scsi: Add "delay" option
- Adding "delay" option to fence_scsi.
-
- WARNING: we are using -H / delay= instead of "-f" as in fencing library because -f is already used in fence_scsi.
-
- Resolves: rhbz#912773
-
-2013-05-27 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_scsi: Add 'unfence' to manual page
- Resolves: rhbz#887349
-
-2013-05-24 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Validation if password/password_script or identity file is used was not processed
- Resolves: rhbz#959490
-
-2013-04-17 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Monitor/list is not working correctly
- Bug was introduced with multiple plug support.
-
-2013-03-06 Jan Pokorný <jpokorny at redhat.com>
-
- fence2rng.xsl: parametrize and make more flexible
- The output is 1:1 to the previous version, but it is now easy to change
- base indentation level and internally, we use abstract blocks for tags
- instead of </> kludge. Also the unused macro-like template is
- removed.
-
- lib: remove static metadata from fence.rng.head
- Possible as:
- - rps10: droped in aa905c0bf7a717648b44069e4a192f7afe0cda61
- (4 years back)
- - brocade, mcdata, sanbox2, bladecenter, bullpap, ipmilan:
- generate metadata natively
- - vixel, egenera, xcat: ditto
- - na (Node Assassin): metadata enabled by previous commit
-
-2013-03-06 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Install non-fence agents to libexec
- Binaries/scripts which are not fence agents should be installed to libexec directory.
-
-2013-03-04 Marek 'marx' Grac <mgrac at redhat.com>
-
- testing: Add test for multiple ports feature
-
-2013-02-25 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Support multiple plugs for actions (e.g. --n 2,3,4)
- Previously, if you have a machine with two (or more) power lines you had to
- create a configuration in cluster.conf which was quite common a place for
- errors. Instead of pure "reboot" you had to use:
- 1) port 1 off
- 2) port 2 off
- 3) port 1 on
- 4) port 2 on
-
- With this patch you can use 'port 1,2 reboot'.
-
-2013-02-18 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: All command prompt defaults should be list
- options["cmd_prompt"]["default"] have to be list, so we can use this option consistently in fencing library
-
- fencing: Fix indentation in --help message
-
- fencing: present default values for --ipport in --help
- Resolves: rhbz#895717
-
- fencing: Fix documentation for action 'monitor'
-
-2013-02-13 Marek 'marx' Grac <mgrac at redhat.com>
-
- COMPATIBILITY BREAK: remove --uuid (use standard -n / --plug instead)
- when --plug is UUID then it is automatically detected.
-
-2013-02-11 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_apc: Add support for firmware 5.x
- New major version of firmware is now supported.
-
- Resolves: rhbz#886614
-
- testing: Add verbose mode to testing library
-
- testing: Add test suite for fence_drac on Dell DRAC IV
-
- COMPATIBILITY BREAK: remove support for Dell DRAC III and older
- Support for older DRAC devices was removed and fence agent was ported to fencing
- library. fence_drac should be now used only for Dell DRAC IV.
-
- fence agents: Fence agents errors are logged to syslog
- Related: rhbz#879761
-
-2013-02-07 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Testing tool and dummy fence agent
- New testing tool for repeating sequences of action on given devices is ready. It should
- improve testing process of fence agents and simplify it. So more volunteers can test their
- devices.
-
- New fence agent "dummy" is used for testing fencing library as it does not require
- any hardware/software.
-
- fence_virsh: Replace constant (1) with variable from --power-wait
-
-2013-02-06 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_cisco_ucs: Fix traceback when hostname cannot be resolved to IP address
-
- fence_cisco_ucs: fence agent does not respect "delay" attribute
- Resolves: rhbz#896603
-
- fence_vmware_soap: Fix previous patch - fix traceback when hostname cannot be resolved
- Previous patch was not exactly copied from another branch.
-
- fence_vmnware_soap: Fix traceback when hostname cannot be resolved to IP address
- Resolves: rhbz#902404
-
-2013-02-04 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence agents: Text in help is changed from foo=<value> to foo=[value]
- Unlike previous patch, this focus on fixing specif fence agents.
-
- fencing: Text in help is changed from foo=<value> to foo=[value]
-
- COMPATIBILITY BREAK: remove -q / quiet
- This option was never widely used because fence agents are quite quiet by default.
-
- COMPATIBILITY BREAK: replace udpport with ipport, make ipport dependent on ipaddress
-
- COMPATIBILITY BREAK: Remove obsolete options from STDIN
- For historical reasons and backward compatibility we supported these options
- blade -> port
- option -> action
- fm -> port
- hostname -> ipaddr
-
- These options were not in documentation and are completely removed now.
-
- COMPATIBILITY BREAK: fence_rsb replace -n / telnet_port with standard --ipport / ipport
- telnet_port has same functionality as ipport and -n is usually used for port number/UUID
-
- COMPATIBILITY BREAK: fence_lpar replace --n / --partition / partition with standard -n / --plug / port
-
- COMPATIBILITY BREAK: fence_drac5 replace --m / --modulename / modulename / module_name with standard -n / --plug / port
- This change apply to you only if you use fence agent against DRAC CMC, other DRACs are bound to one machine, so they
- do not use this option at all. Device option no_port (no port is needed) was added, previously modulename was optional
- and this is not true with 'port' option by default.
-
- COMPATIBILITY BREAK: remove option -T / --test / test
- Option -T was not used in all fence agents and its functionality differs. If you want to know if
- your fence device is working correctly use '-o monitor / --action monitor / STDIN: action=monitor'.
-
-2013-01-29 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_drac5: Fix 'list' operation
- Device option 'separator' is set automatically when 'port' occurs but currently drac5 do not
- use 'port / -n' but 'module_name / -m'.
-
- fence_drac5: Fix regression on Dell CMC and Dell DRAC5
- Standard EOL for agents connecting via ssh is CR/LF.
- Some Dell devices represents CR/LF as double-enter what creates a problem in parsing of output.
-
- This patch adds a check for double-enter. This can be detected in function which power on/off machine
- because 'get power status' was run before and if we can find a line without any command we know that
- there is a double-enter problem.
-
- Resolves: rhbz#904195
-
- Resolves: rhbz#904195
-
-2012-11-25 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_lpar: Option 'partion' is moved to fence_lpar
- This option was not part of patch a60ed3ca6fa0f63dfb09b46d99c2a281e2eed63e because it will be replaced
- by standard --port / plug option
-
- fencing: Do not check IP address if fence agent does not need any.
-
- fencing: Fix usage of UUID if option --port/plug is not defined.
-
- fencing: Move options which are used only once to appropriate fence agent
- @note: Fence agents which are going to removed/replaced were not fixed
-
- fencing: Add new option --ssh-options
- All fence agents which supports ssh connection can use
- --ssh-options / ssh_options to change default ssh parameters
- (different cipher, config file, ...)
-
-2012-11-24 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Fix minor inconsistencies
- * integer instead of string
- * missing long options for option (--partition)
-
- fence_ilo_mp: Remove dependant device options like in rest of fence agents
-
- fencing: Improve XML metadata output
- Problem occurs when special characters are part of default values.
-
- fence_cisco_ucs: Simplify code by using rstrip()
-
- fence_lpar: Typo in definition of 'managed' option
-
- fencing: Operation 'reboot' is not working because fence_fabric was wrongly used
- Bug was introduced when doing change to fabric_fencing and list of available actions.
-
- fencing: Replace all short (getopt) options in code by their long variants
- Short (getopt) arguments are supported as before but all internal structures now
- should use their long variants. This makes code more readable and we should more
- easilly avoid problems when overloading short getopt on command line (e.g. -d).
-
-2012-11-13 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Replace common options with more flexible mechanism
- Before this patch we had an option do add set of device options to all fence agents.
- e.g. device needs password, device needs ip address, ...
-
- This patch makes it more flexible as we can in addition do also options which depend on parent.
- e.g. if device needs password, then password script can be also used
- e.g. if device needs IP address, we can force it to use either IPv4 or IPv6
-
- fencing: UUID can be entered also as port number (-n / --plug / port)
- UUID is automatically detected using uuid library and we do not need
- a special option/argument for it anymore. (--uuid is still supported)
-
-2012-11-08 Ryan O'Hara <rohara at redhat.com>
-
- fence_scsi: change on_target metadata attribute
- This patch simply changes the on_target metadata attribute to use
- value of "1" instead of "true".
-
-2012-11-08 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_hds_cb: Push exception handling to fencing library
- Exception handling of network failures should be handled in fencing library. Old fence agents are already
- ported to this new behaviour.
-
- fence_hds_cb: Port fence agent to longopts
-
- fence_hds_cb: Style clean-up
-
-2012-11-08 Matt Clark <mattjclark0407 at hotmail.com>
-
- Fixed date of copyright. Copy paste error.
-
- New fencing script for Hitachi compute blade 2000
- This script uses the system console functionality of the Hitachi compute
- blade 2000 systems to fence a node. Status, list, on, off and reboot
- have all been implemented. Can use SSH or telnet as provided by the
- underlying fencing.py library.
-
-2012-11-08 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence agents: Transfer SNMP fence agents to long-opts + transfer script
-
- fencing: Simplify exceptions catching when closing connection
- When we are closing connection we do not care about exceptions. For example
- if action 'exit' failed, fencing is succesful anyway because our goal was to fence machine.
-
- fence agents: Transfer non-SNMP fence agents to long-opts
-
- fencing: Add support for usage of longopt keys in options
- This way we can make code more readable options["--power-timeout"] instead options["-g"].
- This code was created manually to support both short and long options but fence agents will
- be moved to long-options automatically.
-
-2012-11-07 David Vossel <dvossel at redhat.com>
-
- fence_scsi: support unfence action in Pacemaker
- Add attribute to fence_scsi's metadata that indicates that on action
- must be performed on local node. Also allow metadata action via stdin.
-
-2012-11-05 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence agents: Exceptions (EOF/TIMEOUT) should be handled in fencing library, not in every fence agent
- Basic exception which can happends during get/set/list should be handled in fencing library and not in
- every fence agent. This patch simplify code of fencing agents which uses pexpect and pycurl.
-
- code cleanup: Fix warnings according to pylint and typos
- * remove unused 'global'
- * typos
- * start with renaming global variables from foo to FOO (python convention)
-
- code cleanup: Fix warnings according to pylint
- * use of possibly unitialized values
- * redefining built-in functions
- * unused block of code
-
- code cleanup: Fix minor warning according to pylint
- * space / tab issue
- * missing space after operators
- * additional semicolons
- * unused import of modules
- * unused variables
-
- fence_ipmilan: Fix manual page for HP iLO3, HP iLO4
-
-2012-10-29 Marek 'marx' Grac <mgrac at redhat.com>
-
- fabric fence agents: Fix dealing with enable/disable and support on/off options for fabric fence agents
-
- fence-agents: Use default values for device options instead of per-agent solutions
- Majority of these changes concern:
- * (-x / ssh) to be turn on by default
- * command prompt default which differs across fence agents
-
- fence_cisco_ucs: Incorrect timeout was used during login
- Previously, login command was bound with shell_timeout instead of login_timeout.
-
- fence-agents: Extend set of default device options
- There are device options which are common for every fence agent. This feature was introduced before
- but only new features were added. This patch removes common features from individual fence agents and
- adds it to the common set in fencing library.
-
-2012-10-25 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_na: Add support for XML metadata output
- Adding a skelet for XML metadata output so fence_na can be used with corosync.
-
- Resolves: rhbz#864028
-
-2012-10-09 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_rhevm: fix typo in RE
- Resolves: rhbz#863568
-
-2012-10-08 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_rhevm: Support new API used in RHEV-M 3.1
- Resolves: rhbz#863568
-
-2012-09-27 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_vmware_soap: Faster fencing, fix crash on VM without valid UUID
- Improve speed of fencing by removing requests for attributes that are not needed. This change is significant
- when there are hundrens of VM on vSphere server. On the systems with <10 VM improvement is still about 20%.
-
- This patch also fixes situation when there are VM which do not have valid UUID. This can happend when P2V (physical
- to virtual machine process) failed.
-
- Patch was proposed by: Rodrigo A B Freire
-
- Resolves: rhbz#836654
-
-2012-09-18 Ryan O'Hara <rohara at redhat.com>
-
- Add metadata to list of accepted actions.
- Resolves: rhbz#825667
-
-2012-08-09 Masatake YAMATO <yamato at redhat.com>
-
- fence_kdump: Typo in fence_kdump_send man page.
- Reviewed-by: Ryan O'Hara <rohara at redhat.com>
-
-2012-08-09 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_virsh: Support for using sudo for running virsh
- Based on patch from Niels de Vos (in bugzilla)
-
- Resolves: rhbz#632851
-
-2012-08-02 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- eaton_snmp: add tested models
-
-2012-08-02 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_eaton_snmp: Fix default power-wait option value, remove support for -n switch:port
- This patch fixes default power-wait value to two seconds and removes support for notation
- -n switch:port which is obsolete and is being removed from last fence agents.
-
-2012-07-26 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_ilo2 was not correctly cleaned by Makefile
- Related: rhbz#800650
-
- Add fence agents specific for HP iLO2, iLO3, IMM and iDrac
- These fence agents runs 'standard' fence agent (fence_ilo, fence_ipmilan) with correct timeout options, encryption, snmp_version, ... Originally they were supposed to be symbolic links but this approach is not recommended so they regular files.
-
- Resolves: rhbz#800650
-
-2012-07-23 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_ipdu: Minor fixes to fence agent
- * replace code to use 'default' value
- * remove code for backward compatibility with old options (-n switch:port)
-
- Resolves: rhbz#741985
-
-2012-07-23 Lon Hohberger <lhh at redhat.com>
-
- Add iPDU fencing agent for model 46M4002
- Resolves: rhbz#741985
-
-2012-07-12 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence agents: Some agents do not support action=metadata on STDIN
- Resolves rhbz#837174
-
-2012-06-04 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: fix dist_man_* vs man_*
- those man pages should be generated at build time and not part
- of the release tarball
-
-2012-05-31 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_hpblade: Fence agent for HP BladeSystem
- New fence agent for HP BladeSystem enclosures. Be aware that you will have to set -c / cmd_prompt as it vary a lot.
-
- Resolves: rhbz#818337
-
-2012-05-30 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- test commit
-
-2012-05-21 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence agents: autodetect of EOL in fence agents
- Fence agents diffes in EOL they accept. EOL \r\n is quite universal but in some cases
- it is translated to \n\n what makes login process impossible to complete as it ends like
- (capitals are fence agent response)
-
- Login: USER\n
- Password: \n
-
- Login: PASSWORD\n
-
- Until now there was a device option that handles that login_eol_lf but we found out that there are few
- APC devices which does not work correctly with \r\n and needs \n. So we have to autodetect it, this feature was
- added to standard library. As it can also helps with common problem when you have to write exactly
- conn.send("message" + "\r\n"). Method conn.sendline("") uses EOL according to platform, so we have decided to create
- new method conn.send_eol("message") which uses correct EOL. We need conn.sendline in communication with other local
- application so we should not reuse it for this purpose.
-
- Resolves: rhbz#810949
-
- fence agents: Fix unique attribute for agents which are not based on fencing library
- Resolves: rhbz#822507
-
-2012-04-12 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_brocade: support option action on STDIN, originally only operation was supported
- Resolves: rhbz#804805
-
-2012-03-26 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_ipmilan: Fix typo
- Resolves: rhbz#806912
-
- fence_ipmilan: Using "delay" option
- Delay option is not correctly tested in fence_ipmilan.
-
- Resolves: rhbz#804169
-
- fence_ipmilan: return code can be invalid when using -M cycle
- Resolves: rhbz#806897
-
- fence agents: Attribute unique should be set to 0 (false) by default
- Resolves: rhbz#806883
-
-2012-03-19 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence agents: Using "delay" option can ends with timeout problems
- Resolves: rhbz#804169
-
-2012-02-08 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_ipmilan: power_wait timeout is not used for power off operation
- Patch proposed by Vlastimil Holer.
-
- Resolves: rhbz#787706
-
- fence_rhevm: Incorrect status detected when VM is not in up/down
- For fencing purposes we have to focus on getting OFF status
- when machine is really 100% down, conditions for ON status are much simplier
- (as fact that machine is has power does not mean that it works). This patch
- specify condition for OFF status - in fact only 'Down' is accepted now
-
- Resolves: rhbz#769681
-
- fencing: Missing password is not reported properly
- When username is entered and password is missing then it is possible
- that fence code will end with exception.
-
- Resolves: rhbz#785091
-
-2012-01-05 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_vmware_soap: Support for 100+ VM in VMWare
- In previous version, we did not try to get all results for VM. This
- updated version fixes this issue by using proper SOAP API
-
- Resolves: rhbz#735797
-
- fence_ipmilan: Possible buffer overflow
- Problems found by Coverity Scan.
-
- Resolves: rhbz#756315
-
-2011-12-19 Ryan O'Hara <rohara at redhat.com>
-
- fence_scsi: remove unlink of fence_scsi.dev file
- This patch removes the call to unlink the fence_scsi.dev file during
- unfencing (action=on). Instead of unlinking the file, check to see if
- the current device is already in the fence_scsi.dev file before writing
- it to the file. Note that since this file exists in /var/run/cluster
- directory, it should be removed on reboot.
-
- Resolves: rhbz#741339
-
-2011-12-09 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_rackswitch: Add metadata generation for C-based fence agents
- This should be part of previous patch: fence_rackswitch: Add metadata output for fence_rackswitch agent
-
- Resolves: rhbz#714841 (partial)
-
- fence_rackswitch: Add metadata output for fence_rackswitch agent
- Adding this feature allow us to generate manual pages directly from XML,
- so both GUI tools and manual pages can see same feature.
-
- Makefile for fence_ipmilan is modified because it can reuse same snippets
-
- Resolves: rhbz#714841 (partial)
-
- fence_vmware_soap: Support for alias names as ports
- Extending fence agent to support (-n / port) can use alias names of VM.
- They can be obtained using 'list' action. This feature won't work correctly
- if you have several VM with same name, in that case you should use either
- full path or UUID.
-
- Resolves: rhbz#715107
-
- fence_rsb: Fence agent ported to fencing library
- Fence agent was rewritten to use fencing library. Main benefits are
- support for ssh connection, XML metadata, automatic man page generation.
-
- Resolves: rhbz#742003
-
- fencing-agents: Add metadata output for fence agents in perl
- Fencing agents written in PERL usually did not have option to print
- XML metadata about its feature. Adding this feature also allow us
- to generate manual pages directly from XML, so both GUI tools and manual
- pages can see same feature.
-
- Resolves: rhbz#714841 (partial)
-
-2011-09-22 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_ipmilan: is not parsing args with passwd_script option in cluster.conf
- Resolves: rhbz#740484
-
-2011-09-19 Ryan O'Hara <rohara at redhat.com>
-
- fence_scsi: fix simultaneous unfence operations
- This patch fixes an issue where multiple nodes attempt to unfence at
- the same time and fail when attempting to create a reservation. Each
- node checks to see if a reservation exists, and if not, it will attempt
- to create one. The problem occurs when multiple nodes see that no
- reservation exists and attempt to create one.
-
- This patch checks the return code of do_reserve. If this call fails,
- check again to see if a reservation was created by another node, in
- which case there is no error.
-
- Resolves: rhbz#738384
-
- Reviewed-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-
- fence_kdump: fix potential null dereference
- If strchr returns NULL while parsing options from stdin, continue
- without handling the option. This should prevent possible null
- dereference.
-
- rhbz#734429
-
- Reviewed-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-
-2011-09-15 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_ipmilan: fence_ipmilan exposes user password on verbose mode
- In verbose mode password is replaced by '[set]'
-
- Resolves: rhbz#732372
-
-2011-09-01 Marek 'marx' Grac <mgrac at redhat.com>
-
- Merge branch 'master' of http://git.fedorahosted.org/git/fence-agents
-
-2011-08-30 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: make sure fence_kdump man pages are in the release tarball
-
-2011-08-29 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_rhevm: REST API URL needs to be updated to /api
- Resolves: rhbz#731166
-
-2011-08-22 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_rhevm: change "UP" status to "up" state as the REST-API has changed
- Resolves: rhbz#731166
-
-2011-08-15 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_drac5: drac5 firmware does not close ssh session correctly
- Attempt to close connection right after sending 'exit' command does
- not close session correctly.
-
- Resolves: rhbz#718924
-
-2011-08-02 Lon Hohberger <lhh at redhat.com>
-
- fence_kdump: Fix metadata
- Having duplicate "verbose" parameters is not valid.
-
- Reviewed-by: Ryan O'Hara <rohara at redhat.com>
-
-2011-07-29 Ryan O'Hara <rohara at redhat.com>
-
- fence_kdump: change default timeout back to 60
- After more testing, the time between when the fence_kdump agent begins
- listening for a message and the time that it receives a message appears
- to be approximately 43-45 seconds. The default timeout of 60 seconds
- should be sufficient. Users that wish to wait more than 60 seconds can
- increase the timeout via the "timeout=<time>" option.
-
- fence_kdump: Fix logging
- Change the log_debug and log_error macros. For fence_kdump, also write
- to syslog.
-
- fence_kdump: remove binary files from git
-
-2011-07-28 Ryan O'Hara <rohara at redhat.com>
-
- fence_kdump: Increase default timeout to 120
- The default timeout value of 60 seconds appears to be to short, so we
- should increase the default timeout value to 120 seconds. This is the
- time that the fence_kdump agent will wait for a message before returning
- failure.
-
-2011-07-26 Ryan O'Hara <rohara at redhat.com>
-
- fence_kdump: remove FENCE_KDUMP_MSGV2
- FENCE_KDUMP_MSGV2 is not used at this time, so remove it.
-
- fence_kdump: include ctype.h
- Add ctype.h to avoid implicit declaration of isspace function.
-
- fence_kdump: fix compiler warnings
- Change 'inline void' function to 'static inline void' to avoid compiler
- warnings.
-
-2011-07-26 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: add extra check required for fence_kdump
-
-2011-07-26 Ryan O'Hara <rohara at redhat.com>
-
- Updated to include new fence_kdump agent.
-
- Merge branch 'master' of ssh://git.fedorahosted.org/git/fence-agents
-
- fence_kdump: New fence agent for use with kdump
- The fence_kdump agent provides a way to detect a failed node that has
- enterted the kdump crash recovery service.
-
-2011-07-26 Kristoffer Knigga <kris at knigga.com>
-
- ipmilan: Allow privilege selection
- In some cases, it's desirable to limit the rights to an iLO
- user in order to mitigate the fact that the login information
- is stored as plaintext in the cluster configuration.
-
- Unfortunately, ipmitool and fence_ipmilan do not work in this
- configuration.
-
- # /usr/bin/ipmitool -I lanplus -H '10.1.9.40' \
- -U 'fence' -P 'fencepost' -v chassis power status
- RAKP 2 message indicates an error : unauthorized role requested
- Error: Unable to establish IPMI v2 / RMCP+ session
- Unable to get Chassis Power Status
-
- It turns out that dialing back the permissions on a user in iLO
- changes its privilege level, in this case from administrator to
- operator. ipmitool defaults to administrator if nothing is
- specified, hence the error. If the correct privilege level is
- given to ipmitool the command works:
-
- # /usr/bin/ipmitool -I lanplus -H '10.1.9.40' \
- -U 'fence' -L 'OPERATOR' -P 'fencepost' -v chassis power status
- Chassis Power is on
-
- This patch adds the 'privlvl' option to fence_ipmilan, allowing
- administrators to change the privilege level in the cluster
- configuration.
-
-2011-07-22 Lon Hohberger <lhh at redhat.com>
-
- Add rha:name and rha:description tag to RelaxNG XSL
- Resolves: rhbz#698365
-
- Reviewed-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-
-2011-07-08 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_drac5: Incorrect output of 'list' operation on Drac 5
- Previously (due to other bug) fence agents operation 'list' was not
- working properly. After fixing that issue, drac5 returned empty line
- instead of N/A as an output for 'list'. This happends because fencing
- library does not have support for situations when for one fence agents
- there are fence devices that supports / not supports 'list' option.
-
- Resolves: rhbz#718194 (regression introduced by previous patch)
-
-2011-07-05 Arnaud Quette <aquette.dev at gmail.com>
-
- eaton_snmp: add support for Eaton Switched ePDU
-
-2011-07-01 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_bladecenter: Reboot operation did not work correctly with --missing-as-off
- This patch adds a correct handling of situation where prompt was not changed
- as expected (means blade is not available)
-
- Resolves: rhbz#689851
-
- fence_drac5: Fix support for Dell DRAC CMC
- Fix operation 'list' for Drac CMC and typo that causes python traceback
-
- Resolves: rhbz#718194
-
-2011-06-27 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- relaxng: drop static agents definitions
- GNBD: obsoleted
- fence_scsi/fence_virt/fence_xvm are now autogenerated
-
- relaxng: drop <grammar> definition
-
- relaxng: ship bits required to build the schema at runtime
-
-2011-06-27 Lon Hohberger <lhh at redhat.com>
-
- Make fence_ack_manual 'usage' more accessible
-
-2011-05-24 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: allow selection of agents to build and fix configure help output
-
-2011-05-17 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- fence_rsa: readd test info
-
- build: add missing file from tarball release
-
-2011-05-11 Cedric Buissart <cbuissar at redhat.com>
-
- ipmilan help: login same as -l
- In the ipmilan help message, 'login' is the same as -l (and not
- -u)
-
-2011-05-11 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- Fix file permissions
-
-2011-05-11 Matt Clark <mattjclark0407 at hotmail.com>
-
- Cleanup of fence_xenapi patches. Added copyright information to doc/COPYRIGHT. Fixed static reference to lib directory in fence_xenapi.py. Fixed static reference to RELEASE_VERSION and BUILD_DATE in fence_xenapi.py.
-
- Clean up of fence_xenapi patches. Moved XenAPI.py to lib directory and added to Makefile.am.
-
- Updated to include xenapi script in Makefile.am.
-
- Updated to include xenapi script.
-
- New fencing script for Citrix XenServer and XCP.
- Fencing script that uses the XenAPI to allow remote switch, status and list of virtual machines running on Citrix XenServer and Xen Cloud Platform hosts.
-
-2011-04-04 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_ipmilan: Correct return code for diag operation
- Return code for diag operation should be 0.
-
- Replaces commit 8a97abd04b8492310c1095413c5cf26bbf98e395
-
- "diaf" != "diag"
-
- Resolves: rhbz#655764
-
-2011-04-04 Lon Hohberger <lhh at redhat.com>
-
- Revert "fence_ipmilan: Correct return code for diag operation"
- This reverts commit 8a97abd04b8492310c1095413c5cf26bbf98e395.
-
-2011-04-04 Marek 'marx' Grac <mgrac at redhat.com>
-
- bugfix uuid
-
- library: Add support for URL session instead of hostname
- Fence agent can choose if they prefer to set address to fencing device
- as hostname/ip address or URL.
-
- fence_ipmilan: Correct return code for diag operation
- Return code for diag operation should be 0.
-
- Resolves: rhbz#655764
-
- fence_ipmilan: returns incorrect status on monitor op if chassis is powered off
- There is a bug in fence_ipmilan agent: it exits with result code 2 on
- "monitor"/"status" command if chassis is powered off. Instead it should return
- 0 because "monitor" command should return fence device status, not chassis
- status.
-
- Reported and patch proposed by Vladislav Bogdanov
-
- Resolves: rhbz#690735
-
- fence_cisco_ucs, fence_rhevm: Problems with SSL support
- Both of these agents are using pycurl. This library has different default
- setting across various distributions, so it is better to set SSL options
- directly.
-
- Resolves: rhbz#691392
-
- fence_vmware_soap: New fence agent for VMWare using SOAP API
- This fence agent depends on package python-suds (https://fedorahosted.org/suds/)
- which provides interface to SOAP
-
- Resolves: rhbz#634567
-
- library: Add support for UUID (-U / --uuid / uuid)
- Fence agents can use --uuid as a replacement for --port. This is very
- useful in a case of virtual machines that have both UUID and name.
-
- Patch proposed by Matt Clark
-
-2011-03-25 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_cisco_ucs: Fix for support for sub-organization
- Resolves: rhbz#678094
-
-2011-03-22 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_cisco_ucs: Support for sub-organization
- Added new option --suborg where you can enter suborg path (e.g. org-myorg/org-sub).
- Unlike in the other cases we do not automatically add prefixes as there can be more
- levels of suborganizations.
-
- Resolves: rhbz#678094
-
-2011-03-21 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_rhevm: Update URL to RHEV-M REST API
- Resolves: rhbz#681674
-
-2011-03-18 Lon Hohberger <lhh at redhat.com>
-
- fence-agents: Accept other values for "true"
- Resolves: rhbz#679502
-
-2011-03-15 Ryan O'Hara <rohara at redhat.com>
-
- fence_scsi: grep for keys should be case insensitive
- When checking that a key is or is not registered for a device, the key
- comparison should be case insensitive. Using sg_persist to query for
- registered keys will always give lowercase characters for hexadecimal
- keys, so registering key 'A' would appear to fail since it would not
- match 'a'.
-
- Resolves: rhbz#653504
-
- fence_scsi: fix typo when opening logfile
- There is a typo in the code that opens the logfile. The logfile should
- be opened in append mode. This was fixed in RHEL6 quite some time ago,
- but for whatever reason didn't get pushed into upstream.
-
-2011-03-15 Jim Ramsay <jim_ramsay at dell.com>
-
- Allow fence_scsi to use any valid hexadecimal key
- The check for a non-zero key is using perl's implicit string-to-integer
- conversion that only works on base 10 digits, which means that any key
- starting with at least one digit [1-9] will come through as okay, but
- any key starting with [A-F] will evaluate as 0 and fail the test.
-
- An explicit conversion to integer via hex() is the solution.
-
- I hit this in a cluster with a cluster ID of 43316 == 0xA934 and scsi
- fencing configured, where starting the cman service would always fail at
- the "Unfencing self" step.
-
-
- Resolves: rhbz#653504
-
-2011-03-11 Arnaud Quette <aquette.dev at gmail.com>
-
- eaton_snmp: fix list offset
-
-2011-03-09 Brandon Perkins <bperkins at redhat.com>
-
- Fence_rhevm needs to change "RUNNING" status to "UP" status as the REST-API has changed.
- Resolves: rhbz#681669
-
-2011-03-02 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- Fix .gitignore a bit more
-
- build: update .gitignore
-
- build: plug in fence_scsi_check.pl and ship it in sharedir/cluster/
-
-2011-03-01 Ryan O'Hara <rohara at redhat.com>
-
- fence_scsi_check: watchdog script for fence_scsi
- This fence_scsi_check watchdog script will check to see is the local
- node's key is registered with any devices. If the key is registered with
- at least one device, the script will return 0. If none of the devices
- have the node's key registered (ie. it has been fenced), the script will
- return 2 and node will reboot via watchdog.
-
- Reviewed-by: Fabio M. Di Nitto <fdinitto at redhat.com>
-
- fence_scsi: create /var/run/cluster if necessary
- Before writing to fence_scsi.key or fence_scsi.dev, check to see if
- /var/run/cluster directory exists. If not, create it.
-
- fence_scsi: write devices to tmp file on unfence
- When unfencing occurs (action=on), write list of devices that were
- successfully registered to /var/run/cluster/fence_scsi.dev file. This
- file will be used by the optional watchdog script. Note that the devices
- are not added to the tmp file until the verification step.
-
- fence_scsi: move key file to /var/run/cluster
- Since the contents of /var/run/cluster/ directory are cleared on each
- reboot, move the fence_scsi.key file to that directory. This is useful
- for watchdog checks as a means to avoid watchdog reboots when a node has
- not yet unfenced or unfencing fails.
-
-2011-02-28 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: fix build dependecy
- when editing a file, the corresponding agent was not being regenerated
- because the make dependency was missing.
-
- build: fence_ipmilan does not need PYTHONPATH to generate manpage
-
- build: make ready for watchdog integration script
-
-2011-02-25 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- fence_eaton_snmp: fix port number handling
- snmp port enumration starts at 0 while all other interfaces start at 1.
-
- Make the numbering consistent between configuration, devices and UIs.
-
-2011-02-21 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_wti: Unable to parse output when splitted into several screens (2/2)
- Minor changes to previous patch. Power ON/OFF now works as expected
-
- Resolves: rhbz#678522
-
- fence_wti: Unable to parse output when splitted into several screens
- Parsing of listing that consists of several screens added.
-
- Resolves: rhbz#678522
-
-2011-02-16 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_rsa: Better error handling
- In some special cases (reason is not known yet) fence agent for RSA fails to
- get status because it can't find pattern 'Power: (.*)'. After applying this
- patch agent will end with proper error message instead of python backtrace.
-
- Resolves: rhbz#652619
-
-2011-02-08 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: cleanup configure.ac
- drop reference to corosync that's not required to build anymore
- add entries from autoscan
-
- Update COPYRIGHT file
- bump years to 2011
-
- add fence_eaton_snmp information
-
- fix email address to avoid autospam
-
- drop fence_xvm bits since the agent has been dropped ages ago
-
-2011-02-07 Ryan O'Hara <rohara at redhat.com>
-
- fence_scsi: properly log errors for all commands
- There are a number of places in fence_scsi that call sg_persist commands
- via Perl's qx command. If an error occurs, the script simply dies and
- reports the name of the subroutine that the script died in. This can be
- improved by replacing the die call with log_error, such that any errors
- get properly written to the logfile, if any. This patch also logs the
- error code returned from the failed command.
-
- This patch also redirects stderr to /dev/null for all commands executed
- via qx.
-
- Reviewed-by: Lon Hohberger <lhh at redhat.com>
-
- fence_scsi: verify that on/off actions succeed
- This patch adds code to verify that both "on" and "off" actions are
- successful. This is needed because there seem to be some arrays that
- do not report an error even when no registration was created, etc.
-
- These verification steps takes places after the action has been
- performed successfully. If an error was encountered while performing
- either an "on" or "off" action, fence_scsi will exit and no verification
- will take place. Failure to verify that an action was successful for any
- device will result is failure.
-
- For the "on" action, do_verify_on will check that the key was
- successfully registered with each devices and that a reservation exists
- on each device.
-
- For the "off" action, do_verify_off will check that the key was removed
- from each device and that a reservation exists on each device.
-
- Resolves: rhbz#644385
-
- Reviewed-by: Lon Hohberger <lhh at redhat.com>
-
- fence_scsi: always do sg_turs for dm-mp devices
- This patch fixes a with the original patch posted last week. Before
- attempting to register with a device, we should call sg_turs on the
- device. If that device is a dm-multipath device, we should call sg_turs
- on all the paths. This can be done by simply moving the call to do_reset
- to do_register and do_register_ignore.
-
- Also, the patch adds a call to do_reset before doing a "status" action.
- If a node has been fenced and then proceeds to check its status, it will
- be in "unit attention" state.
-
- Resolves: rhbz#640343
-
- Reviewed-by: Lon Hohberger <lhh at redhat.com>
-
- fence_scsi: always do sg_turs before registration
- If a node has been fenced, or its key has been forcibly removed from
- device(s) by another node, the victim will see "unit attention" from the
- devices if/when it attempts to re-register. This error is normally
- reported just once, but will cause registration to fail. We can safely
- avoid this by calling sg_turs prior to each attempt to register with a
- device.
-
- Resolves: rhbz#640343
-
- Reviewed-by: Lon Hohberger <lhh at redhat.com>
-
- fence_scsi: fix regular expression for grep
- When fence_scsi checks to see if a specific keys is registered for a
- specific device, it uses grep to look through a list of all registered
- keys. The existing regular expression was not specific enough, and could
- result in false positives. This patch fixes the problem by using anchors
- to make the regular expression more specific.
-
- Resolves: rhbz#670910
-
- Reviewed-by: Lon Hohberger <lhh at redhat.com>
-
- fence_scsi: identify dm-multipath devices correctly
- Previously, fence_scsi would only identify /dev/dm* devices as being
- multipath devices. This prevented the use of "friendly" dm-multipath
- names (eg. /dev/mapper/mpath1). Since fence_scsi can now be passed
- devices to operate on, it should be able to handle "friendly" names,
- too. This patch fixes the problem by getting the absolute path of the
- device at registration time.
-
- Resolves: rhbz#644389
-
- Reviewed-by: Lon Hohberger <lhh at redhat.com>
-
-2011-02-07 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: fix make dist target
- this also addresses the issue of a dirty tarball being distributed
-
-2011-02-03 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- Fix build for distributions that don't use bash as default shell
-
-2011-01-20 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_eaton_snmp: New fence agent for Eaton devices
- Fence agent for Eaton Managed ePDU (http://www.epdu.com).
- Developed by Arnaud Quette <aquette.dev at gmail.com>
-
-2011-01-13 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_ipmilan: Fix manual page to describe usage with HP iLO 3
- Resolves: rhbz#648892
-
- fence_ipmilan: Add "diag" option to support "ipmitool chassis power diag"
- Resolves: rhbz#655764
-
-2010-11-28 Digimer <digital.mermaid at gmail.com>
-
- fence_na: Updated node_assassin to v1.1.6. Fixed a few bugs and cleaned up the configuration file and docs to be more neutral and professional.
-
-2010-11-09 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: allow autoreconf from tarball release
-
-2010-11-08 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: enable publishing
-
- build: workaround python path madness
-
- build: add automatic versioning and release script
-
-2010-11-05 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- overall cleanup and make ready for release
-
-2010-10-25 Marek 'marx' Grac <mgrac at redhat.com>
-
- library: Metadata are not correct if agent does not support on/off
- Metadata actions are generated according to option io_fencing. Currently
- only fence_sanbox is affected as fence_ifmib accepts both enable/disable
- and on/off (so io_fencing is not used)
-
- Resolves: rhbz#623266
-
- fence_eps: Fix parameters missing in metadata
- fence_eps contains a parameter which is not defined in fencing library.
-
- Resolves: rhbz#618703
-
- fence_egenera: Missing -u / user in manual page
- Resolves: rhbz#635824 (partially)
-
-2010-10-13 Christine Caulfield <ccaulfie at redhat.com>
-
- fence-agents: Add power_wait to fence_ipmilan
- Previous patch used power-wait which was inconsistent with
- the rest of the fencing agents. Also, help information
- for the new option was missing.
-
- Resolves: rhbz#548575
-
-2010-09-24 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_cisco_ucs: New fence agent for Cisco UCS
-
- fence_rhevm: New fence agent for RHEV-M REST API
-
-2010-09-07 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- Add fence_na to the build
-
-2010-09-07 Madison Kelly <mkelly at alteeve.com>
-
- Added detail to Node Assassin fence agent (fence_na) copyright.
-
-2010-09-07 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- fence_na: add copyright/author information
-
- fence_na: fix last installation bits required to work in our build env
-
- fence_na: generate files based on configure invokation
-
- fence_na: import files pristine from upstream
-
-2010-08-02 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Method to cause one node to delay fencing - ipmilan
- Resolves: rhbz#614046
-
- fencing: Method to cause one node to delay fencing - drac, egenera
- Manual pages were updated too as they are not generated automatically
- for these agents.
-
- Resolves: rhbz#614046
-
-2010-07-30 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_drac5: make "port" a synonym of "module_name" for drac5
- Resolves: rhbz#619776
-
-2010-07-28 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Not all parameters appear in metadata
- Resolves: rhbz#618703
-
- fencing: Method to cause one node to delay fencing [2]
- Option was not correctly showed in metadata
-
- Resolves: rhbz#614046
-
- fencing: Method to cause one node to delay fencing
- Resolves: rhbz#614046
-
-2010-07-16 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_ilo: will throw exception if user does not have power priviledges
- User will receive error message instead of python traceback
-
- Resolves: rhbz#615255
-
-2010-07-09 Guido Günther <agx at sigxcpu.org>
-
- fence_rsb: Raise exceptions not strings
- otherwise we'll see in python 2.6
-
- Traceback (most recent call last):
- File "<stdin>", line 1, in <module>
- TypeError: exceptions must be old-style classes or derived from BaseException, not str
-
- Resolves: rhbz#612941
-
-2010-07-05 Ryan O'Hara <rohara at redhat.com>
-
- Fix open flags so that logfile won't be truncated each time we open it.
- rhbz#608887
-
-2010-07-05 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_apc: fence_apc fails for some port numbers
- Problem is that string we parse looks like:
- 'Press Enter to continue ...\r 23-bar1 ON' and we did not expect text
- message before our line.
-
- Resolves: #606297
-
- fence_wti: support non-default TCP ports
- WTI do not use standard process to login so it needs special patch
- (based on the code in library)
-
- Resolves: rhbz#593726
-
- fence_wti: Add direct support for WTI VMR
- Add a new command prompt for WTI VMR devices
-
- Resolves: rhbz#578617
-
-2010-04-20 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- update fence_ack_manual man page
-
- lpar: fix spacing
-
- ipmilan: build man page at build time
-
- fence: fix make distcheck build out of tree
-
- fix fail to build from previous merges
-
- fence_scsi: import man page from STABLE3
-
-2010-04-20 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Creating manual pages fails when default value is a list
- Problem was concatenating string + list in python. Lists can't be
- entered using command line or stdin.
-
- Resolves: rhbz#583019
-
- fence_ilo_mp: Proper error message instead of python traceback
- Fencing agent for iLO MP did not have proper exception handling.
-
- Resolves: rhbz#583017
-
- fence_egenera: log file path should be absolute not relative
-
- fencing: Add vendor URL to man pages
-
-2010-04-20 Ryan O'Hara <rohara at redhat.com>
-
- New fence_scsi with config options.
-
-2010-04-20 Lon Hohberger <lhh at redhat.com>
-
- config: Fix fencing attribute requirements
- There is no easy way to satisfy a "required" attribute
- being present in more than one location. Specifically, with
- fencing devices, a required run-time parameter may appear
- in one of three possible locations in cluster.conf.
-
- Because this is difficult to detect, all fencing attributes
- are now optional from the schema's perspective.
-
- fence-agents: Tweak translator output
-
- fence: add fence agent -> rng generator
-
-2010-04-20 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Invalid initialization of default value for retry-on option
- Problem introduced by:
-
- commit 45ed9fd03c0718252f2ae418ffa7161198aa4688
- Author: Marek 'marx' Grac <mgrac at redhat.com>
- Date: Fri Nov 6 14:13:02 2009 +0100
-
- fencing: New option --retry-on <N>
-
- fencing: New option --retry-on <N>
- New firmware (v1.70+) for ilo2 is much slower then before. Option --retry-on=X (on stdin retry_on=X)
- is introduced and it attempts to send power on command to machine and wait for results X times.
- Default for fence agents is 1 so they won't be affected; fence_ilo default value is 3.
-
- Resolves: #bz507514 (timeout options are needed before applying this patch separately)
-
-2010-04-20 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- fence_sandbox2: add short and long description for man page generation
-
-2010-04-20 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: long description added
-
- fencing: short description of fence agent added
-
- fencing: fix fence_a, fence_l, ...
- Removing last 3 characters is okay for testing (fence_lpar.py) but not
- for production (fence_lpar -> fence_l)
-
- fencing: Typo meta-data -> metadata
-
- fence_ipmilan: metadata should be in expected format
- Metadata format fixed, added information getopt/default/... We will have to
- add short/long description but we don't have it anywhere yet.
-
-2010-04-20 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- fence_ipmilan: allow metadata invocation without other parameters
-
- fence_ilo: do not import unrequired modules
-
- fence agents automatic man page generation
- first import from STABLE3 branch
-
- fence-agents: fix build with locales other than C
- Resolves rhbz#583948
-
-2010-04-02 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_wti: Remove ipport option
- WTI devices do not support change of default TCP/IP ports so this option
- is useless. It is not working correctly as there is a separate login
- process for WTI devices.
-
-2010-03-16 Jan Friesse <jfriesse at redhat.com>
-
- fencing: SNMP fence agents don't fail
- Net-SNMP command-line utilities have interesting "feature"
- causing too short pass-phrase (shorter then 8 characters)
- write error but sadly, not return error code. In such case,
- fencing can be considered successful even if it is not.
-
- Patch fixes this by:
- - Pass v3 options only for v3 mode
- - Search for Error string in snmpcmd output
-
-2010-01-12 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- misc: update copyright year across the board
-
- fence agents: drop build date
- generated at build time
-
-2010-01-06 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- fence lpar: fix quoting
-
-2009-12-22 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: fence_rsa fails to login
- New version/firmware have new login screen which was not supported. Also it
- is slower, so default timeout for login-timeout is set to 10 seconds.
-
- fencing: Add support for identity files
- Some fence agents contains support for ssh but did not support identity
- files.
-
-2009-12-21 Lon Hohberger <lhh at redhat.com>
-
- fence-agents: Add missing state handling to fence_virsh
- Resolves: rhbz#544664
-
-2009-12-20 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Version information not shown
- Option '-V' (get version info) is not working because attributes where
- not properly named, so they result in empty strings.
-
- fencing: Change default timeout values for LPAR and IPMI
-
-2009-12-08 Ryan O'Hara <rohara at redhat.com>
-
- New fence_scsi with config options.
-
- Remove fence_scsi_test.
-
-2009-12-07 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence: RSB fence agents changed interface a bit
- RSB changed so it don't print 'CLOSING CONNECTION' and 'Power status:' was
- changed to 'Power status :'
-
- Resolves: bz#545054
-
-2009-12-04 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- fence_xvm(d): obsolted by fence-virt
-
-2009-11-25 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: relax autotools requirement
-
-2009-11-11 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Unable to power on machine after applying patch
- Problem introduced by:
-
- commit 45ed9fd03c0718252f2ae418ffa7161198aa4688
- Author: Marek 'marx' Grac <mgrac at redhat.com>
- Date: Fri Nov 6 14:13:02 2009 +0100
-
- fencing: New option --retry-on <N>
-
- fencing: Invalid initialization of default value for retry-on option
- Problem introduced by:
-
- commit 45ed9fd03c0718252f2ae418ffa7161198aa4688
- Author: Marek 'marx' Grac <mgrac at redhat.com>
- Date: Fri Nov 6 14:13:02 2009 +0100
-
- fencing: New option --retry-on <N>
-
-2009-11-10 Jan Friesse <jfriesse at redhat.com>
-
- fence: Fix fence_ipmilan read from unitialized memory
- Newly introduced option -M added one read from unitialized
- memory. This patch initialize memory to 0.
-
-2009-11-09 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence: Broken device detection for DRAC3 ERA/O
- Resolves: bz#489809
-
-2009-11-06 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: fence_bladecenter needs longer timeout
- Fence bladecenter needs longer power_wait 5 -> 10 seconds. Found during
- tests for RHEV-H
-
- Resolves: #bz526806
-
- fencing: New option --retry-on <N>
- New firmware (v1.70+) for ilo2 is much slower then before. Option --retry-on=X (on stdin retry_on=X)
- is introduced and it attempts to send power on command to machine and wait for results X times. Default for
- fence agents is 1 so they won't be affected; fence_ilo default value is 3.
-
- Resolves: #bz507514 (timeout options are needed before applying this patch separately)
-
-2009-10-29 Jan Friesse <jfriesse at redhat.com>
-
- Fence agents: Fix traceback when using any SNMP agent
- Main problem was hidden in forgotten "self" in
- fencing_snmp caused by commit:
-
- Author: Marek 'marx' Grac <mgrac at redhat.com>
- Date: Fri Oct 9 13:36:25 2009 +0200
- fencing: Timeout options added
-
- RHBZ#531724
-
-2009-10-19 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_sanbox2: Update build system
- Change from perl to python code needs change in Makefile.
-
- fencing: Correct exit codes for status operation
- According to standard operation status should return 0 (if ON) and 2 (if OFF).
- In all other cases if operation was succesfull then agent return 0.
-
- fence_rackswich: Accept unknown options without value
-
-2009-10-16 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Accept unknown options from standard input
- libefence added new option 'nodename' to every query, as most of the agents
- does not need such feature, we will ignore it. Unknown options from STDIN where
- handled differently before.
-
- New policy: fence agent should accept unknown args from STDIN. It can print on STDERR
- warning that it is ignoring that option.
-
-2009-10-14 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: New option '--missing-as-off' to return OFF is machine is missing
- If a blade is not present (i.e. removed for maintenance), the fence_bladecenter
- cannot check the state as it is reported empty.
-
- Resolves: bz#248006
-
- fence_ilo_mp: Add support for iLO2 with firmware v1.70
- Existing fence agent for iLO is no longer working correctly with new
- firmware 1.70+. Fortunately only minor adjustement was needed for ilo_mp
- to support also these devices.
-
-2009-10-13 Lon Hohberger <lhh at redhat.com>
-
- fence_xvmd: Allow interface assignment in cluster.conf
-
-2009-10-09 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Timeout options added
- Fencing agents based on fencing library have new set of timeout options.
- They are highly advanced so read documentation at
- http://sources.redhat.com/cluster/wiki/FenceTiming
-
- fence_sanbox2: Typo correction
-
- fence_sanbox2: Support operation 'list' for sanbox2
-
-2009-10-09 Jan Friesse <jfriesse at redhat.com>
-
- fencing_snmp: Fix exception caused by older commit
- This patch fixes exception in FA caused by change in fencing library:
-
- "fence agents: Option for setting port for telnet/ssh/ssl used
- by fence agent"
-
- RHBZ#527844
-
-2009-10-07 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_sanbox2: Re-implemenatition based on fencing library
- Resolves: bz#512947
-
-2009-10-07 Jan Friesse <jfriesse at redhat.com>
-
- fence_vmware: VIX API fix, ESX 4.0.0, helper more verbose
- - patch fixes exception in case user use VIX API
- - fence agent is now tested against ESX 4.0.0 and vCenter 4.0.0
- - fence_vmware_helper is more verbose in case some Perl module
- is missing (prints Perl error message)
-
-2009-10-02 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_scsi: man page contains invalid "-s" option
- Resolves: bz#515731
-
-2009-09-23 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_drac: Split fence agents drac/drac5 to separate directories
- Fence agents fence_drac/fence_drac5 were only one that resides in same
- directory. This patch creates new directory drac5/ were fence_drac5 was
- moved.
-
- fence_apc: fence_apc fails to fence node - Unable to obtain plug status
- New firmware allows new ouput:
-
- 1- Outlet 1:1 shell-01 ON Graceful Shutdown
-
- Resolves: bz#517860
-
-2009-08-27 Jan Friesse <jfriesse at redhat.com>
-
- fence: Support for power cycle in fence ipmi
- Default behaviour (off/get status/on) doesn't work on
- some IPMI implementations, because chasiss power off will
- turn off IPMI management card. Next power on cannot be
- done automatically. But it looks, like chassis power cycle
- is supported and do what we need -> reset machine.
-
- Patch add support for -M (method) option, which can have
- values:
- - onoff - default old behaviour
- - cycle - use new power cycle
-
- rhbz#482913
-
-2009-08-21 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Fencing fails when using implicit connection method other then telnet
- Bug was introduced with ipport option where port number was set before
- -x/-z was set. It did not affect those who use -x / -z.
-
-2009-07-30 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: fix fence_ilo_mp and add files to EXTRA_DIST
-
- fence agents: drop unrequired and wrong copyright statement
-
-2009-07-30 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: #508722 - Fence agent for HP iLO 2 MP
- New fence agent for HP iLO2 MP used in Blade Servers. It uses SMASH
- interface over telnet/ssh. fence_ilo uses RIBCL over SSL what is not
- supported on these machines.
-
-2009-07-28 Ryan O'Hara <rohara at redhat.com>
-
- BZ 512998 - Add comment about fence_scsi limitations.
-
-2009-07-23 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: fence agents fails with pexpect exception
- bz#501586 - 2nd patch
-
-2009-07-21 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing.py: Adds device option login_eol_lf
- This option is used for login method using telnet. By default most of the fence agents
- work with username\r\n but on some devices (e.g. HP iLO MP, sanbox2) it is interpreted
- as there is empty password.
-
-2009-07-20 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: #512343 - Fencing fails if telnet/ssh is not available
-
-2009-07-13 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_lpar: option -x for ssh was required
- Option -x is no longer required for LPAR. It is turned on automatically. This
- should not change behaviour of fence agent as -x was required before and no
- other access to LPAR/HMC is supported.
-
- fencing: Metadata suitable for automatic man pages generation
- Information about individual options are extended so they are more suitable
- for creating better metadata. We can use them to produce fresh manual pages.
- Metadata have to be formatted using XSLT processor (e.h. xsltproc) using
- template ra2man.xsl in lib/
-
- Example:
- fence_lpar -o metadata | xsltproc ra2man.xsl - | nroff -mandoc > z
- man ./z
-
- @note:
- If the default value is array then only string 'list of values' is rendered.
- As currently it is not possible to enter arrays from getopt/stdin.
-
-2009-06-30 Steven Dake <sdake at redhat.com>
-
- fence: Fix missing case in switch statement
- Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=500567
-
-2009-06-26 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing: Create function that prints documentation
- This have to be moved because we need access also to agent specific values as they
- will be presented as defaults in metadata.
-
- fence_wti: Fence agent for WTI ends with traceback when option is missing
- Login name/password are NOT required for WTI, so they have to be checked after
- login/password is encountered. Please enter the commit message for your changes.
-
- bz#508262
-
-2009-06-24 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- fence manual: remove hardcoded use of /var
-
-2009-06-23 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: convert to autoconf/automake/libtool
- requires:
- - autoconf 2.63b
- - automake 1.11
- - libtool 2.2.7a
- - pkgconfig 0.23
- - m4 1.4.13
-
- build: enable fence_xvm by default
- Historically building fence_xvm was complex and required xen libs
- that are architecture specific.
-
- fence_xvm has long dropped libxen in favour of libvirt that's been
- ported and build on all architecture and it's part of all distribution.
-
- Drop the special casing in the build system.
-
-2009-06-19 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence agents: Option for setting port for telnet/ssh/ssl used by fence agent
- On some fencing devices there is possibility to change default port where
- ssh/ssl/telnet/... is listening. There is new option 'ipport' (getopt: -u)
- which can be used for this purpose. It is probable that it will make option
- 'udpport' (also -u; currently used in SNMP based agents) obsoleted in one
- of the next versions.
-
- Resolves Red Hat Bugzilla: #506928
-
-2009-06-12 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_lpar: #504705 - fence_lpar: lssyscfg command on HMC can take longer than SHELL_TIMEOUT
- The lssyscfg command issued to the HMC by fence_lpar to get the status of the
- LPAR can take longer than SHELL_TIMEOUT, 3 seconds. This results in fencing
- failures which could be avoided if fence_lpar waited longer for the HMC to
- respond to the command.
-
-2009-06-08 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_agents: #501586 - fence agents fails with pexpect exception
- try / except added to every fence agent where we try to exit using 'logout' functions.
- This happends after fencing was succesfull so it should not be a problem if it fails.
-
-2009-05-29 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_lpar: #502674 - fence_lpar can't log in to IVM systems
- Added new command prompt used on IVM systems
-
-2009-05-21 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_apc: #501586 - fence_apc fails with pexpect exception
-
-2009-05-13 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_drac5: #496724 - support for modulename in drac5 agent
-
-2009-05-11 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_scsi_test: #499871 - fence_scsi_test.pl does not check for sg_persist in the path
-
-2009-05-05 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- fence agents: fix warnings spotted by paranoia cflags
-
-2009-05-04 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- fence: drop obsoleted fence_manual man page
- BZ #456505
-
- build: fix doc Makefile to stub targets
-
- misc: drop obsoleted bits
-
- build: fix install target for SBINSYMT.
-
-2009-05-04 Marek 'marx' Grac <mgrac at redhat.com>
-
- fencing.py: #498329 - fence_drac5 help output shows incorrect usage
-
-2009-04-24 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_drac5: #462390 - Support Dell M600 Blade Chassis
- Agent for drac5 was extended to support M600. Detection of model is done automatically.
-
-2009-04-22 Jan Friesse <jfriesse at redhat.com>
-
- fence: Make SNMP v3 default for fence_intelmodular
- Since Intel Modular firmware update version 2.7, SNMP v2 write
- support is removed and replaced by SNMP v3 write support (big
- thanks to Matthew Kent for point to this).
-
- This patch makes SNMP v3 default and changes man page to reflect
- that.
-
- fence: Change force_ipvX to inetX_only
- Patch changes long option and XML option in cluster.conf from
- force_ipvX to inetX_only. It's because force something doesn't
- sound very nice. Short option -4/-6 still works.
-
- Idea of inetX_only is taken from wget, so users shouldn't be
- confused.
-
-2009-04-09 Lon Hohberger <lhh at redhat.com>
-
- fence: Add -U option to fence_xvmd.8
-
-2009-04-03 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_rsa: fix problem with ssh on some machines
- We need to ignore configuration file.
-
-2009-04-01 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: fix nss_wrapper Makefile
- Cleanup unrequired bits and respect search orders for includes and libraries
-
-2009-04-01 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_rsa: New fence agent for rsa with ssh support
- Fence agent is based on fencing library.
-
-2009-03-31 Lon Hohberger <lhh at redhat.com>
-
- fence_xvmd: Support FENCE_XVMD_DEBUG env. variable
-
- fence: Fix fence_xvmd log message
- Missing trailing newline.
-
- fence: Make fence_xvmd bind correctly
- If no interface is selected when using ipv4,
- go back to binding to 'any' address.
-
-2009-03-27 Lon Hohberger <lhh at redhat.com>
-
- fence_xvmd: Make -L imply -X.
- Obvious change: local only should imply no-cluster
- mode.
-
-2009-03-26 Jan Friesse <jfriesse at redhat.com>
-
- fence: Add support for IPv4/IPv6 forcing
- Support is added for agents written in Python, which
- uses standard fencing library and connecting
- by SNMP/nss_wrapper or SSH.
-
- Sadly telnet distributed with Fedora/RHEL doesn't
- has support for forcing IPv4/IPv6 connection, so
- it's impossible to implement this feature for agents
- using it.
-
- fence_nss_wrapper: Fix minor polling bug and force wrapper to build
- We need build wrapper in any case, because it's ilo
- dependency.
-
- Polling had little problem, which DIDN'T affect ilo fence
- agent.
-
-2009-03-25 Jan Friesse <jfriesse at redhat.com>
-
- fence_agents: Replaced telnet_ssl by fence_nss_wrapper
- Fence_nss_wrapper is drop-on replacement of telnet_ssl.
- This is hobbit like tool with support for NSS (SSL)
- connection.
-
- In contrast of old tool, this has many advantages:
- - Support for IPv6 (user can force IPv4)
- - Use polling instead of active waiting (non-blocking
- socket + sleep)
- - It's based on NSS (future of Fedora SSL)
- - Support for service names (not used in agents)
-
-2009-03-24 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build/init: install/create common dirs
- a bunch of directories need to be created either at install time
- or by init scripts for the stack to operate properly.
-
- Make sure that the basic is all there from upstream.
-
-2009-03-23 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_apc: #491640 - APC Fence Agent does not work with non-admin account
- APC Fence agent does not work with non-admin account with firmware v3.5.x
-
-2009-03-23 Jan Friesse <jfriesse at redhat.com>
-
- fence: Fix configure script (hardcoded fenceagentslibdir path)
- This fix change hardcoded default value of variable
- fenceagentslibdir from /usr/share/fence to
- {prefix}/share/fence.
-
-2009-03-22 Jan Friesse <jfriesse at redhat.com>
-
- fence_snmp_*: Add missed sys.path.apend to SNMP agents
- If fencing.py and fencing_snmp.py is not installed in
- Python's search path, Python based fence agent will fall.
- This was (sadly) the case of SNMP based agents.
-
- This patch add sys.path.append to start of file, so
- everything should work now.
-
-2009-03-20 Lon Hohberger <lhh at redhat.com>
-
- fence: Fix fence_xvm[d] man pages
-
-2009-03-16 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_agents: #487501 - Exceptions in fencing agents
- Fixing previous patch
-
-2009-03-16 Jan Friesse <jfriesse at redhat.com>
-
- fence_ipmilan: Fix metadata generation
- This patch changes unique value in metadata from 0 to 1.
-
-2009-03-13 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_agents: #487501 - Exceptions in fencing agents
- Several of new fencing agent does not work when bad options are entered (bad
- password, non-existent outlet number, ...). This is not a problem. Unfortunately
- python exceptions are thrown and we don't care about catching
- them. Such output is very usefull for debugging (as people tends to send it)
- but it will be better if the user will see that the error is in the input data.
-
- Only bigger change is in APC. In other cases only catching exception was added.
-
-2009-03-13 Jan Friesse <jfriesse at redhat.com>
-
- fence_ipmilan: Added list, monitor and metadata operations
- List operation doesn't make big sense, but it's here.
- Monitor is basically only status operation.
- Metadata prints standard XML (same as fence_xvm) with
- agents metadata.
-
-2009-03-12 Lon Hohberger <lhh at redhat.com>
-
- fence: Make fence agent metadata valid XML
- This is needed by XSLT programs to transform the metadata
- to other formats (i.e. man pages, RelaxNG blobs, etc.)
-
-2009-03-12 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: drop mibdir as it's now unrequired
- fence_apc_snmp has been rewritten and there is no more need
- to ship mib files.
-
-2009-03-11 Jan Friesse <jfriesse at redhat.com>
-
- fence_apc_snmp: Rewrite of agent under Python unified library
- Main functionality should be kept and has some new
- features, like list, metadata, and specially support
- for SNMP v3 with all authentification/privacy methods.
-
- fence_ibmblade: Rewrite of agent under Python unified library
- Main functionality should be kept and has some new
- features, like list, metadata, ...
-
- fence_intelmodular: Rewrite of agent under Python unified library
- Main functionality should be kept (thanks Matthew for
- testing), and has some new features, like list, metadata, ...
-
-2009-03-06 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_egenera: Allow fence_egenera to specify ssh login name
- - bz #488958 - this patch should be shipped in 5.3 (closed errata)
- but was not included
- - warning: -l is not used for login name but for lpan; so -u is used
-
-2009-03-05 David Teigland <teigland at redhat.com>
-
- fence_scsi: remove scsi_reserve and scsi_reserve_notify
- The fence_scsi agent itself does this stuff now with unfencing.
-
-2009-03-05 Ryan O'Hara <rohara at redhat.com>
-
- Add support for unfence operation.
-
-2009-03-05 Jan Friesse <jfriesse at redhat.com>
-
- fence_rps10: Removed RPS-10 agent
- WTI RPS-10 was serial port communication based PDU.
- It was able serve for only 2 nodes cluster and
- WTI don't longer sell it.
-
- So rest in piece RPS-10.
-
-2009-03-04 Jan Friesse <jfriesse at redhat.com>
-
- fence_ifmib: Brand new implementation of this agent
- Current version of agent is using unified Python library.
- Main new features:
- - Support for list/monitor action
- - Support for metadata
- - Support for SNMP v1/2c/3 (old has only 2c)
- - Port can be entered not only as ifIndex, but port name
- as well (ex. fc1/1).
-
- To update, user needs change ifindex parameter to much
- common port parameter.
-
- fence_mcdata: Fix unexpected port state Current versions of fence_mcdata wait for "Blocked: (true|false)", but newer models (like Sphereon 4500) return "Blocked: (Blocked|Unblocked)" on the port show command.
- The attached patch adds the necessary bits to make the
- script recognize that it has indeed done the request action.
-
- This patch long lives in RHEL 4 branch, but never
- arrived to RHEL5/master/STABLE2/STABLE3.
-
- RHBZ#470983
-
-2009-03-03 Jan Friesse <jfriesse at redhat.com>
-
- fence_cisco_mds: Fix port handling
- Old code calls cisco_port2oid function in case, when
- no port was entered (list/monitor action). Another
- bug was bad call of fail_usage.
-
- fence_*.py: Fix no fencing.py based scripts to force stdout close
- This feature is advise from Jim Meyering. On the beginning
- of script, we register end callback, which close stdout and
- show error, if this wasn't successful.
-
-2009-03-02 Jan Friesse <jfriesse at redhat.com>
-
- fence_cisco: Added fence agent for Cisco MDS 9124/9134
- Agent uses SNMP, so Python fencing_snmp library is included
- in this patch too. This library uses fencing.py library,
- and add option to write small agents using SNMP. Library
- contains class FencingSnmp, designed to be instanciate and
- passed in agent's call of fence_action. After that, developer
- has in conn variable this object, and can call functions
- set/get/walk.
-
-2009-03-01 Lon Hohberger <lhh at redhat.com>
-
- fence-agents: Revert change to 'required' for 'action' operation
-
- fence-agents: Just print; no need for a buffer in fence_xvm
-
- fence-agents: Make fence_xvm's metadata not crash XML parsers
-
-2009-02-27 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- ifmib: fix copyright attribution
-
- copyright: allow non-redhat-copyright in fence agents
- The build system was simply stupid. Fix that to allow
- proper copyright attribution.
-
-2009-02-27 Jan Friesse <jfriesse at redhat.com>
-
- fence_*.py: Fix Python (fencing.py based) scripts to force stdout close
- This feature is advise from Jim Meyering. On the beginning
- of script, we register end callback, which close stdout and
- show error, if this wasn't successful.
-
- fence_*.pl: Fix Perl scripts to force stdout close
- This feature is advise from Jim Meyering. On the beginning
- of script, we register end callback, which close stdout and
- show error, if this wasn't successful.
-
-2009-02-25 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: stricter install invokation
- make install fails in shell loops to detect errors.
-
-2009-02-23 Jan Friesse <jfriesse at redhat.com>
-
- fence_vmware: Changed long option for datacenter Long options are mostly in format very-long-word. vmware_datacenter uses same format for stdin and for long option. Now long option is vmware-datacenter.
-
-2009-02-20 Lon Hohberger <lhh at redhat.com>
-
- fence: Make fence_xvm -o metadata work
-
-2009-02-20 Jan Friesse <jfriesse at redhat.com>
-
- fence: add missing man pages
- Ported from STABLE3.
-
- fence_vmware: Fix VMware helper script to force stdout close
- This feature is advise from Jim Meyering. On the beginning
- of script, we register end callback, which close stdout and
- show error, if this wasn't successful.
-
-2009-02-19 Jan Friesse <jfriesse at redhat.com>
-
- fence_vmware: Fix process of special characters (like ')
- This is only one agent using pexpect.run function (powerful
- replacement for popen function). It is able to parse strings
- in very shell way (so string closed in ' or " is processed
- with spaces). Problem is, if user has password/user name/...
- with this characters.
-
- Patch fixing bug by adding quote_for_run function, which just
- replace every ' by '\''. So to pexpect.run is passed right
- string.
-
-2009-02-18 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_lpar: #485065 Typo
- Change 4 to "4" as python needs
-
-2009-02-16 Marek 'marx' Grac <mgrac at redhat.com>
-
- bladecenter & wti: Fix operation 'list'
- Operation 'list' requires 'separator' on device's option list. Otherwise it
- would not set 'separator' and 'list' will fail with python backtrack
-
- fence_lpar: Fix 'list' operation for HMC v3
-
- fence_lpar: #485065 Add support for HMC v3
- New options for LPAR agent: (-H; hmc-version) and (-c; command-prompt). HMC version
- have to be set because v3 and v4 are not compatibile. It is possible to auto-detect
- version (lshmc -V) but this is quite slow to do it in each fencing operation. Default
- value is '4' because we don't want to change previous behaviour. It does not mean
- that it should not work with HMC v5, v6 - we just need to mark them.
-
- Command prompt option was set to default value but missing in device's options. Older
- LPAR has different prompt so it was added to default one. If you wish to add your own
- prompt that remember that $ has to be written as '\$'.
-
-2009-02-11 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence_lpar: #481566 - properly report status on systems in Open Firmware
-
- fence_wti: #481664 - fence_wti is unable to connect to (password-less) fencing device
- Login mechanism was completely rewritten so now we support no-loginname, no-password and
- possibly any other configuration.
-
-2009-02-09 Jan Friesse <jfriesse at redhat.com>
-
- fence_ipmi: Increased number of retries to action This patch is originally provided by Kris Lindgren. It increases number of retries to 7 and make time between operation and status shorter. It makes more calls, if IPMI seems not to react.
-
-2009-02-06 Jan Friesse <jfriesse at redhat.com>
-
- fence_ipmilan: Better name for unused variable in expect.c Foo variable name is not very descriptive.
-
-2009-02-05 Jan Friesse <jfriesse at redhat.com>
-
- fence_ipmilan: Cygwin doesn't like NULL in times function
- Times function was used with NULL parameter. On Linux everything
- worked, but Cygwin doesn't like this (returned value was -1). This
- patch add foo_tms, which is argument for times. This shouldn't hurt
- anything, but makes Cygwin happy.
-
-2009-01-22 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- misc: update copyright file
-
-2009-01-21 Marek 'marx' Grac <mgrac at redhat.com>
-
- intelmodular: rename fence agent
- There was a conflict between real name and its usage in Makefile
-
- intelmodular: Add Intel Modular Server fencing agent based on ibmblade fence
- Support for new fencing device.
- Posted by Matthew Kent.
-
- fencing.py: long options correction
- Minor problem with long options, posted by Matthew Kent
-
-2009-01-21 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: scan for fence agents only when required to do so
-
-2009-01-19 Jan Friesse <jfriesse at redhat.com>
-
- fence: vmware helper better handling power on/off errors
- Because of nature of VMware cluster, there may be situation,
- when VMware cluster itself start fenced virtual machine before
- our agent. Without this patch, this leads to error. Now, only
- warning is produced, but return code of helper is still 0.
-
-2009-01-15 Jan Friesse <jfriesse at redhat.com>
-
- fence_vmware: Improve speed for status operation => whole fencing
- Before this patch, agent used for implementation of get status
- list operation. This is nice in code, but because list operation
- on ESX with many (200+) registered VMs takes very long (21+ sec),
- whole fencing (3x21+off/on) can take even longer.
-
- Some minor remove of residuum from old vmware_vi, in helper is
- removed too.
-
-2009-01-14 Jan Friesse <jfriesse at redhat.com>
-
- fence: Fix bad name for vmware helper
- This patch remove residuum of old vmware_vi, where
- helper was named fence_vmware_vi_helper. New correct
- name is fence_vmware_helper.
-
-2009-01-13 Jan Friesse <jfriesse at redhat.com>
-
- fence: Added change needed for previous patch.
- This patch deletes old VMware device options and defines
- new.
-
- fence: Fusion of vmware_vi and vmware_vmrun into one agent
- It's really sad to have 3 different agents for one type of
- device. This patch deletes old ssh based vmware agent, and
- replace it with fusion of vmware_vi and vmware_vmrun.
-
- This solution is cluster aware and able to fence VMware
- ESX/ESXi/VC/Server 1/Server 2 (see man page). Only one
- disadvantage against old agent is, that user must install
- VI Perl or VIX API to every node which do fencing. I hope
- it's only small price for all benefits user will get.
-
-2009-01-12 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- misc: Update copyright for 2009
- also purge non-relevant part of the COPYRIGHT file.
-
-2009-01-09 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- fence_scsi: improve init script
- based on Marian Marinov submission for gfs2 init script,
- simplify the init script distro overrides to make the script
- easily readable again and also easier to write.
-
- Set also a secure PATH.
-
-2009-01-08 Jan Friesse <jfriesse at redhat.com>
-
- fence: Fix virsh agent and ssh_options in case of ssh private key
- Virsh agent should use --noprofile and --norc when invoking bash, because
- in other case, all PS1 setting doesn't make any sense.
-
- fencing.py.py library have two branches for invoking ssh command. One
- case is without ssh private key and other is with it. Case without
- private key process ssh_options agent key, but other branch not.
- This patch fixes that and now both branches behave correctly.
-
-2009-01-07 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- split tree into separate projects
-
- new fence-agents master test commit
-
-2009-01-05 Christine Caulfield <ccaulfie at redhat.com>
-
- cman: Make API calls work on an inquorate system
-
- cman: fix error checking in testcmanquorum1
-
- cman: more corosync changes
-
- cman: Make new services compile with latest corosync
-
-2009-01-05 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- config: time to say goodbye to ccsd
- remove all legacy code that won't be released from master anymore
-
- qdisk: fix mkqdisk output
- we killed output to std* by default in logging. we can't use log*print*
- anylonger for this operation. Switch back to printf.
-
-2009-01-02 Christine Caulfield <ccaulfie at redhat.com>
-
- cman: let 'cman-tool leave -w' wait even if shutdown has already started
-
- cman: Return an error if 'cman_tool leave' is attempted during shutdown
- There were some occasions when 'cman_tool leave' simply returned success
- even though shutdown had already started. This fixes those.
-
- cman: make 'cman_tool leave -w' wait until cman has shut down
- Once we get a sucessful return from cman_try_shutdown there still
- might be a delay before cman actually shuts down because
- the LEAVE messages need to be sent around the ring.
-
- cman_tool now waits until it can no-longer contact cman if -w is
- given on the command-line.
-
-2008-12-23 David Teigland <teigland at redhat.com>
-
- dlm_tool: change to new debugfs scan
- The rsb addr was added to the output.
-
-2008-12-22 Bob Peterson <rpeterso at redhat.com>
-
- gfs: improve gfs_fsck rindex repair code
- bz 442271 - GFS: gfs_fsck bugs found in rindex repair code
-
- This patch makes improvements and fixes some bugs in gfs_fsck's
- rindex repair code. Basically, if RGs are damaged, especially
- in the third section (i.e. RGs added by gfs_grow) it did not
- properly locate the RG boundaries. Also, if the rindex was
- completely zeroed out, it did not recover it in cases where
- the file system had been extended.
-
-2008-12-19 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: restore original behaviour when building groupd
- fix small regression introduced when merging pacemaker build patches
-
-2008-12-19 Christine Caulfield <ccaulfie at redhat.com>
-
- cman: fix cman_tool join return code
- Tha last checkin broke the cman_tool return code. The FORKED and SUCCESS
- messages could (and in a normal run often would) be returned as part
- of the same pipe read.
-
-2008-12-18 Christine Caulfield <ccaulfie at redhat.com>
-
- cman: drastically improve startup errors
- cman_tool join has a nasty habit of just exiting with
- "corosync failed to start" or some such unhelpful error message.
-
- This patch improves on these by trapping the corosync exit code and
- attempting to interpret it for the user.
-
-2008-12-17 David Teigland <teigland at redhat.com>
-
- dlm_tool: lockdebug using new debugfs file
- A new dlm patch adds a new debugfs file that shows more
- info about rsb/lvb/lkb structs. dlm_tool lockdebug <name>
- will use this new file, if available, and display the
- new info in a format similar to the original format.
-
-2008-12-17 Christine Caulfield <ccaulfie at redhat.com>
-
- cman: add cman3 services
- These services are corosync plugins and libraries that implement the 'old'
- cman functions in a more standard manner. The quorum plugin is a generic
- quorum provider that uses the CMAN (openVMS) algorithm to provide quorum and
- adds the hooks for a quorum device. With a compilation flag it can be made
- wire-protocol compatible with the 'old' cman plugin.
-
- The new cman service provides everything else that iold cman providef that's
- not related to quorum and is intended as a backwards-compatibility layer.
-
- The libcman part is not yet complete so I'm not going to replace the existing
- 'daemon' directory here just yet, also I don't think it's ready to be built as
- standard with the rest of the tree. This is more of a statement of intent
- than working code ;-)
-
- Signed-Off-By: Chrissie Caulfield <ccaulfie at redhat.com>
-
-2008-12-17 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- ccsd: port to logthread infrastructure
- Several changes across the whole tree to use logthread instead of logsys.
-
- libccsconfdb: do not allow logfile_priority to override debug.
- debug output is generally more important than logfile_priority.
-
- logthread: filter messages to stderr to respect logging priorities
-
- dlm_controld: stop linking against logsys
- Remove leftover linking bit from Makefile.
-
-2008-12-16 Bob Peterson <rpeterso at redhat.com>
-
- Make gfs2_freedi delete indirect blocks with height >= 2
- bz 474707 - GFS2: gfs2_convert not freeing blocks when removing file with height >=2
-
- Before this patch, the libgfs2 function gfs2_freedi would only
- free indirect blocks from an inode at height==1. If an inode
- grew to a height of 2 or more, some blocks would not be freed
- when they should have been. This patch allows it to free all
- indirect blocks at all heights. In the case of the bugzilla,
- the users would run gfs2_convert on a gfs file system and
- afterward, gfs2_fsck would find a number of blocks that should
- have been freed, but were not.
-
-2008-12-15 Bob Peterson <rpeterso at redhat.com>
-
- Remove splice_read file op for jdata files.
- bz 436811 - Some files with inherit_jdata flag will not allow reads from apache
-
- The splice_read op is supported for normal files but not
- journaled files. Rather than return a bad return code
- when invoked, this removes the splice_read op from the
- file ops for jdata files. That enables callers to find
- an alternative method of accessing the jdata file rather
- than failing the operation.
-
-2008-12-15 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: fix fence_scsi installation bits
-
- build: fix typo and get rgmanager to build again
-
-2008-12-15 Marek 'marx' Grac <mgrac at redhat.com>
-
- [FENCE] Support for 'metadata' option for fencing agents / default values
- Fencing library now understand new 'metadata' action which shows
- available commands (for use on stdin). Output should be compatibile
- with stonith agents. Currently it is just partial (parameters only).
- We will extend it according to what we really needs. It should be
- possible to use these metadata for building UI. Device options now
- contains 'short description' and earlier option 'order' was added so we
- can set the correct orded (it will be same as in --help).
-
- Default values are now stored in fencing library as they are used for
- metadata generating. Fence agent can set their default settings to all_opt.
-
- There is a bit of redundancy ('required') because we will check it later.
- But I was not able to describe requirements without using not-naive schema.
-
-2008-12-12 Lon Hohberger <lhh at redhat.com>
-
- rgmanager: Part 2 - flip logging function name
-
- rgmanager: Fix up logging, part 1
- * Let clulog report the parent resource-agent
- * Use ccs_read_logging API
- * Don't break old configs using rm/@log_level or log_facility
-
-2008-12-12 Bob Peterson <rpeterso at redhat.com>
-
- Grab hold of journal-turned-RG buffers so they're not freed.
- bz 471618
-
- This is addendum patch 3 for bug 471618. The problem is, we
- weren't making a claim on buffers that used to be for the journals
- under GFS, but now are RG space for GFS2. So the buffer may go away
- especially when running gfs2_convert on a file system that's full.
- When the buffers are released at the end, they may not really
- exist any more, which caused a segfault. Grabbing hold of the
- buffer ensures they won't go away, so freeing them will work as
- normal.
-
-2008-12-12 Lon Hohberger <lhh at redhat.com>
-
- fence_xvm: Use new logging config parameters
-
- logthread: Add missing prototype
-
- logthread: Make multiple init/exit calls work
- * This patch allows a user to call logt_init()/logt_exit()
- as much as is needed.
-
- * A new function, logt_reinit() is added for convenience.
- This function uses values previously supplied to the
- logt_init() function to reinitialize the log system. This
- can be done post-fork, for example. Note: you MUST call
- logt_init() and logt_exit() before logt_reinit() can be
- used.
-
-2008-12-12 Christine Caulfield <ccaulfie at redhat.com>
-
- cman: fix memory leak
- This is a very small memory leak but it could add up in some
- very long-lived processes that send a lot of messages.
-
-2008-12-12 David Teigland <teigland at redhat.com>
-
- dlm_controld/gfs_controld: read lockless resources from ckpts
- When we mount and read plock state from a checkpoint, we can't
- ignore zero-size checkpoint sections, because we need to add
- the resource along with its owner from the section id. What
- should be skipped are zero-length section id's.
-
- dlm_controld/gfs_controld: dump unused resources
- Unused/cached resources have owner state that's useful to
- see in the debug dump.
-
- dlm_controld/gfs_controld: fix plock rate limiting
- When the plock rate limiting code enabled locking after disabling
- it, it would be immediately disabled again. So, once plocks were
- disabled due to the rate limit, they would never be processed again.
-
-2008-12-11 Lon Hohberger <lhh at redhat.com>
-
- rgmanager: Fix license for follow-service.sl
-
-2008-12-11 Christine Caulfield <ccaulfie at redhat.com>
-
- cman: Make cman-preconfig reload <totem> too
- When reload is called we now create a new totem key for corosync. I have
- a patch for corosync that will allow dynamic configuration
- of totem parameters.
-
- cman: Make cman the quorum provider for corosync
- cman now plugs into the Quorum API for corosync and tells it
- (and any interested subsystems) whether the cluster has quorum.
-
-2008-12-10 Bob Peterson <rpeterso at redhat.com>
-
- mkfs.gfs2 hangs with many journals
- bz 471618
-
- This is the addendum 2 patch for bug #471618. There are
- two fixes: (1) switches the order back to normal (reverse)
- when freeing buffers. This ensures the oldest buffers are
- freed before the more recent, which is what we want and
- how it was originally. (2) The get_first_leaf and
- get_next_leaf code were making the faulty assumption that
- the buffers they're searching will be in memory. That may
- not be the case, especially if the buffer order is incorrect
- (as in fix (1)).
-
- Use jbsize for height computations on journaled files.
- bz 475488
-
- This is an addendum patch for bug #471618.
- Without this patch, users may encounter an infinite loop
- in mkfs.gfs2 if the number of journals causes the block
- size to be exceeded for the per_inode system directory.
- For a block size of 1K, specifying five journals on
- mkfs.gfs2 will cause this problem. For a default 4K block
- size, you would likely need 17 journals to get the hang.
-
-2008-12-10 David Teigland <teigland at redhat.com>
-
- dlm_controld/gfs_controld: plock config paths
- In cluster2 where plocks are done by gfs_controld, plock config options
- are under <gfs_controld/>. In cluster3 plocks are done by dlm_controld
- (and gfs_controld for back-compat), and plock config options are under
- <dlm/> (or <gfs_controld/>). Make both gfs_controld and dlm_controld
- look for plock config options under both <gfs_controld/> and <dlm/>.
-
-2008-12-10 Lon Hohberger <lhh at redhat.com>
-
- rgmanager: Include follow-service.sl in the install
-
-2008-12-10 Mark Grimme <grimme at atix.de>
-
- rgmanager: Add follows-service script
-
-2008-12-10 Mark Hlawatschek <hlawatschek at atix.de>
-
- rgmanager: Update SAPInstance / SAPDatabase to current versions
-
-2008-12-09 Lon Hohberger <lhh at redhat.com>
-
- rgmanager: make dtest compile
-
-2008-12-09 Jan Friesse <jfriesse at redhat.com>
-
- fence: VMware VI better handling of "strange" names
- Patch solving situations when user enter machine
- name with \t in name. Output of helper is now in DSV
- format.
-
- fence: VMware VI helper path fix
- Fix localtion of VMWare VI helper in main agent.
-
-2008-12-09 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: install fence_vmware_vi_helper in sbindir
-
- build: don't set exec bit on built files.
- this should be done by install.
-
- build: install fence_vmware_vi bits in the appropriate locations
- no changes to the fencebuild.mk script were required afterall.
-
-2008-12-09 Jan Friesse <jfriesse at redhat.com>
-
- fence: Added fence agent based on VMware VI API
- Why another VMware agent? Because VI API is only one
- really cluster aware (this means, it is only one ready
- to distinguish between datacenters, folders, ...).
-
-2008-12-09 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: fix fence agents man page Makefile
- remove duplicate entry and sort alphabetically.
-
-2008-12-08 Steven Whitehouse <swhiteho at redhat.com>
-
- cman: loading lock_dlm module should be optional in initscript
- Loading the lock_dlm module should be optional since it is optional
- in the kernel configuration, and in the future we intend to merge
- it into gfs2 itself.
-
-2008-12-08 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: fix dlm_controld makefile
- clean a bit the ifdef enable_pacemaker and fix an object entry.
-
- dlm_controld: include saAis from openais
- the duplicate version in corosync has been correctly revomed
- from the tree. Use the right one.
-
- libccs: build with latest corosync
- replace saAis.h with corotype.h and SA_AIS_OK with CS_OK.
-
-2008-12-05 David Teigland <teigland at redhat.com>
-
- gfs_controld: use new uevent strings
- Use the new uevent strings when available, otherwise fall back to
- using sysfs files.
-
- (Fixes and some minor munging to Steve's initial patch.)
-
-2008-12-04 David Teigland <teigland at redhat.com>
-
- dlm_controld/gfs_controld: plock dump display resource owner
- When plock ownership is enabled, it's important to see which
- node is the resource owner.
-
- gfs_controld/dlm_controld: fix lock syncing in ownership mode
- bz 474163
-
- Locks that are synced due to a resource being "un-owned"
- were having their read/write mode reversed on the nodes
- being synced to. This causes the plock state on the nodes
- to become out of sync, and operate wrongly.
-
-2008-12-03 Nicolas MONNET <nicolas.monnet at ingenico.com>
-
- rgmanager: Make postgres-8.sh use su instead of sudo
- Resolves part of #462910
-
-2008-12-03 Jan Friesse <jfriesse at redhat.com>
-
- fence: Set binary on telnet connections
- Resolves: #469066
-
-2008-12-02 Andrew Beekhof <abeekhof at suse.de>
-
- dlm_controld: pacemaker build
- stuff to build pacemaker version of dlm_controld
-
-2008-12-01 Bob Peterson <rpeterso at redhat.com>
-
- Fix many bugs with gfs2_convert.
- bz 471618 - GFS2: gfs2_convert is broken
-
- Functional changes to the code are as follows:
-
- 1. Original problem is fixed
-
- The original problem reported in the bug was caused because
- there is a fundamental shift of indirect block pointers between
- GFS1 and GFS2. For indirect blocks, GFS1 added 64 bytes of
- reserved space after the gfs meta header. GFS2 did not. That
- meant GFS1 could hold fewer pointers than GFS2 on the same block.
- The meant code had to be added to gfs2_convert to shuffle all
- the pointers around to their corresponding gfs2 locations.
- This was not a simple calculation because of sparse files. For
- example, with a 1K block size, if you do:
-
- dd if=/mnt/gfs/big of=/tmp/tocompare skip=496572346368 bs=1024 count=1
-
- the resulting metadata paths will look vastly different for the
- single block of data:
-
- height 0 1 2 3 4 5
- GFS1: 0x16 0x46 0x70 0x11 0x5e 0x4a
- GFS2: 0x10 0x21 0x78 0x05 0x14 0x78
-
- It is relatively easy to calculate the new metapath, but you
- can't just shuffle a pointer from its old location to its new
- location because the destination slot might be used for a
- different source slot. In the example above, we couldn't just
- move the pointer at height 3 from offset 0x11 to another block
- at offset 0x05 because there might already be a pointer at 0x05
- being used for something else.
-
- To complicate matters, we could not just assign new blocks and
- copy the data because we should be able to run on a "full" file
- system. So I had to write a complex new function called
- adjust_indirect_blocks along with several support functions.
- Someone else might be able to write a function to get the job
- done simpler, but at least this one works for both sparse and
- fully-packed metadata trees of several heights. It basically
- formulates in memory a metadata tree for all the data blocks,
- clears out all the metadata buffers, and lays them all back down
- again according to the new layout.
-
- 2. Improved error checking
-
- I added some badly needed error checking. That's because I was
- running into problems and wanted to eliminate the possibility
- that errors were occurring, but not being reported.
-
- 3. Improved progress reporting
-
- With a large number of resource groups, I saw long periods of
- time where the program would just sit for five minutes. I was
- afraid that the tool had hung, so I kept breaking in with gdb
- to check on the tool's progress. But if I'm that concerned
- about what it is doing when it's quiet, so too will be the
- customers who are anxiously trying to watch its progress. So I
- added periodic reports of progress through the RGs when converting
- inodes, and also an occasional "." when the RGs themselves are
- being analyzed and/or manipulated.
-
- Same goes for writing out the new gfs2 journals. The journals in
- gfs2 are quite different and we need to write them out entirely,
- all 128MB. That takes a fair amount of time going through the
- functions in buf.c. So I added a new message when each journal is
- written, so that the code doesn't appear stuck for a long period
- of time. This could still use some improvement, but it's better.
-
- I also modified the progress messages to make them more clear.
- For example, the message "Removing obsolete gfs1 structures"
- sounded to me like it could cause alarm or panic to a customer.
- So I rephased it to "Removing obsolete GFS1 file system
- structures".
-
- 4. Journal size was not being preserved
-
- In testing, I discovered that if the source file system had 32MB
- journals, the reformatted GFS2 file system had 128MB. I decided
- that's not good and decided to fix it. That is especially
- important if the file system is "full" to begin with because we
- can't add more blocks.
-
- 5. Fixed a segfault dealing with buffer management.
-
-2008-12-01 Christine Caulfield <ccaulfie at redhat.com>
-
- cman: make it compile with latest corosync
- corosync_tpg_handle was renamed to cs_tpg_handle for some reason.
-
- cman: Don't crash cman_tool nodes -a
- cman was returning a success status but no data if the node id
- passed to cman_get_node_addrs isn't currently in the cluster.
-
-2008-12-01 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- fence: install virsh fence agent man page
-
-2008-11-27 Steven Whitehouse <swhiteho at redhat.com>
-
- GFS: Send useful information with uevent messages
- In order to distinguish between two differing uevent messages
- and to avoid using the (racy) method of reading status from
- sysfs in future, this adds some status information to our
- uevent messages.
-
- This patch makes the same changes as the recent GFS2 patch.
-
-2008-11-26 Steven Whitehouse <swhiteho at redhat.com>
-
- GFS: Send sensible sysfs stuff
- The fix to make gfs1 send the info that we need to process
- the uevents which it generates.
-
-2008-11-25 David Teigland <teigland at redhat.com>
-
- group_tool: fix dump
- dumping the groupd debug buffer broke a while back due
- to not reading the correct buffer size
-
- gfs_controld: cannot connect to dlm_controld error
- Log an error message stating the reason for failing to start
- when it cannot connect to dlm_controld.
-
- fenced/dlm_controld/gfs_controld: improve groupd waiting
- When polling groupd for the group_mode during startup, wait longer
- (30 sec) if we're getting an EAGAIN response from groupd, meaning
- groupd is still working on it. Wait for only 5 sec if we can't
- connect to groupd at all, which probably means it's dead.
-
- groupd/fenced/dlm_controld/gfs_controld: get logfile from ccs
- ccs_read_logging bug has been fixed, let it set logfile again.
-
- libccs: fix ccs_read_config
- The helper function for reading a string needs to memset
- the destination buffer to zero even when there's no new
- string to copy to it. The result of this was most obvious
- by the random data it would copy into the logfile name.
-
-2008-11-25 Jan Friesse <jfriesse at redhat.com>
-
- fence: Add libvirt (virsh) based agent
- Following agent is very different in way how it works from
- our xvm fence agent. This agent connects via ssh to dom0
- and there run virsh, which performs required action.
-
- rhbz#472785
-
-2008-11-25 David Teigland <teigland at redhat.com>
-
- dlm_controld: recv error checking
- in process_uevent wasn't looking at errno.
-
-2008-11-25 Steven Whitehouse <swhiteho at redhat.com>
-
- gfs_controld: recv error checking
- in process_uevent wasn't looking at errno.
-
-2008-11-25 Jan Friesse <jfriesse at redhat.com>
-
- fence: fix IPMI over lan to support ciphersuite select
- If user select lanplus as IPMI protocol, ipmitool
- automatically select cipher type 3. This patch add
- possibility to select another type of cipher. New -C
- parameter is directly passed as -C parameter to ipmitool.
-
- rhbz#447497
-
-2008-11-24 David Teigland <teigland at redhat.com>
-
- groupd/fenced/dlm_controld/gfs_controld: log logging settings
- Put the logging settings in the debug log.
-
- ccs_read_logging() is corrupting the logfile parameter, so temporarily
- pass it a junk buffer.
-
- liblogthread: do nothing without init
- If logt_init() hasn't been called, or if logt_exit() has been called,
- do nothing with a logt_print() or a logt_conf().
-
- fenced: log protocol message type
- in debug logs instead of "unknown".
-
- fenced/dlm_controld/gfs_controld: error handling in groupd detection
- If daemon is supposed to get group mode from groupd and can't, then
- exit with a failure. Also, retry groupd detection whether we get
- -EAGAIN back from groupd, or fail to get a version from groupd.
-
- fenced/dlm_controld/gfs_controld: log exiting message only once
- The "cluster is down, exiting" message should only be logged once
- by a daemon.
-
- groupd: libcpg mode can skip some more libgroup stuff
- In confchg for the "groupd" cpg, we should exit earlier when in
- libcpg mode instead of going through pointless libgroup steps.
-
-2008-11-24 Lon Hohberger <lhh at redhat.com>
-
- qdisk: Allow old logging style until next release
-
- qdisk: More misc cleanups.
- * Nuke README; information that used to be there is in
- qdisk.5 anyway
- * Nuke crc32.c and put the wrapper function in disk.c since
- that is the only place it is used.
-
- qdiskd: Misc. cleanups, esp. loop cleanups in main.c
- Also use the ../../common/liblogthread API for now at
- least until logsys v2 stabilizes
-
-2008-11-24 Ryan O'Hara <rohara at redhat.com>
-
- Fix check_mount to correctly test if device is mounted/busy. Attempt to open the device with O_EXCL flag. If errno is EBUSY, the device is busy/mounted. (BZ 240584)
-
-2008-11-21 David Teigland <teigland at redhat.com>
-
- groupd/fenced/dlm_controld/gfs_controld: startup info messages
- When each daemon starts have it log an INFO message showing its name
- and version. Also, have groupd consistently log and INFO message showing
- the the compat mode that's been selected.
-
-2008-11-21 Lon Hohberger <lhh at redhat.com>
-
- liblogthread: work with stderr etc
- v*printf can't be used twice between va_start and va_end, so this patch
- does the following:
-
- * call vsnprintf once
- * fputs() to stderr
- * send to _logt_print for queueing if needed
-
-2008-11-21 Benjamin Marzinski <bmarzins at redhat.com>
-
- gfs-kernel: workaround for potential deadlock. Prefault user pages
- The bug uncovered in 461770 does not seem fixable without a massive
- change to how gfs works. There is a lock ordering mismatch between
- the process address space lock and the glocks. The only good way to
- avoid this in all cases is to not hold the glock for so long, which
- is what gfs2 does. This is impossible without completely changing
- how gfs does locking. Fortunately, this is only a problem when you
- have multiple processes sharing an address space, and are doing IO
- to a gfs file with a userspace buffer that's part of an mmapped gfs
- file. In this case, prefaulting the buffer's pages immediately
- before acquiring the glocks significantly shortens the window for
- this deadlock. Closing the window any more causes a large
- performance hit.
-
-2008-11-21 David Teigland <teigland at redhat.com>
-
- groupd/fenced/dlm_controld/gfs_controld: don't retry ccs_connect
- These daemons had an infinite loop around ccs_connect() in setup_ccs().
- This would cause the daemon to hang if corosync/cman crashed between
- setup_cman() and setup_ccs().
-
- ccs_connect shouldn't need to be retried anyway since cman and ccs are
- now unified and we do the necessary waiting for cman (and therefore ccs)
- to be ready in setup_cman().
-
-2008-11-21 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- cman: reenable stderr output in notifyd
-
- build: fix fence_node Makefile
- Add missing include dir and linking dir for liblogthread
-
-2008-11-20 David Teigland <teigland at redhat.com>
-
- fence_node: use logthread
- instead of logsys, and init the lib (and its thread) after calling
- into libfence which forks/execs (complicating running threads).
-
-2008-11-20 Andrew Beekhof <abeekhof at suse.de>
-
- dlm_controld: add pacemaker support
- Adds code for dlm_controld to run under pacemaker instead of cman.
- Does not include any of the build-related changes.
-
-2008-11-20 David Teigland <teigland at redhat.com>
-
- groupd/fenced/dlm_controld/gfs_controld: log macros
- Restore the original method of creating the debug string with a
- time stamp that's used for the memory debug buffer and stderr.
- The call to logt_print can just use the fmt/args directly; using
- the temp debug string is pointless.
-
-2008-11-20 Jan Friesse <jfriesse at redhat.com>
-
- fence: fix IPMI man page
- Documented timeout (-t) option.
-
-2008-11-20 David Teigland <teigland at redhat.com>
-
- liblogthread: add LOG_MODE_OUTPUT_STDERR
- When set, logt_print() always prints whatever it gets to stderr.
- It's really out of place in this library, please feel free to not
- use it and print to stderr yourself.
-
-2008-11-20 Jan Friesse <jfriesse at redhat.com>
-
- fence: fix IPMI spawn /bin/bash rather than /bin/sh
- It's not guaranteed, that /bin/sh will be symlink to
- shell, which is bash (or ksh) compliant, so it's better
- to use /bin/bash.
-
- fence: fix IPMI typo in help
- Help contained description of -i option with comment,
- that this option is deprecated and you should use -i. This
- is nice recursion, but there should be -a.
-
- This fixes BZ #210687
-
- fence: fix IPMI parameters containing special characters
- IPMI fence agent works by spawn a /bin/sh and ipmitool.
- If host name/password or any other command line argument
- included special shell characters (like $, ", ', ...) shell
- will try to substitute. This is not allowed behaviour and
- this patch fix it.
-
- Should fix BZ #447964
-
-2008-11-20 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- cman: make init script stop cmannotifyd
-
- build: allow system to use zlib in non standard paths
-
- build: fix missing ${logtlibdir} for linking
-
- cman: port notifyd to new logthread api
- temporary disable output to stderr.
-
-2008-11-19 David Teigland <teigland at redhat.com>
-
- gfs_controld: new logging stuff
- Changes per recent discussion on cluster-devel mailing list.
-
- dlm_controld: new logging stuff
- Changes per recent discussion on cluster-devel mailing list.
-
- liblogthread: improve thread handling
- Found cleaner way of starting and stopping thread; just
- a more correct way of handling things overall it appears.
-
- groupd: new logging stuff
- Changes per recent discussion on cluster-devel mailing list.
-
- fenced: new logging stuff
- Changes per recent discussion on cluster-devel mailing list.
-
- liblogthread: time stamp when entry is added
- instead of when the thread does the write.
-
- liblogthread: new options
- Changes per recent discussion on cluster-devel mailing list.
-
- libccs: update ccs_read_logging
- Changes per recent discussion on cluster-devel mailing list,
- largely related to debug and logfile_priority.
-
-2008-11-19 Lon Hohberger <lhh at redhat.com>
-
- qdisk: Remove antique #ifdefs for old kernel-mode CMAN
-
- qdisk: Update man page. Nuke crc32 code and use zlib.
- * Show which options may be reconfigured while qdiskd is
- running (either from a cman config update callback or using
- kill -HUP).
- * Shipping our own crc32 algorithm is a waste of code space.
-
- qdisk: Make online reconfig actually work
-
- rgmanager: make max_restarts work w/o restart_expire_time
-
- qdiskd: Process reconfiguration events from CMAN
-
- qdiskd: Always use O_NONBLOCK when writing to status_file
-
-2008-11-19 Jan Friesse <jfriesse at redhat.com>
-
- fence: IPMI over lan timeout adjusted and configurable
- This patch adjust timeout to default value 10s which
- should be enough for most today IPMI implementations.
- It also removes retries, because this job is done
- by fenced.
-
- Because some devices still need longer timeouts,
- timeout is adjustable by parameter -t (or timeout for stdin
- and XML configuration).
-
- This should fix BZ: 401481, 276541 and 452894
-
-2008-11-19 Christine Caulfield <ccaulfie at redhat.com>
-
- cman: fix signatures of cman_get_privdata & cman_set_privdata
- They do NOT take a pointer to a handle.
-
-2008-11-19 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- xmlconfig: major rework
- cleanup completely our dependency on xpath.
-
- use XML internal data structure to get objects and keys associated to
- objects.
-
- speed up the whole config load time a lot.
-
- remote completely all exception handling that's now done using xml data
- instead.
-
- considerably reduce the amount of memory required to load the config.
-
- cleanup other bits (drop unrequired includes and invoke some XML cleanup
- code).
-
-2008-11-18 Steven Whitehouse <swhiteho at redhat.com>
-
- mount.gfs2: Remove unused ondisk2.c file
- Just removing an unused file
-
- libgfs2: Remove unused #defines
- Getting rid of some unused stuff.
-
-2008-11-18 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- gnbd: remove from cluster project
- GNBD is now officially a separated project.
-
- Code for master branch can be found here:
- http://git.fedorahosted.org/git/gnbd.git
-
- build: change error string
-
-2008-11-17 David Teigland <teigland at redhat.com>
-
- fenced/dlm_controld/gfs_controld: config update reread
- Reread some daemon config options from ccs when we get
- a config-update callback.
-
-2008-11-17 Lon Hohberger <lhh at redhat.com>
-
- rgmanager: Avoid status checks during reconfiguration
- Ignore queued status checks if a configuration update
- is pending. Basically, a queued status check during
- reconfiguration could get a status check done before
- the update is complete, causing an erroneous service
- restart.
-
-2008-11-17 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: allow libs to have indipendent sonames
- by defining SOMAJOR and/or SOMINOR within the library Makefile, we can
- now override global setting.
-
- This can be useful if we need to bump the API/ABI of one single library.
-
-2008-11-14 Lon Hohberger <lhh at redhat.com>
-
- rgmanager: make clulog accept "-" as the first char in messages
- Resolves:
- https://bugzilla.redhat.com/show_bug.cgi?id=471431
-
-2008-11-14 Bob Peterson <rpeterso at redhat.com>
-
- GFS2: gfs2_edit savemeta doesn't work with GFS
- bz 471239
-
- This patch fixes several problems when saving and restoring
- GFS and GFS2 metadata when the block size is not the default
- of 4K. Some of the problems fixed: (1). GFS and GFS2 have
- different starting offsets and lengths for indirect block
- pointers. This required a number of code adjustments.
- (2). The journal index information is kept differently in GFS,
- so I had to change how the journal index buffers were managed.
- (3). The GFS dinode structure is slightly different from GFS2
- and that was throwing off calculations because the di_height
- value was in the wrong location. Smaller block sizes made it
- worse (more blocks and a bigger height required for the same
- information). (4) GFS1 indirect pointer blocks look like
- metadata whereas GFS2's do not. As a result, gfs2_edit was
- improperly truncating those blocks for GFS1 (trying to avoid
- capturing user data versus metadata).
-
-2008-11-13 David Teigland <teigland at redhat.com>
-
- group_tool: show groupd compat info
- Show the groupd compatibility mode in output of group_tool ls.
-
- Suggest 'group_tool ls' if compat mode is 1 and daemons were
- queried (with -a) instead of groupd.
-
- Suggest 'group_tool ls -a' if compat mode is 0 and groupd was
- queried (without -a) instead of the daemons.
-
- fence_tool: refuse to leave if dlm lockspaces exist
- We already checked for mounted gfs/gfs2 filesystems and refused to
- leave if any were found. We should also refuse to leave if any
- dlm lockspaces exist.
-
- dlm_controld: clear plock syncing flags
- When a bunch of nodes all join a new lockspace together, no one will
- have any plock state, and no one will do a checkpoint to sync plock
- state to others. We just need to recognize when that happens and
- clear the need_plock and save_plock flags; the routine that completes
- the syncing process won't ever run to do it.
-
-2008-11-13 Lon Hohberger <lhh at redhat.com>
-
- rgmanager: Put init_resource_groups prototype in one place
-
- rgmanager: Remove polling code; misc cleanups
- Fix some uninitialized variables & function prototype
- mismatches.
-
-2008-11-12 Marek 'marx' Grac <mgrac at redhat.com>
-
- [fence] Extension to fence agent for LPAR/HMC with 'list'/'monitor' operation
-
- [fence] Extension to fence agent for BladeCenter with 'list'/'monitor' operation
-
- [FENCE] Support for long options (eg. --ssh, --help)
- This patch adds a support for long options (using standard getopt) to all fence
- agents. Names of long options are not stable, so it is possible that they will change
- before merging to other branches.
-
-2008-11-11 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- config: fix loading of multiple objects with no subojects
- libxml returns a different value for <foo/> depending if foo has
- child entries or not.
-
- Use a bit of string magic to use the return value always in the same
- way.
-
- libfence: use ccs_connect instead of force_connect.
- force_connect without arguments is the same as ccs_connect.
-
- ccs_connect in 3.0 does not depend on quorum anylonger like it used
- to and it will allow connection as soon as cman/corosync is up and
- running.
-
-2008-11-10 David Teigland <teigland at redhat.com>
-
- libfence: no logging
- Libraries shouldn't do logging, and the two calls to syslog here
- are not essential.
-
- libfence: remove ccs reconnect code
- ccs no longer has the problem of connections timing out.
-
-2008-11-10 Lon Hohberger <lhh at redhat.com>
-
- rgmanager: Handle notifications from cman for config updates
- Without this patch, rgmanager spins because it doesn't know
- how to handle CMAN_REASON_CONFIG_UPDATE. This fixes it.
-
- rgmanager: Fix debug build error
-
-2008-11-10 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: respect build: respect EXTRA_CFLAGS in cobj.mk
-
-2008-11-10 Lon Hohberger <lhh at redhat.com>
-
- rgmanager: Use CCS again instead of building everything NO_CCS
-
- rgmanager: Enable stderr logging when run in foreground
-
-2008-11-10 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- libccs: cleanup
- fix return code
-
- init var
-
- fix comments
-
- rgmanger: fix build system
- Make rgmanger build again.
-
- Install clurgmgrd compat symlink.
-
-2008-11-10 Lon Hohberger <lhh at redhat.com>
-
- rgmanager: Rename clurgmgrd -> rgmanager
- End the madness.
-
- rgmanager: Nuke clurmtabd since it's not used/needed
-
-2008-11-10 Christine Caulfield <ccaulfie at redhat.com>
-
- cman: replace high_nodeid with votes in transition message
- This is for forward-compatibility with future quorum service. high_nodeid
- was never used so I've use that slot for votes and incremented the minor
- number so we know what's going on.
-
- This patch is already in STABLE2
-
-2008-11-08 Lon Hohberger <lhh at redhat.com>
-
- liblogthread: Fix sefault if fopen() fails for any reason
-
-2008-11-07 Lon Hohberger <lhh at redhat.com>
-
- fence: Fix bug in make_args()
- A bug in make_args() caused it to always return an error code,
- even if we formulated a perfectly good set of arguments.
-
- Basically, eventually ccs_get_list returns -1 when all items are
- exhausted, so the check at the bottom of the function would free
- any arguments we had (correctly) set up and return an error code,
- thereby avoiding actually calling the agent.
-
-2008-11-07 Ryan McCabe <rmccabe at redhat.com>
-
- libfence: whitespace cleanup
-
-2008-11-07 Lon Hohberger <lhh at redhat.com>
-
- qdisk: fix block size check
- When using device="" instead of label="", this check was causing
- qdiskd to incorrectly exit.
-
- Resolves: #470533
-
- [fence] Make fence_xvmd "reboot" work with newer versions of libvirt
-
-2008-11-07 Jan Friesse <jfriesse at redhat.com>
-
- fence: New fence agent for VMware using vmrun command.
- This agent is based on other idea, than previous one and works on
- VMware ESXi (previous one didn't).
-
- Main idea of previous agent was connect to ESX via ssh and there run
- vmware-cmd command. This command looks deprecated and maybe will not
- available in next version of ESX. ESXi have bigger problem, because
- ESXi doesn't have ssh administration console.
-
- This agent will directly connect to VMware via native API and doesn't need
- ssh allowed on ESX host. Problem is, that you must install vmrun command
- by hand (available from VMware web pages as installer) on every node you want
- to do fencing of VMware guest machines.
-
-2008-11-07 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: fix kernel module install dir to respect DESTDIR
- Either this, or another invokation to KBUILD. This is faster :)
-
- init scripts: major rework to make them distro agnostic
- - adapt build system to generate init scripts on the fly to respect some
- installation paths
-
- - create top level headers to set vars and defaults for/from each
- distribution.
-
- - remove absolute path calls to standard distribution tools (pidof,
- kill, etc).
-
- - replace few functions from /etc/init.d/functions with local ones when
- those ones are not available.
-
- - rework the output redirection across board to fix several race
- conditions during normal operations.
-
- - fix some statements that are now invalid in bash3.
-
- - fix cman status to skip ccsd if it's not being selected specifically.
-
- - standardize LOCK_FILE all over.
-
- - fix killing process for qdisk and rgmanager to use standard distro
- tools.
-
- - substitute "action" with normal rtrn parsing in gfs and gfs2 init
- scripts.
-
- - fix clulog usage in rgmanager init script.
-
- - generally avoid to fork external process to gather return statuses.
-
- All of the above tested on Fedora 10, Debian and Ubuntu.
-
-2008-11-06 Abhijith Das <adas at redhat.com>
-
- gfs-kernel: Bug 466645 - reproduceable gfs (dlm) hanger with simple stresstest
- GFS used to attempt to prefetch inode/iopen locks in readdir
- in the anticipation that stats will be called on the dirents
- returned. Running a simple 'find' without stat, resulted in
- wasteful prefetching and poor performance to the point that
- it seemed like find was hanging the system.
-
- This patch performs prefetch on a directory's inodes based
- on a stat-rate. i.e the rate at which stats are performed on
- the dirents returned by readdir. If there are a significant
- number of stats being performed, we enable prefetching.
- Otherwise, readdir is performed without prefetches.
-
-2008-11-06 Ryan O'Hara <rohara at redhat.com>
-
- BZ 453429: Fix conditional check of $OCF_RESKEY_migration_mapping to be double quoted.
-
-2008-11-05 David Teigland <teigland at redhat.com>
-
- dlm_controld: join should return error without fence domain
- If there's no fence domain, and a process tries to join a lockspace,
- we should return an error from join_lockspace.
-
- dlm_controld: fix the recent realloc fix in deadlock code
- It was just dropping the newly allocated memory on the floor.
- Now just use malloc to make it more obvious what's happening.
-
- dlm_controld: enable calls into deadlock code
- for handling a confchg during a deadlock cycle.
- Also remove some old compat code.
-
-2008-11-05 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: prefer init scripts generated in the objdir rather than source
- This avoids a simple problem of building arch foo in objdir and arch bar
- in srcdir. Preferring objdir will make sure always to install the
- correct ones.
-
-2008-11-04 David Teigland <teigland at redhat.com>
-
- gfs_controld: simplify misc device handling and fix plock dump
- These are two things that went into dlm_controld but not into the
- duplicated code in gfs_controld.
-
- . depend on udev to create misc devices, so we remove a ton of
- complicated code that manages device nodes
-
- . fix plock dump, the dump size was never being set so the dump was
- always zero length
-
-2008-11-04 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- ccs: simplify libccs reload code
- simple refactoring to make it simpler to plug into other functions.
-
- remove unrequired special casing.
-
- ccs: libccs implement reload operations
-
-2008-11-04 Jan Friesse <jfriesse at redhat.com>
-
- fence: Fix operation 'list' and 'monitor' for LDOM and ePowerSwitch
- This two fence agents had same method for getting power status
- and getting outlets. In method was simple checking, which
- operation should be processed, but main fencing library doesn't
- set this option to 'status' in case of powering outlet on or off.
-
- This led to bad behaviour in case of on, off and reboot operation.
- Operations status, list and monitor wasn't affected.
-
-2008-11-04 Christine Caulfield <ccaulfie at redhat.com>
-
- cman: Tidy some english phrases and typos
-
-2008-11-04 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- cman notifyd: export quorum information on statechange
-
-2008-11-04 Christine Caulfield <ccaulfie at redhat.com>
-
- cman: Some edits to the cmannotifyd man page
-
-2008-11-04 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- cman notify: wait for forked process to terminate..
- .. and leave zombies around the system..
-
- cman notify: fix a few bits in the shell area
- Fix cman_notify NOTIFYDIR typo.
-
- Fix cman_notify log redirection.
-
- Fix cman_notify_template.sh log redirection.
-
- cman notify: add logging to cman_notify
- save information on what we are doing when executing scripts.
-
- cman notify: add script template to doc/
- This is a very simple template that can be generically useful
- to write notification snippets.
-
- cman notify: add note to man page
-
- cman notifyd: add man page
-
-2008-11-03 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- fence scsi: plugin reload notification script into cmannotifyd
-
- cman notify: update init script
- start/stop/start for cmannotifyd
-
- cman notification: add shell and build infrastructure
- install cman_notify script in sbindir (this will be invoked by
- cmannotifyd.
-
- cman_notify.in: similar to debian run-parts and to fedora run-parts,
- executes scripts within a directory (CONFDIR/cman-notify.d).
-
- update build snippets to install and uninstall from cman-notify.d
-
- cman notify: add call back to external script
- fix also a bug in byebye_cman and add some debugging output.
-
- cman: add new daemon for notification to custom bits
- this is just the usual cluster daemon template.
-
- logthread: fix usage of syslog(3)
- and also fix a build warning.
-
-2008-11-03 Christine Caulfield <ccaulfie at redhat.com>
-
- cman: Add some more comments about shutdown
-
-2008-10-31 Abhijith Das <adas at redhat.com>
-
- gfs-kernel: bz466677 - fault in posix_lock_file() - "gfs_controld" responds to orphaned "plock_xop" request - suspected cause is patch for Bug 196318
- gfs_lock() doesn't handle F_CANCELLK correctly (command not implemented).
- This patch implements the F_CANCELLK command in gfs_lock().
-
-2008-10-31 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- rgmanager: Fix smb.sh shell scripting
-
-2008-10-31 Christine Caulfield <ccaulfie at redhat.com>
-
- cman: Some fixes for configless running
- Create /cluster if it doesn't exist (and don't bother trying to
- copy any subkeys into CONFIG_PARENT_OBJECT).
-
- Also don't reload keys if we are running configless.
-
-2008-10-31 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- groupd: handle cman config update notifications
- allow at least logging to be reconfigured runtime
-
- gfs_controld: handle cman config update notifications
- allow at least logging to be reconfigured runtime
-
- dlm_controld: handle cman config update notifications
- allow at least logging to be reconfigured runtime
-
- cman: update man page for reload operations
-
- cman: implement and simplify configuration reload operations
-
- cman: implement reload operations for cman-preconfig
- add first cut for reload operations.
-
- cman: make cluster_parent_handle function specific
- this avoids different problems at reload time, like holding a reference
- to an object that does not exist anymore.
-
-2008-10-30 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- gfs2: randomize creation of temporary directories for metafs mount more
- a07d8d56e945a265f3da2857ad1316f49c4ae157 didn't add enough security to
- the whole random mount point.
-
- This change:
-
- - introduces a better randomness in mount_gfs2_meta by using mkdtemp
- (this is a required change for security reason).
- - the use of mkdtemp makes the whole dir_exists code unrequired (hence
- removed by the patch).
- - we force each tool to create its own meta mount. This fixes any
- possible race conditions between tools (and thanks to the use of mkdtemp
- that will guarantee the creation of a unique mount point). It also makes
- find_gfs2_meta function unrequired (hence removed by the patch).
- - cleanup struct gfs2_sbd of unrequired fields.
- - cleanup the cleanup_metafs code path.
- - cleanup exit path from mount_gfs2_meta.
- - simplify code around different tools by using mount_gfs2_meta only.
- - turn lock_for_admin static.
-
- rgmanager: randomize svclib_nfslock temp dir
- by using a static path to /tmp, the operation can be used to trigger
- a local DoS by a normal user.
-
- Randomize temp dir via mktemp.
-
- rgmanager: randomize smb.sh temp file
- by using a static path to /tmp, the operation can be used to trigger
- a local DoS by a normal user.
-
- Randomize temp files via mktemp.
-
- misc: fix mktemp usage
-
- rgmanager: randomize oracledb.sh temp file
- by using a static path to /tmp, the operation can be used to trigger
- a local DoS by a normal user.
-
- Randomize temp files via mktemp.
-
- rgmanager: randomize SAPDatabase temp file even more
- ad4d9bd9216d6fa259118017bac8b5c032b7b3b9 didn't introduce enough
- security.
-
- Switch to mktemp(1).
-
- rgmanager: randomize ASEHAagent temp files even more
- f8943d17d4c108d44af7a42ad0fd646d4e75990e didn't didn't introduce enough
- security.
-
- Switch to mktemp(1).
-
- rgmanager: move state dump file where it belongs
- commit bde3b975fc4caffaa2aabd82d7d3cda8f4432f6a did try to mitigate a
- possible DoS in the wrong way.
-
- Move the file where it belongs instead. rgmanager is a "long time"
- running daemon and the pid is known upfront making the old fix
- pointless.
-
- gfs2: randomize file for savemeta operations even more
- 15f9eb851b8924271095b159b2d077a9a0595cd5 didn't introduce enough
- security.
-
- Switch to mkstemp(3) and cleanup unrequired code as a consequence.
-
- gfs2: randomize debugfs mount point even more
- 18b24ae55c3e4abdc256a3b6c4f15ae0116a0f14 didn't introduce enough
- security.
-
- Switch to mkdtemp(3) and cleanup unrequired code as a consequence.
-
- ccs: cleanup ccs_read_logging
- simplify the code a lot based on Dave implementation.
-
- use a buffer for file instead of passing pointers around. Makes life
- easier.
-
- move all common stuff (yes-no / on-off / get string) into their own
- functions.
-
-2008-10-30 Marek 'marx' Grac <mgrac at redhat.com>
-
- [fence] WTI should not power on/off plug if it is unable to get status
- Fix #468904 - I have to remember difference between and/or
-
- [fence] WTI should not power on/off plug if it is unable to get status
- Fix #468904. On some WTI devices plugs are numbered as 1,2,3 and on the others as
- A1,A2,...B1,.... Both types accept numbers (A1 = 1, B1 = [number of last A] + 1).
- Power on/off works with numbers but if we want to parse status of plug then
- we have a problem. This patch is a general solution (fencing library) because
- it tests value of get_status() which have to be on/off otherwise we exit with
- new error code.
-
-2008-10-29 David Teigland <teigland at redhat.com>
-
- fenced/dlm_controld/gfs_controld: query thread mutex
- should be held around some places it wasn't and can be released
- in some other places it wasn't.
-
-2008-10-29 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- xmlconfig: fix buffer overflow when reading huge config files
- it was possible to overflow a buffer when adding more than 52 entries
- within the same xml block:
-
- <block>
- <entry1...
- <entry2...
- ....
- <entry53.. <-
- </block>
-
- fix the overflow by turning the whole allocation dynamic rather than
- static. This will allow only limits imposed by the system memory.
-
- ccsais: fix buffer overflow when reading huge config files
- it was possible to overflow a buffer when adding more than 52 entries
- within the same xml block:
-
- <block>
- <entry1...
- <entry2...
- ....
- <entry53.. <-
- </block>
-
- fix the overflow by increasing the limit to 1024 and fail to start if
- we hit the limit.
-
- ccs: add ccs_read_logging
- this function is a simple wrapper to gather all logging configuration
- from one central place since this code is replicated already N times
- across the tree.
-
- the function should always be invoked with the selected default values
- and it will apply overrides from the config (if available and if
- possible).
-
- you are responsible for freeing char **file when changed via
- cluster.conf.
-
- build: use standard syslog priority name rather than corosync
- this allow us to use external logging entities and retain compatibility
-
-2008-10-28 David Teigland <teigland at redhat.com>
-
- gfs_controld: move log_error message
- Limit the error message to the case that shouldn't happen. It was being
- printed in cases that can happen during normal operation.
-
-2008-10-28 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- common: plug liblogthread in the system
- add toplevel common/ infrastructure for bits that needs to be built
- before anything else and that they are "common" to several daemons.
-
- code that lands in here should not depend on anything else in the tree.
-
- plug liblogthread into common/ and the build system.
-
- ccs: libccs major rework pass 5
- lindent the code....
-
- ccs: remove duplicate entry in internal header file
-
- ccs: libccs major rework pass 4
- move all helper functions at the top of libccs, and the public API at
- the bottom.
-
- make _ccs_get static
-
- ccs: libccs major rework pass 3
- split fullxpath code into fullxpath.c
-
- ccs: libccs major rework pass 2
- split xpathlite code into xpathlite.c
-
- add ccs_internal.h to define internal API.
-
- ccs: libccs split ccs_lookup_nodename into extras.c
- extras.c will collect wrappers for libccs that do not provide
- libccs core functionalities.
-
- ccs: libccs major rework pass 1
- return real ccs_handles instead of fake ones. This will allow
- one application to have more than one concurrent connection to ccs.
-
- reinstante tracking as it was provided in the past by ccsd.
-
- move almost all global variables into function specific ones.
-
- make ready for splitting xpathlite and fullxpath into their own files.
-
- make ready to split xpathlite parsing into separate functions.
-
- make ready to split helper functions to access confdb into its own file.
-
- make it easier to debug by storing info into the objdb.
-
- cman: add /libccs/@next_handle support
- next_handle will be atomically incremented by corosync to return
- ccs_handle down the pipe.
-
- We create it in cman-preconfig to avoid an "init" race in libccs.
-
-2008-10-27 David Teigland <teigland at redhat.com>
-
- groupd/fenced/dlm_controld/gfs_controld: init logging after fork
- Initializing logging creates threads which is complicated by forking.
- Move logging init after fork, since we don't use it until then anyway.
-
-2008-10-27 Jan Friesse <jfriesse at redhat.com>
-
- fence: Operation 'list' and 'monitor' for Alom, LDOM, VMware and ePowerSwitch
- None of this devices returns alias with list operation,
- because it doesn't make any sense (LDOM, VMware) or it
- isn't possible to get that information (ePowerSwitch).
-
- fence: Fix -C switch description in Python library
- Separator between -C and description was tab key. It looked
- very bad in console, because -C description was not aligned
- with other descriptions.
-
-2008-10-27 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- ccs: implement config reload in legacy ccs
- add reload operation to legacy ccsais config plugin.
-
- xmlconfig: remove debugging fprintf
-
-2008-10-24 David Teigland <teigland at redhat.com>
-
- dlm_controld: fix plock dump
- The size of a plock dump was always zero so nothing would be sent.
-
-2008-10-23 Marek 'marx' Grac <mgrac at redhat.com>
-
- [fence] Operation 'list' and 'monitor' for WTI IPS 800-CE
- This should work also on other WTI devices but currently I don't have
- any other.
-
- [fence] Operation 'list' and 'monitor' for iLO, DRAC5 and APC
- Operation for listing available outlets works also for single-unit
- fencing devices and returns N/A (can be changed to anything else). Option
- 'monitor' can be used for monitoring health of the fencing device. It
- does not output anything and will perform operation 'list' (on multi-port devices; ef. APC) or operation 'status' (on single-port devices; eg. iLO).
-
-2008-10-23 Jan Friesse <jfriesse at redhat.com>
-
- fence: Fixed case sensitives in action parameter.
- Some agents use case sensitive action parameter. This patch
- makes that agents case insensitive and fix their man pages
- to reflect this change.
-
-2008-10-22 Jonathan Brassow <jbrassow at redhat.com>
-
- rgmanager (HALVM): Stop dumping debug output to /tmp
- Remove some left-over debugging
-
-2008-10-22 Jan Friesse <jfriesse at redhat.com>
-
- fence: Added support for no_password in fence agents library and fence_eps.
- Some fence devices don't need login name and password for fencing (this
- is generally bad idea, but ePowerSwitch 8M+ is good example).
-
-2008-10-22 Christine Caulfield <ccaulfie at redhat.com>
-
- cman: fix two_node startup if -e is specified
- two_node startup could fail because the vote_sum variable isn't calulated
- if expected_votes is specified on the command-line.
-
- Now we always iterate the nodes list to get the vote_sum.
-
-2008-10-22 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- libgfs2: randomize creation of temporary directories for metafs mount
- by using a static path to /tmp, the operation can fail in different
- ways.
-
- randomize the path a bit by using the invoking pid. This will also allow
- multiple simultaneous invokation of mount_gfs2_meta on different
- mountpoints.
-
- Similar to 18b24ae55c3e4abdc256a3b6c4f15ae0116a0f14 there is a small
- race condition in this implentation.
-
- Implementation:
-
- - Fix return info from find_gfs2_meta to set TRUE when we find a
- mountpoint in gfs2_sbd struct.
-
- - Add metafs_created_mount to gfs2_sbd struct to propagate info if we
- did create the mount point or not.
-
- - Randomize sdp->metafs_path with pid info.
-
- - Remove the metafs_path mount point if we did create it.
-
- rgmanager: randomize SAPDatabase temp file
- by using a static path to /tmp, the operation can be used to trigger
- a local DoS by a normal user.
-
- Mitigate the issue by randomizing the temp files with pid.
-
- build: reinstate targets in rgmanager metadata check
-
- rgmanager: move oracledb.sh log files where they belong
- by using a static path to /tmp, the operation can be used to trigger
- a local DoS by a normal user.
-
- Move the log files to LOGDIR where they are expected to be. LOGDIR
- is generally owned by root and doesn't allow normal users to play with
- it.
-
- rgmanager: move nfsclient.sh cache files where they belong
- by using a static path to /tmp, the operation can be used to trigger
- a local DoS by a normal user.
-
- Move the cache files to /var/cache/cluster that's owned by root and
- doesn't allow normal users to play with it.
-
- rgmanager: move fs.sh log file where they belong
- by using a static path to /tmp, the operation can be used to trigger
- a local DoS by a normal user.
-
- Move the log files to LOGDIR where they are expected to be. LOGDIR
- is generally owned by root and doesn't allow normal users to play with
- it.
-
- rgmanager: randomize ASEHAagent temp files
- by using a static path to /tmp, the operation can be used to trigger
- a local DoS by a normal user.
-
- Mitigate the issue by randomizing the temp files with pid.
-
-2008-10-22 Jim Meyering <jim at meyering.net>
-
- handle some malloc failures
- "Fabio M. Di Nitto" <fabbione at fabbione.net> wrote:
- > Merged into master branch. I had some issues to get them in the tree
- > so the SHA1 are different from your original posting but it's all
- > there.
-
- Thanks, Fabio.
- Here's a tiny adjustment:
-
- >From 01c30afac0bf97d84df11cc32773304a99613a08 Mon Sep 17 00:00:00 2001
- From: Jim Meyering <meyering at redhat.com>
- Date: Mon, 13 Oct 2008 15:22:55 +0200
- Subject: [PATCH] adjust a diagnostic
-
- * group/dlm_controld/deadlock.c (add_waitfor): Tweak diagnostic.
-
-2008-10-22 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- rgmanager: randomize file for automatic data dump
- by using a static path to /tmp, the operation can be used to trigger
- a local DoS by a normal user.
-
- Mitigate the issue by randomizing the output file with pid.
-
- gfs2: remove unused define
-
- gfs2: randomize file for savemeta operations
- by using a static path to /tmp, the operation can be used to trigger
- a local DoS by a normal user.
-
- Mitigate the issue by randomizing the output file when none is
- specified.
-
- gfs2: randomize debugfs mount point
- by using a static path to /tmp, the operation can fail in different
- ways.
-
- randomize the path a bit by using the invoking pid. This will also allow
- multiple simultaneous invokation of lockdump operations.
-
- There is still a small window for a race where one gfs2_tool invokation
- has created the mount point, the second one finds the mount point, the
- first one succeed in an umount and the second one will not be able to
- access the data. This is a very unlikely condition to happen and it's
- not mission critical so we can live with it.
-
- fence: update man page for fence_apc
- we don't save logs there anymore
-
-2008-10-21 Jan Friesse <jfriesse at redhat.com>
-
- [fence] Fixed man pages makefile, so fence_eps.8 is now installed.
-
- [fence] Fence agent for ePowerSwitch 8M+ (fence_eps)
- bz 467112
-
- Fence agent for ePowerSwitch 8M+ works only on 8M+ device, because
- this is only one with hidden page (this feature has to be allowed,
- otherwise agent will not work) feature support.
-
-2008-10-21 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- misc: fix gfs2_edit build
- broken by wrong copyright update commit
-
-2008-10-21 Jim Meyering <meyering at redhat.com>
-
- add comments marking unchecked strdup calls
- * config/tools/ccs_tool/editconf.c (add_fence_args):
-
- Remove unused local variable, buf,
- * gfs2/edit/savemeta.c (save_inode_data): ...along with malloc and free.
-
- add comments marking unchecked malloc calls
- * gfs/gfs_fsck/super.c:
- * gfs/libgfs/fs_dir.c:
- * gfs/libgfs/inode.c:
- * gfs/libgfs/super.c (ji_update):
- * gfs2/edit/hexedit.c (display_indirect):
- * gfs2/edit/savemeta.c (gfs1_rindex_read):
- * gfs2/fsck/initialize.c (init_system_inodes):
- * gfs2/libgfs2/super.c (rindex_read):
- * group/daemon/app.c:
- * group/daemon/cpg.c (deliver_cb):
- * group/daemon/joinleave.c (new_node):
- * group/daemon/main.c (do_get_groups, do_send):
- * group/dlm_controld/plock.c (unpack_section_buf):
- * group/gfs_controld/plock.c (unpack_section_buf):
- * src/daemons/clurmtabd_lib.c (rmtab_insert):
- * src/daemons/dtest.c (dtest_shell, main):
-
- remove dead code (useless test of memset return value)
- * gfs/gfs_fsck/block_list.c (block_list_create): memset can't fail.
- There are many more like this.
-
- * gfs/gfs_fsck/inode.c (check_inode): handle failed malloc
-
- * fence/agents/xvm/ip_lookup.c (add_ip): Handle malloc failure.
-
- don't dereference NULL upon failed realloc
- * gfs/tests/filecon2/filecon2_server.c (main): Fix typo (s/sock/ssin/)
- that would make a failed realloc cause a NULL dereference.
- * gnbd/tools/gnbd_export/gnbd_export.c (execute_uid_program):
- Diagnose a failed realloc.
- * group/dlm_controld/deadlock.c (add_waitfor): Handle failed realloc.
-
-2008-10-21 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- misc: cleanup copyright.... again
-
-2008-10-20 Simone Gotti <simone.gotti at email.it>
-
- [rgmanager] Fix fuser parsing on later versions of psmisc
- Description of problem:
-
- fuser from rhel5 has different output respect the one from rhel4 so fs.sh needs
- a little change.
-
- Looks like the 2 differences are:
-
- *) mountpoint has an ending colon
- *) Everything except the pid file is printed to sdterr instead of stdout
-
- Bugzilla #467686
-
-2008-10-20 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- rgmanager: fix build after port to logsys
-
-2008-10-20 Abhijith Das <adas at redhat.com>
-
- gfs-kernel: bz 458765 - In linux-2.6.26 / 2.03.06, GFS1 can't create more than 4kb file
- Temporary workaround fix to make gfs1 work properly
- in upstream kernels until we do it the right way by
- using the new aops write_begin/write_end instead of
- the prepare_write/commit_write interface that we
- currently use.
-
-2008-10-17 Marek 'marx' Grac <mgrac at redhat.com>
-
- [fence] Operation 'list' for APC fence agent
- Operation 'list' return list of available outlets (with aliases) or name
- of virtual machines. This patch includes changes for fencing library and
- changes for APC fence agent. There is third argument for fence_action()
- that is None by default so we don't have to change other fence agents that
- do not have support for this operation, yet. In some cases we can overload
- get_power_status() as we just need to cache result in other cases it will
- be completely separate function (eg. 'xm list').
-
- @note: Current implementation for APC will list just outlets on one device.
- If we have more than one switches (MasterSwitch) we will see outlets just
- on this device.
-
-2008-10-17 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- fence egenera: fix logging file
- Move log file where it belongs with all the others.
-
- Addresses: CVE-2008-4192
-
-2008-10-15 Lon Hohberger <lhh at redhat.com>
-
- [fence] Fix fence_xvmd trying to read wrong args from ccs
-
-2008-10-14 David Teigland <teigland at redhat.com>
-
- fenced/dlm_controld/gfs_controld: modify a debug message
- show the cg seq number in the wait_messages debug line to make
- it clear which cg it's counting messages for
-
- gfs_control: improve ls output
- copy what was done with fence_tool and dlm_tool.
-
-2008-10-14 Christine Caulfield <ccaulfie at redhat.com>
-
- cman: fix a couple of unhandled malloc failures
- Thanks to Jim Meyering for the patches.
-
-2008-10-14 Abhijith Das <adas at redhat.com>
-
- gfs-kernel and mount.gfs2: GFS ignore the noatime and nodiratime mount options
- Since the vfs moved the MS_NOATIME, MS_NODIRATIME flags
- from the superblock to the vfsmount structure (MNT_NOATIME,
- MNT_NODIRATIME, which are not accessible to gfs), gfs no
- longer knows when to enable/disable atime updates and the
- atime_quantum stuff is broken in the sense that it doesn't
- respect the noatime and nodiratime flags.
-
- This patch attempts to fix this by creating a gfs-specific
- mount option gfs_noatime and having the mount.gfs helper
- pass it along when the user specifies noatime or nodiratime
- in the command line. It's not the ideal way to fix it, and
- it is a bit ugly.
-
- Revert "gfs-kernel: bz457473 - GFS ignore the noatime and nodiratime mount options"
- This reverts commit 324a4ffc12821ddde1f583a214e98ba9c8c2540c.
-
-2008-10-10 David Teigland <teigland at redhat.com>
-
- dlm/fence: daemon fixes and tool improvements
- fence_tool/dlm_tool: improve info in ls output
- fenced/dlm_controld: fix confchg/message processing, must be done after
- each individual confchg/message
- dlm_controld: fix fencing checks which weren't happening
- dlm_controld: improvements to recovery debug messages
-
-2008-10-10 Steven Whitehouse <swhiteho at redhat.com>
-
- libgfs2: Add support for UUID generation to gfs2_mkfs
- Uses /dev/urandom to create 16 byte UUIDs for GFS2 filesystems
- at mkfs time. Backwards and forwards compatible with all
- GFS2 filesystems. You'll need a set of kernel headers with
- the new field defined in order for this feature to be
- enabled. Bugzilla #242690
-
-2008-10-09 Marek 'marx' Grac <mgrac at redhat.com>
-
- [RGMANAGER] - Fix #462910 postgres-8.sh and metadata fixes
-
-2008-10-08 David Teigland <teigland at redhat.com>
-
- daemons/tools: misc minor cleanups and improvements
- fenced/fence_tool: fix and improve output of ls
- daemons: don't attempt cpg exit cleanup after cluster goes down
- daemons: fix lazy memset size args to avoid mistakes
- dlm_controld: clean up daemon cpg on exit
-
- fence_tool/dlm_tool/gfs_control: remove error message
- for the 'ls' command when the daemon isn't running.
-
-2008-10-06 Ryan McCabe <rmccabe at redhat.com>
-
- cman: Fix typo that caused start-up to fail
- "/usr/sbin/cman_tool" should be "/sbin/cman_tool"
-
-2008-10-06 Abhijith Das <adas at redhat.com>
-
- gfs-kernel: bz457473 - GFS ignore the noatime and nodiratime mount options
- This patch corrects noatime support in GFS. It works by ditching the special casing which we had previously and using the support already in the VFS layer.
-
- The problem which this solves was introduced a while back when noatime became a per-vfsmnt flag rather than a per-sb flag. GFS was still assuming that this flag would be passed to the fs, whereas in reality it was being horded by the vfsmnt code and not being passed to the fs.
-
- As a result of this patch, GFS will not only obey the noatime flag correctly, but also relatime and these will also be supported per-vfsmnt rather than on a per-sb basis as before.
-
- This fixes bz #457473
-
-2008-10-02 Abhijith Das <adas at redhat.com>
-
- gfs-kernel: GFS: madvise system call causes assertion
- Since the madvise system call was enabled by the patch to bug 429343, it's
- possible for a inode glock holder to never get dequeued through gfs_readpage.
- This causes an assertion (bug 464837)
-
- GFS: fsid=cl102a:gfs1.1: warning: assertion "(gh->gh_flags & LM_FLAG_ANY) ||
- (tmp_gh->gh_flags & LM_FLAG_ANY)" failed
- GFS: fsid=cl102a:gfs1.1: function = add_to_queue
- GFS: fsid=cl102a:gfs1.1: file =
- /builddir/build/BUILD/gfs-kmod-0.1.23/_kmod_build_/src/gfs/glock.c, line = 1418
- GFS: fsid=cl102a:gfs1.1: time = 1222739610
-
- This patch reverts the patch to bz 429343. Don't log any warnings/errors and
- simply return ENOSYS when you arrive at gfs_readpage without the inode glock
- held. (madvise syscall case)
-
-2008-10-02 Bob Peterson <rpeterso at redhat.com>
-
- gfs-kmod: GFS corruption after forced withdraw
- bz 452274
-
- GFS file systems were being corrupted because some of the
- functions in log.c were writing to the journal after the
- file system had been withdrawn.
-
-2008-09-29 Ryan O'Hara <rohara at redhat.com>
-
- fence_scsi: correctly declare key_list
- The key_list hash was not being declared in the get_key_list
- subroutine, which was causing problem with the scope of the
- variable. In short, Perl assumes that the scope of an undeclared
- variable is global. This caused the contents of the has to remain
- unchanged. (BZ 462628)
-
- fence_scsi: improve logging for debugging
- Using the -v (verbose) option will print more information that it
- previously did. Output will also be easier to understand, which
- should help track down any problems that might occur.
-
-2008-09-29 rohara <rohara at spartan.(none)>
-
- scsi_reserve: add restart option
- Added restart option to scsi_reserve init script. Using this option
- will result is re-registering with all devices. It will not remove
- any existing registrations, since doing so would be dangerous. In
- short, it is nearly identical to calling the script with the "start"
- option. (BZ #455330)
-
- fence_scsi.pl: check if nodeid is zero
- If the nodeid we get from the XML query of cluster.conf is zero,
- then either the node does not exist in the cluster of the nodeid
- is not set. Each case is invalid, so report an error and exit.
-
-2008-09-29 Ryan O'Hara <rohara at redhat.com>
-
- cman: allow custom xen network bridge scripts
- This patch allows users to define custom scripts for Xen network
- bridging. Previously, the name of the Xen network bridge was
- hard-coded in the cman init script. Users that wish to use custom Xen
- network bridge script should define NETWORK_BRIDGE_SCRIPT in
- /etc/sysconfig/cman. This script must exist in the /etc/xen/scripts
- directory. Users must also update the /etc/xen/xend-config.sxp file
- accordingly.
-
-2008-09-26 Lon Hohberger <lhh at redhat.com>
-
- rgmanager: don't change the build target just yet
-
- rgmanager: make clulog build even though it's incomplete
-
- group: Allow group_tool ls <name> <level> to be scriptable
- * Returns 1 if the group is not found or found and not joined
- * Returns 0 if the group is found and joined
-
- This is needed to solve rhbz 459754.
-
- rgmanager: First pass at port to logsys
- logging.c is from group/*_controld with a few mods
- clulog (command line utility) is not done yet.
-
-2008-09-26 Marek 'marx' Grac <mgrac at redhat.com>
-
- [FENCE] Fix #290231 - "Switch (optional)" param does not default to "1" and program fails
- Bug itself was almost corrected in new fence agent but unfortunately '1' was
- entered as number not as string. Python can not do int + string and agent fails.
-
-2008-09-25 David Teigland <teigland at redhat.com>
-
- fenced/fence_tool: improve list info
- Add wait condition to the output, and make the current victim
- visible for the full duration of fencing.
-
-2008-09-25 Bob Peterson <rpeterso at redhat.com>
-
- GFS: gfs_fsck invalid response to question changes the question
- bz 463817 - gfs_fsck can't decide which bitmap to fix
-
- When the gfs_fsck ran into a problem and asked whether to fix
- it, if the users gave an invalid response, the block referenced
- in the question would become a random number. That's because in
- function "query" it was parsing the arguments once, using
- the va_start function, but after the arguments have been parsed,
- it's left in an invalid state. The proper thing to do is to
- call va_start for each time we need to parse the arguments.
-
-2008-09-25 David Teigland <teigland at redhat.com>
-
- fenced: add protocol negotiation
- Same as dlm_controld and gfs_controld, but without the kernel protocol.
-
- dlm_controld: add protocol negotiation
- Exact copy from gfs_controld. Also fix a check in gfs_controld.
- The kernel proto checking is not yet linked to the actual kernel version.
-
-2008-09-25 Jan Friesse <jfriesse at redhat.com>
-
- fence: New fence agent for Logical Domains (LDOMs)
- It's tested on LDOM 1.0.3. Because interface is backward
- compatible, it will work with 1.0, 1.0.1 and .2 too.
- It's tested with bash and csh shells on host machine.
-
-2008-09-25 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- dlm/fence/gfs: fix daemon spinning 100% due to memory corruption
- This is more a workaround than a real fix.
-
- When building with -O0, arg list to pthread_create is somehow corrupted
- (I suspect a gcc bug here as the problem doesn't show with any other -O
- levels), and data passed down to process_query are invalid.
-
- Stop passing arguments via pthread_create.
-
- Add simple sanity check and fallback in process_queries on accept() call
- that was the main cause of the spin.
-
-2008-09-24 David Teigland <teigland at redhat.com>
-
- gfs_controld: add protocol negotiation
- For both daemon and kernel protocols, although the kernel protocol is
- not connected in any way to the actual kernel version yet.
-
-2008-09-24 Lon Hohberger <lhh at redhat.com>
-
- cman: Don't let qdiskd update cman if the disk is unavailable
- rhbz#460937
-
- cman: Fix broken qdisk main.c patch reverted with scandisk merge
- Re-fixes 442541
-
- rgmanager: Resolve hostnames->IPs and back when checking NFS clients
- Also enable caching for improved performance in services
- with lots (hundreds) of individual mounters
-
- Bugzillas #246668 & #455324
-
- rgmanager: Make clustat and clusvcadm work faster
- rhbz#461956
-
- rgmanager: Implement enforcement of timeouts on a per-resource basis
- Set "__enforce_timeouts" to "1" in the resource tree in order to
- enable this behavior (e.g. not the global resources list).
-
- rhbz #455326
-
- rgmanager: Clean up build
- General build cleanups. Also fixes small bug in
- check_rdomain_crash().
-
- rgmanager: make status poll interval configurable
- This allows administrators to define an alternate poll
- interval; the default is 10 seconds. This has no functional
- change unless an administrator sets:
-
- <rm ... status_poll_interval="X"/>
-
- rgmanager: Fix up clusvcadm.8 manual page to show -M option
- rhbz#460032
-
- rgmanager: Wait for fence domain join to complete
- rhbz 459754, take 3
-
- rgmanager: Permit careful restart w/o disturbing services
- ... e.g. for upgrades of rgmanager in-place for example.
-
- Note: Requires service-freeze patch
-
- Example use:
- * Manually freeze all services on a node.
- * Stop rgmanager (service rgmanager stop)
- * Upgrade rgmanager package
- * Manually start rgmanager from the command line
- 'clurgmgrd -N'
-
- rgmanager: Detect restricted failover domain crash
- Mark service as 'stopped' when it is 'running' but the
- node is down. rhbz #435466
-
- rgmanager: Make freeze/unfreeze work with central_processing
- Part 2 of 2 for rhbz 448046
-
-2008-09-24 Bob Peterson <rpeterso at redhat.com>
-
- GFS2: gfs2_fsck: fix segfault while running special block lists.
- bz 463588 - GFS2: gfs2_fsck segfaults when extended attributes are on the file system
-
- The gfs2_fsck tool was running special block lists with
- osi_list_foreach but then it was sometimes deleting the
- entries from the lists. Therefore it should have been using
- osi_list_foreach_safe instead.
-
-2008-09-24 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- misc: cleanup ifdefs around RELEASE_VERSION
- RELEASE_VERSION is always set at build time now. Make it consistent
- across the whole tree.
-
- fence: install fence_alom man page
- update build to install fence alom man page
-
- fence: update alom description
- add CMT version information in the alom header
-
-2008-09-24 Lon Hohberger <lhh at redhat.com>
-
- cman: show '-d' option in mkqdisk -h and mkqdisk.8
- rhbz 459678
-
-2008-09-22 Jan Friesse <jfriesse at redhat.com>
-
- Fence: Added fence agent for Sun Advanced Lights Out Manager (ALOM)
- Because of strange behavior of ALOM SSH, which behaves more like
- telnet, fencing.py library is changed too. There is new option
- telnet_over_ssh (accessible only from source code of agent), which
- supports this behavior.
-
- fence: Fix fence agent for VMware ESX.
- Added support for identity_file.
-
-2008-09-19 David Teigland <teigland at redhat.com>
-
- gfs_controld: ignore uevents after first_done
- Ignore extraneous uevents after we see first_done; it's cleaner that way.
- Munging more debug messages to improve reading/debugging.
-
- gfs_controld: withdraw and recovery fixes
- Add handling for withdraw to new code, along with fixes to related
- recovery code.
-
-2008-09-19 Christine Caulfield <ccaulfie at redhat.com>
-
- cman: Clean shutdown_con if the controlling process is killed.
- If a shutdown is initiated by a process that is then killed, the
- shutdown_con isn't cleared. So if another process replies to the
- shutdown request cman could segfault.
-
-2008-09-17 David Teigland <teigland at redhat.com>
-
- dlm_controld: ignore old plock dev when using new one
- Don't require /dev/misc/lock_dlm_plock to exist when we've
- found /dev/misc/dlm_plock.
-
-2008-09-17 Abhijith Das <adas at redhat.com>
-
- Revert "gfs-kernel: bz298931 - GFS unlinked inode metadata leak"
- This reverts commit b32003be3784835ca1e79a490e052210303268ac.
-
-2008-09-16 Jan Friesse <jfriesse at redhat.com>
-
- fence: Fix fence agent for VMware ESX.
- Use dynamic import path and RELEASE_VERSION variable.
-
- cman: Removed old Perl version of VMware fence agent, so new version is built.
-
-2008-09-15 Chris Feist <cfeist at redhat.com>
-
- cman: fixed makefiles to actually install the vmware manpage
-
-2008-09-15 Christine Caulfield <ccaulfie at redhat.com>
-
- cman: rename 'move' functions to 'copy'
- After some though I decided that removing the original config tree
- was unhelpful. And so I've also renamed the functions that do
- the copy to 'copy_' from 'move_* for clarity.
-
-2008-09-12 Abhijith Das <adas at redhat.com>
-
- gfs-kernel: bz298931 - GFS unlinked inode metadata leak
- Have inoded reclaim metadata from x rgrps at a time
-
- The tunable max_rgrp_free_mdata is the maximum number of rgrps
- to free unused metadata from during each cycle of inoded.
- Default is 5.
-
- libgfs2: Bug 459630 - GFS2: changes needed to gfs2-utils due to gfs2meta fs changes in bz 457798
- The changes to the gfs2meta component of gfs2 (through bz 457798) do not
- require any major changes to gfs2_utils except this one liner. We now use the
- gfs2 mount point rather than the device to mount the meta fs.
-
-2008-09-11 Marek 'marx' Grac <mgrac at redhat.com>
-
- [FENCE] Fix #460054 - fence_apc fails with pexpect exception
- In some special unspecified cases it is possible that
- connection will be closed before we run close(). This is not
- a problem because everything is checked before.
-
-2008-09-11 Christine Caulfield <ccaulfie at redhat.com>
-
- config: Get rid of files I committed accidentally.
- You know my opinion of git.
-
- cman: Copy "service" keys down to corosync
- Allow the user to specify multiple <service> keys
- in cluster.conf, to include extra services.
-
- config: Allow multiple top-level keys
- XML & CCS config stopped reading top-level objects if it came
- across a duplicate. This was due to a break where a continue should
- have been.
-
-2008-09-11 Jan Friesse <jfriesse at redhat.com>
-
- fence: Fence agent for VMware ESX
- Another fence agent for VMware ESX which is written in Python using our fencing
- library. Old agent (written in Perl) segfaulted in my test environment. This
- agent is tested on VMware ESX 3.5 and Server 1.0.7.
-
- bz 251048
-
-2008-09-10 Christine Caulfield <ccaulfie at redhat.com>
-
- cman: honour the dirty flag on a node we haven't seen before
- The dity-node code used to check if a node had been down before
- honouring the dirty flag, this was to prevent nodes already in the cluster
- from kicking each other out at a transition.
-
- This had the problem that it could not detect if a new node joined that already had state (eg a new cluster started up in a split network).
-
- So, now we also check the 'first_trans' flag in the transition message so
- that we know when the node has newly joined a multi-node cluster.
-
- For more information see bz#460909
-
-2008-09-10 Bob Peterson <rpeterso at redhat.com>
-
- GFS2: sync buffers to disk when rewriting superblock
- bz 461290
-
- GFS2: mount during fsck protections not working.
- When gfs2_fsck is run, it is supposed to rewrite the locking
- protocol in the superblock to "fsck_xxxx" (e.g. "fsck_dlm")
- to prevent all cluster nodes from mounting the file system
- while gfs2_fsck is running. The data was being written out,
- but the buffers were not synched to disk. That created a
- timing window where processes could still mount the file
- system. This was uncovered by the gfs2_fsck_stress test.
- This fix syncs the buffers to disk before continuing.
- Note that this still does not prevent users from running
- gfs2_fsck on file systems that are still mounted, but that is
- the way it has always been in the past.
-
-2008-09-09 David Teigland <teigland at redhat.com>
-
- gfs_controld: fix and implement remount
- Fixes problem with remount request mount.gfs was making; it wasn't
- specifying the locktable, causing a segfault.
-
- Implement the remount routines in the new cpg mode.
-
-2008-09-08 David Teigland <teigland at redhat.com>
-
- gfs_controld: ignore second leave
- When mount(2) fails we often get two leave requests. The second
- can be ignored, don't log an error message.
-
- mount.gfs: fix mount error handling
- When mount(2) fails, mount.gfs tells gfs_controld to leave the cpg.
- libgfscontrol requires the leave call to specify the locktable, which
- mount.gfs wasn't setting, causing it to segfault.
-
-2008-09-08 Satoru SATOH <satoru.satoh at gmail.com>
-
- fence: Add network interface select option for fence_xvmd
- 1. fence_xvmd selects wrong network interface to listen on if host has
- multiple interfaces and target interface is not for default route.
- As a result, fence_xvmd does not repond to fence_xvm's request.
- 2. fence_xvmd cannot start if default route is not set.
-
- Ex: fence_xvmd -I <interface_name>
-
- Signed-Off-By: Satoru SATOH <satoru.satoh at gmail.com>
- Signed-Off-By: Lon Hohberger <lhh at redhat.com>
-
-2008-09-05 David Teigland <teigland at redhat.com>
-
- fence_tool/dlm_tool/gfs_control: improve ls output format
- Improve the output formatting of 'ls' list operations to make
- the info easier to view.
-
- libdlm: /dev/misc/dlm-control created by udev
- Remove code that creates the dlm-control device. Depend on udev
- to create it like we do for other devices.
-
- dlm_controld/gfs_controld: handle merge of cpg partition
- Uncomment the code that handles stateful cpg's merging together.
- (Same as previous fenced commit.)
-
- Also make same changes to debug output as previous fenced commit.
-
- fenced: handle merge of cpg partition
- Uncomment the code that handles stateful cpg's merging together.
- The daemon ignores "start" messages from new (to it), stateful
- (non-zero started_count), cpg members. Because the ignored messages
- are used as a barrier, the ignored (disallowed) nodes must be removed
- (the nodes killed) for domain processing to continue.
-
- Also, set the cman dirty flag so cman will create disallowed nodes
- if stateful/dirty clusters merge. This is necessary to avoid skipping
- fencing of a node after it's merged (the is_cman_member checks).
-
- Also improvements to various log_debug statements.
-
-2008-09-05 Christine Caulfield <ccaulfie at redhat.com>
-
- cman: Initialise variable
- Actually, I thought the loader was supposed to do this...
-
-2008-09-03 David Teigland <teigland at redhat.com>
-
- fenced: joining daemon cpg to bypass fencing
- When the fenced daemon starts, it checks for uncontrolled instances
- of gfs/dlm, and if none are found, it joins a special "daemon" cpg (not
- the fence domain cpg). This join simply tells fenced on other nodes
- that the new node is in a cleanly reset state and they can skip fencing
- it if it's currently a victim.
-
- Currently, fencing is skipped if the victim just joins the cluster, but
- this is not sufficient since a node can join the cluster with uncontrolled
- gfs/dlm instances (it still needs to be fenced).
-
- In cluster2, the groupd cpg filled the role of this new fenced cpg in
- advertising the clean/reset state of a node.
-
-2008-09-03 Bob Peterson <rpeterso at redhat.com>
-
- Changes needed to stay current with libvolume_id.
-
- Changes needed to stay compatible with libvolume_id.
-
-2008-09-03 Christine Caulfield <ccaulfie at redhat.com>
-
- config: Remove stray fprintf Signed-off-by: Christine Caulfield <ccaulfie at redhat.com>
-
- config: fix ldap load bug caused by new objdb ordering in corosync
- The LDAP loader assumed the old obdb behaviour that objects entered into
- the appeared in reverse order. This is no longer true - they are in
- the same order they were created. So this fixes LDAP to match this
- assumption.
-
- cman: cope better with malformed config files
- A config file with
-
- <clusternodes>
- <clusternode/
- ... valid nodes entries
- </clusternodes>
-
- would fool cman into not finding the nodename, even though it exists.
- This fixes that.
-
- cman & config: Move special cases out of config modules
- It was previously the job of the config modules to move
- items like <totem>, <logging> etc from under <cluster> and into the
- root of the tree so that corosync could find them. This is
- obviously absurd.
-
- So I've made cman-preconfig do this now. This means that the
- config modules do only what they should do, read in the
- config tree as they see it into objdb. Any other new
- keys we need to add to /cluster that actually apply to corosync
- can be added in one place.
-
-2008-09-03 Chris Feist <cfeist at redhat.com>
-
- fence: fixed a fence storm with fence_egenera
- 4.8 - bz#437867
- 4.7.z - bz#459501
-
- Committed on behalf of Jim Parsons (jparsons at redhat.com)
-
-2008-09-02 Lon Hohberger <lhh at redhat.com>
-
- cman: Fix qdiskd file descriptor leak
- Patch from Sean E. Millichamp <sean at bruenor dot org>
- rhbz#460645
-
-2008-08-28 Bob Peterson <rpeterso at redhat.com>
-
- GFS2: Make gfs2_fsck accept UNLINKED metadata blocks
- bz 460327
-
- Originally, GFS2 did not use a block type of 2 in the bitmaps,
- so it was considered invalid. However, GFS2 now uses that
- block type to indicate unlinked metadata blocks. This allows
- for cases where an inode is unlinked on one node while still
- open on another node. This fix changes gfs2_fsck so that it
- ignores these blocks (eventually the file system will reclaim
- them) rather than reporting them as errors.
-
-2008-08-28 Christine Caulfield <ccaulfie at redhat.com>
-
- cman: Allow a recently left node to join cleanly.
- If a node leaves cleanly and then joins within the corosync totem timeout
- then odd things can happen and the nodeslist can get inconsistent.
-
- With the rest of the cluster stack on top this is probably quite hard to
- do I suspect.
-
-2008-08-28 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- ccs: deal with xml file format special case
- when talking about specific xpath queries, writing:
- <clusternode name="node4" votes="1" nodeid="4"><fence>..
-
- is not the same as writing:
- <clusternode name="node4" votes="1" nodeid="4">
- <fence>
-
- fix memory overflow in both ccsd and xmlconfig. It is impossible to
- exploit this overflow for anything useful since it's used at the very
- beginning of the startup process when literally nothing is running
- and it causes the XML parser to crash.
-
- ccsd did never show this issue because it was using a pre-allocated
- buffer and it was always big enough to hold the data (even when we were
- writing more than our calculated size).
-
- xml on the other side, always need to allocate.
-
- rgmanger: fix handling of VIP v6
- when using ip to handle ipv6 address, we need to speficify netmask on
- add and remove operations, the same way is done in ipv4 code.
-
- Fix bugzilla: #459582
-
- libdlm: major cleanup
- Move libaislock to contrib/ as it was not built within libdlm for ages.
-
- Simplify libdlm/Makefile (first pass) and adapt the build system to cope
- with %_lt.o.
-
- Fix make/libs.mk to deal with multiple objects linked in a shared
- library.
-
- misc: init scripts clean up
- after discussion on cluster-devel mailing list, each init script should
- include /etc/sysconfig/$init_script_name.
-
- change all init scripts to source /etc/sysconfig/cluster for backward
- compatibility and then source /etc/sysconfig/$init_script_name to give
- priority to proper config file.
-
- remove also warnings about obsolete scripts.
-
- ccs: libccsconfdb header cleanup
- remove unrequired headers and make sure to use only corosync includes to
- build. Nothing in libccs uses openais services.
-
-2008-08-27 David Teigland <teigland at redhat.com>
-
- init.d/cman: use fence_tool -m for two node clusters
- bz 460190
-
- Use the new fence_tool -m option in the cman init script for two node
- clusters. This delays fence_tool join when both nodes aren't members.
- The delay allows initial cluster partitions (due to badly configured
- network/switches) to converge before starting fencing.
-
- fence_tool: new option to delay before join
- bz 460190
-
- Certain network/switch settings cause nodes to form partitioned clusters
- when they start up. Add code to better cope with these initial partitions.
- The network partitions are a particular problem for two_node clusters where
- a node has quorum when it starts up on its own.
-
- This adds a new fence_tool option -m, e.g. fence_tool join -m <seconds>.
- It causes fence_tool to delay the join by up to <seconds> to allow all
- nodes in cluster.conf to become cluster members.
-
- This allows openais on the nodes to all see each other before starting
- the fence domain. So we join the domain *after* the nodes merge into a
- single cluster. If we joined the domain *before* the cluster partition
- merged, then nodes end up being fenced unnecessarily. (This is a similar
- idea to post_join_delay; a delay that gives us time to determine that a
- node in an unknown state is actually ok and doesn't require fencing.)
-
- groupd: fix daemon quit on SIGTERM
- The daemon can quit immediately on SIGTERM if running in LIBCPG mode,
- without checking for groups. (The placeholder groups for blocking old
- cluster2 groupd's get in the way of checking gd_groups.)
-
-2008-08-27 Marek 'marx' Grac <mgrac at redhat.com>
-
- [FENCE] Fix #237266 - LPAR/HMC fence agent
- Minor fix (thanks to brking at us.ibm.com) in get_power_status(). If the state is
- not 'Running' then it is considered off, originally function returns undefined
- value in specific cases (like panic on machine - 'Error').
-
- [FENCE] Fix #448043 - Update man pages for fence agents
- Manual pages for APC, BladeCenter, iLO and WTI where updated mostly with
- information about using ssh and passwords (-x, -z, -i, -S).
-
-2008-08-27 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- config: make more functions static
- no need to export internal functions.
-
- build: fix clean target of contrib section
- make sure we can always clean when building outside the source tree.
-
- cman: init script best to require $time
- I was getting some weird OOPS when using dlm based applications
- on one of the nodes. After a long debugging session it turns out
- that the node had a clock skew of several minutes.
-
- Depend on $time to be executed before we start to soften the problem
- by syncing date on all nodes.
-
-2008-08-26 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: bump library soname to 3.0
- Our shared library API can now be considered stable.
-
- By no means the code is bug free or feature complete but it is one step
- forward towards 3.0 release.
-
-2008-08-26 Christine Caulfield <ccaulfie at redhat.com>
-
- cman: return the correct length of a message
- When I converted to corosync somehow the length of the header
- didn't get subtracted from the total message length as it
- was passed down the stack. This fixes that.
-
-2008-08-25 David Teigland <teigland at redhat.com>
-
- gfs_controld: ignore dlm uevents
- Some people use "gfs" or "gfs2" as the name of the fs, which results
- in dlm lockspaces named the same, and we want to ignore dlm uevents
- for those.
-
-2008-08-22 Lon Hohberger <lhh at redhat.com>
-
- rgmanager: Ancillary fix for rhbz #453000
- See: https://bugzilla.redhat.com/show_bug.cgi?id=453000#c6
-
-2008-08-22 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: add --without_config build option
- disables the building of all config/ subsystem.
-
- at the same time remove some old references of without_ccs from top
- level configure
-
- build: rename --enable_xen to --enable_virt
- xvm supports all virtualization implementations that libvirt supports
- and those are more than just xen.
-
-2008-08-21 David Teigland <teigland at redhat.com>
-
- fenced: add skip_undefined option
- bz 459127
-
- New fenced config option <fence_daemon skip_undefined="1"/>
- would cause fenced to not do startup fencing of nodes with zero
- defined fence methods.
-
- The primary use for this option would be asymmetric cluster configs
- (http://sources.redhat.com/cluster/wiki/asymmetric_cluster_config)
- where client/small/spectator nodes do not join the fence domain
- and have no fencing configured. The problem we have is that even with
- no fencing configured, and not joining the fence domain, other
- nodes may attempt (and fail) to fence these client nodes during
- startup fencing.
-
-2008-08-20 David Teigland <teigland at redhat.com>
-
- dlm_controld: isolate cman and fence code
- in member_cman.c, so that alternative code can be compiled instead.
-
-2008-08-20 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- misc: remove exec bits from different files
- use python setup.py instead of invoking ./setup.py.
-
- build: plugin askant in our build system
- add contrib/askant/Makefile
-
- remove lib and inc sections from setup.py and drive them
- from askant/Makefile instead.
-
- build: add contrib/Makefile
- start plugging askant into contrib
-
- build: create contrib/ top level section
- now that the project is more open to the community, create
- a top level contrib section where to add community contribution.
-
- change build system to cope with it and make it disabled by default.
-
- add option --enable_contrib to top level configure
-
- move askant into contrib/
-
-2008-08-20 Andrew Price <andy at andrewprice.me.uk>
-
- askant: Import askant into tree
- Askant is the beginnings of a file system performance analysis tool. This commit
- imports it into the cluster tree.
-
- Ref: https://bugzilla.redhat.com/show_bug.cgi?id=239656
-
-2008-08-20 Christine Caulfield <ccaulfie at redhat.com>
-
- cman: Return quorum state in a STATECHANGE notification
- This should remove a potential race condition where quorum changes
- after the message is received.
-
- cman: add cman_tool -A to disable load of openais services
- I have moved the loading of openais services to the control of
- the openaisserviceenable configuration module (as it knows better
- which services are available). Loading of this module, and
- consequently the rest of the openais services is now controlled
- by the -A switch.
-
- openais services are enabled by default. -A disables them.
-
-2008-08-19 David Teigland <teigland at redhat.com>
-
- groupd: remove detection of uncontrolled kernel dlm and gfs
- since the dlm_controld and gfs_controld daemons now do that.
-
- fenced: kill the cluster on misbehaving nodes
- Kill cman on other nodes where the fenced process fails.
-
- gfs_controld: kill the cluster on misbehaving nodes
- Kill cman on other nodes where the gfs_controld process fails.
- Shutdown cman locally if we find uncontrolled filesystems at startup.
-
- dlm_controld: open dlm-monitor misc device
- if it exists, as it will in future kernels. This allows dlm-kernel
- to detect if dlm_controld fails, and stop lockspaces in response.
-
- Also rework/simplify handling of all misc devices; depend on udev
- to create the device nodes.
-
- Adds /dev/misc/dlm-monitor to the dlm's udev config file.
-
-2008-08-19 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- qdisk: fix sysfs path diving
-
-2008-08-15 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- qdisk: allow scan of sysfs to dive into first level symlinks
- Some kernels populate /sys/block with symlinks when others don't.
-
- Allow sysfs to dive into symlinks at the top level to handle both.
-
- libccs: add support for /child::*[%d]/ for xpathlite
- xpathlite did not understand the concept of child::*[%d]
- within a path (ex: /cluster/rm/child::*[1]/@name).
-
- This operation is required by rgmanager to load the service tree.
-
-2008-08-14 David Teigland <teigland at redhat.com>
-
- gfs_controld: fix fs_notify during recovery
- Wasn't processing mountgroup again after an initial failed fs_notify,
- so no retry was happening. Also, the process_mountgroup check was
- wrongly skipping the apply_changes phase sometimes at the very start
- because there was no change struct yet, which would cause a segfault.
-
- dlm_controld: fix nodeid in fs_result
- was copying the wrong value so nodeid returned was zero
-
- dlm_controld: kill the cluster on misbehaving nodes
- Kill cman on other nodes where the dlm_controld process fails.
- Shutdown cman locally if we find uncontrolled lockspaces at startup.
-
-2008-08-14 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: define legacy_code=1 on clean target
- make sure to always clean everything around even when switching to/from
- legacy_code
-
- ccs: move ccs/daemon to config/daemons/ccds and mark it legacy code
- remove support for --without_ccs. ccs is now fully obsoleted and you
- need to specify --enable_legacy_code to build it.
-
- adapt top level Makefile to deal with cluster/ccs removal.
-
- fix build dependencies around cman/lib that's now required before
- config: target.
-
- move ccsd man page in config/daemons/man.
-
- ccs: move ccsais plugin to config/plugins/ccsais and mark it legacy code
-
- ccs: move libccscompat into config/libs and mark it legacy code
-
- config: move generic documenation and man pages to config/man
-
- ccs: move comm_headers.h to ccs/daemon
- comm_headers.h defines the protocol to talk to ccsd.
-
- move it to daemon and fix inclusion paths for the users.
-
- ccs: move debug.h to ccs/daemon
- ccsd is the only user for debug.h. No need to keep it in a generic
- include dir.
-
- ccs: libccscompat don't include unrequired header
- libccscompat doesn't require debug.h
-
- cman: switch default config parser to xmlconfig
-
- config: move ccs/ccs_tool to config/tools/ccs_tool
- ccs_tool is now a generic tool for handling configuration.
-
- Move it to a proper location.
-
- cman: make ccsd startup optional and allow override of config loader
- implement support for CONFIG_LOADER envvar to select what config parsers
- should cman use.
-
- start ccsd only of we explicity select ccsconfig CONFIG_LOADER.
-
- perform basic sanity check for other loaders into init script.
-
- add some documentation on what loaders are available.
-
-2008-08-14 Christine Caulfield <ccaulfie at redhat.com>
-
- cman: Silence some compiler warnings.
- This only show up with some compiler versions, but I don't like
- compiler warnings!
-
- cman" load openais services by default
- For compaibility with cluster2 we load a default set of openais
- services with cman/corosync.
-
- You can disable these by setting <cman disable_openais="0"/>
- and adding your own services as needed.
-
-2008-08-13 David Teigland <teigland at redhat.com>
-
- dlm_controld: fs_register and fs_result fixes
- dlmc_fs_register now returns -EALREADY if the name is already registered.
- dlmc_fs_result now returns the nodeid in the field already provided.
-
-2008-08-13 Christine Caulfield <ccaulfie at redhat.com>
-
- cman: fix objdb-destroying typo
- object_find_destroy is NOT spelled object-destroy!
-
- cman: Fix find_handle leak Signed-off-by: Christine Caulfield <ccaulfie at redhat.com>
-
-2008-08-13 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: bump kernel requirement to 2.6.27
- gfs-kernel module now needs 2.6.27.
-
-2008-08-12 Abhijith Das <adas at redhat.com>
-
- gfs-kernel: bug 450209 - addendum to previous patch. Removes extraneous lock_dlm_plock.c
- I accidentally added this file to the patch I posted earlier to this bug. It's just
- an extra file at this point; Makefile doesn't even compile it. This commit removes it.
-
- gfs-kernel: Bug 450209: Create gfs1-specific lock modules + minor fixes to build with 2.6.27
- gfs1 has its own lock modules now and is no longer dependent on gfs2.ko
- or lock_nolock.ko or lock_dlm.ko.
-
- This commit contains the lock modules patch and the following fixes to
- make gfs1 build with Steve's git tree.
-
- - change all instances of <asm/semaphore.h> to <linux/semaphore.h>
- - change all calls to permission() to inode_permission()
- - change all calls to remote_llseek() to generic_file_llseek_unlocked()
-
- I have been able to successfully compile with the patch against Steve's git
- tree, insmod the gfs.ko module, and mount a nolock filesystem using it. I don't
- have a cluster running upstream bits, so I couldn't test the module in a
- cluster.
-
-2008-08-12 David Teigland <teigland at redhat.com>
-
- gfs_controld: queries in libgroup mode
- Most of the query info doesn't apply when running in LIBGROUP mode,
- but some of the basic info can be provided.
-
- libdlm: handle truncated device names
- When lockspace names are over 15 characters long, they result in a
- device name that's over 19 characters long, e.g. dlm_0123456789ABCDEF.
- Sysfs truncates device names at 19 characters, so the device name for
- this lockspace is /sys/class/misc/dlm_0123456789ABCDE, which udev also
- uses to create the device node, /dev/misc/dlm_0123456789ABCDE.
-
- So, when libdlm waits for udev to create the device node, it needs to look
- for this truncated name. It then creates and removes symlinks with the full
- lockspace name.
-
- Joel Becker identified the problem and came up with this solution.
-
-2008-08-12 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: add support for corosync
- rename aisexecbin to corosyncbin
-
- add options for corosyncincdir and corosynclibdir and propagate them
- across all Makefile
-
-2008-08-12 Christine Caulfield <ccaulfie at redhat.com>
-
- cman (mainly): use corosync
- This patch changes cman to use corosync, the new split-up version
- of openais. It's mainly name changes, and changes to accommodate
- the new corosync API.
-
- It also changes the includes of other services from openais/ to corosync/
- though I can't guarantee I've caught all of them.
-
-2008-08-11 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- libccs: add support for /child::*[%d]/ for xpathlite
- xpathlite did not understand the concept of child::*[%d]
- within a path (ex: /cluster/rm/child::*[1]/@name).
-
- This operation is required by rgmanager to load the service tree.
-
- rgmanager: unbreak locking in clulib
- commit 1edb73bd098500d459c16797da2377a59f1ef180 introduced a set of
- checks for read/write operations.
-
- the error checks in cman.c where wrong and caused endless loops in
- rgmanager startup.
-
- fix those checks by making them "dumb" since we don't really care
- about the result of the operation directly, but other bits of code
- will take care of those.
-
-2008-08-08 David Teigland <teigland at redhat.com>
-
- dlm_controld: queries in libgroup mode
- Most of the query info doesn't apply when running in LIBGROUP mode,
- but some of the basic info can be provided.
-
- fenced: finishing off query stuff
- various loose ends
-
- group_tool: use mode from groupd
- to determine whether it should query groupd (old mode) or query
- the individual daemons (new mode).
-
-2008-08-08 Bob Peterson <rpeterso at redhat.com>
-
- mkfs.gfs2: should have an optional fs size parm
- bz 450764
-
- This patch fixes two problems with the previous patch for
- an optional "blocks" parameter to mkfs.gfs2. The bugs
- are: (1) If the blocks specified is too big, it gave a wrong
- message. This fixes the message and prints out what the
- numbers are (to help the user get it right). (2) If the
- number of blocks was specified, the device size was reported
- incorrectly.
-
-2008-08-08 David Teigland <teigland at redhat.com>
-
- dlm_tool: handle all join flags
- Add the ability to set all join flags, and print the flags being
- used when dlm_tool join is run.
-
- libdlm: remove device node creation/removal
- It's unnecessary as udev has been doing it for quite a long time.
- (Doing this ourselves also won't work correctly in the future with a
- pending dlm patch that will allow multiple creates and only the final
- release actually releases the lockspace.)
-
-2008-08-08 Lon Hohberger <lhh at redhat.com>
-
- [rgmanager] Re-fix permissions bits broken in last commit
- Remove execute flag from file permissions.
-
- [rgmanager] Fix resource agent metadata and un-break 'make check' target
-
-2008-08-08 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- config: fix objdb2xml filtering
- ais/corosync has a set of extra information on the toplevel
- tree that includes <service service_id="" handle=""
- that contains values for service_id and handle that cannot
- be converted into XML data.
-
- We were filtering for <service to avoid importing non-compliant data
- but that was catching also /cluster/rm/service making it impossible
- to use rgmanager.
-
- Change the filter to match explicitly for service_id and handle.
-
-2008-08-07 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- cman: make sure not to umount configfs when there are other users
- Fix bugzilla: #457991
-
- build: fix ccs_test symlink install target
- previous target was copying the whole ccs_tool into ccs_test again.
-
- ccs: turn more ccs_tool code into legacy code
- the update functionality connects to ccsd that is now legacy code.
-
- filter this out when build normal ccs_tool.
-
-2008-08-06 David Teigland <teigland at redhat.com>
-
- gfs_controld: register with dlm_controld earlier
- dlm_controld now allows us to register interest in a lockspace
- before the lockspace is created, so do it right away instead of
- after mount(2) completes, which has the potential of being too late.
-
- dlm_controld: allow early fs_register
- fs_controld daemons need to register their interest in a lockspace
- during startup before they've actually joined the lockspace, which
- means we need to record the registration before the lockspace exists
- and then set the registered flag when it's created.
-
-2008-08-05 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: properly respect non standard libdir and incdir
- We allow users to set libdir and incdir to non standard locations.
- Those values need to be propagated properly within the build system
- to have a higher priority than system locations but lower than
- specific paths.
-
- qdisk: port to new logsys api
- switch to new logsys api and fix a bug where debug output was always
- enabled.
-
-2008-08-04 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- ccs: move to the new logsys init API
- Change ccs daemon to use the new logsys API.
-
-2008-08-04 Christine Caulfield <ccaulfie at redhat.com>
-
- cman: tidy objdb_get_int
- Make objdb_get_int take a default value tat gets filled in then there
- is no value in the objdb. This tidies the situation hugely as well
- as fixing bugs that arose because of the ambiguous nature of the
- function's returned values.
-
-2008-08-04 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: drop "all" dependency from install: targets
- this change should address the last problem reported by
- Joel.
-
- build: fix several issues related to install and build targets
- Several users have been reporting issues building and installing
- our source from an nfs mount.
-
- There are two related issues in this scenario (P = Problem):
- P1) nfs servers often drops root privileges to nobody (very often required
- for install:)
- P2) our build system had issues in the past with linking against static
- libraries.
-
- the combination of the two ends with a user "nobody" trying to link
- one of our tools at install time and of course it fails because the
- nfs server would refuse "nobody" to access a directory/file that
- the user owns.
-
- We address this issue by doing a set of simple changes around
- (A = Action):
-
- A1) Remove all PHONY targets so that at install time we do not re-link
- bits that are already updated.
-
- A2) Introduce a more detailed dependecy tracker for static libraries by
- using LDDEPS var within the affected Makefiles. This replaces the
- requirement of PHONY targets in A1).
- Note: changes to header files are already tracked by .d files,
- LDDEPS tracks changes to the binaries.
-
- A3) Make sure that all target that requires static libs are updated to
- use LDDEPS.
-
- Extra benefits from this change (B = Benefit):
-
- B1) no relink at install time.
-
- B2) install target does not require any devel library installed on the
- target system because of B1
-
- B3) install target can be executed in parallel from several machines.
- For example when installing on N machines from the same nfs share.
- This was an issue before because of a race condition now fixed by B1.
- (two or more machine could try to link the same binary at the same
- time and fail)
-
- The only con is that A2 requires a bit more manual work on tracking
- linking against static libraries, but the changes in that area are
- not frequent enough to hold this fix.
-
-2008-08-01 Ryan O'Hara <rohara at redhat.com>
-
- ip.sh: add sleeptime parameter
- Allow user to specify amount of time to sleep after removing
- and IP address ('stop' command). The sleeptime parameter is
- specified in number of seconds. Default is 10 seconds.
- Setting sleeptime to zero will result in no sleep.
-
-2008-08-01 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- fence: remove unrequired headers from rackswitch
- also fix a fauilure to build with 2.6.27 kernel headers
-
-2008-08-01 Christine Caulfield <ccaulfie at redhat.com>
-
- cman: exit if configuration check fails.
- The error return from read_cman_config wasn't being
- checked, so configuration errors could cause
- segfaults later on in startup.
-
- cman: Revert dirty patch
- Revert patch 288ab73e51f51ce174f51dc2fc67c6dd1fe03e85 as it's
- dangerously wrong and based on several misunderstandings.
-
- see bz#443358 for mroe information
-
-2008-07-31 David Teigland <teigland at redhat.com>
-
- fence_tool: add domain member checks
- using libfenced library. Also clean up the code and logic for waiting
- and timeouts.
-
-2008-07-31 Christine Caulfield <ccaulfie at redhat.com>
-
- qdisk: fix compile error when building without debug.
-
-2008-07-31 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- bindings: fix CCS.pm doc
- purely cosmetic change to doc file.
-
- build: fix bindings build when using external object tree
- Stop symlinking files that are generated on the fly in objdir.
-
- Propagate Makefile.bindings into objdir.
-
-2008-07-31 Bob Peterson <rpeterso at redhat.com>
-
- gfs2_edit: Improved gfs journal dumps
- bz 450004
-
- This patch adds three important improvements to journal dumps:
-
- 1. It now recognizes and dumps GFS1 log descriptor continuation
- blocks and dumps them correctly.
- 2. It now prints a marker where the journal wrapped so you
- can locate the most recently added entries easily.
- 3. The absolute block number of the journal block is now
- printed with the entries (in addition to the journal offset).
- This makes it easier to find the correct journal block you
- need to see.
-
-2008-07-30 David Teigland <teigland at redhat.com>
-
- gfs_controld: use group_mode detection
- The new default is to use group mode detection from groupd.
- This is -g2 (command line) or <group groupd_compat="2"> (cluster.conf).
-
- dlm_controld: use group_mode detection
- The new default is to use group mode detection from groupd.
- This is -g2 (command line) or <group groupd_compat="2"> (cluster.conf).
-
- fenced: use group_mode detection
- The new default is to use group mode detection from groupd.
- This is -g2 (command line) or <group groupd_compat="2"> (cluster.conf).
-
- groupd: detect group_mode
- command line -g2, or cluster.conf <group groupd_compat="2"/>
-
- If old cluster2/RHEL5 nodes are in the cluster, cluster3 nodes will
- adopt the groupd compatibility mode to interoperate with them (this
- is the compat mode you get directly with -g1 or groupd_compat="1").
-
- If no cluster2/RHEL5 nodes are in the cluster, cluster3 nodes will
- use the new group mode that doesn't go through libgroup, and is not
- compatible with cluster2/RHEL5 nodes (this is the non-compat mode
- you get directly with -g0 or groupd_compat="0").
-
- This new mode (groupd_compat="2") is the default to favor the case of
- rolling cluster2->cluster3 upgrades, where cluster2 nodes and cluster3
- nodes need to interoperate in a single cluster for a limited time. After
- all cluster2 nodes have been upgraded to cluster3, groupd_compat="0" can be
- added to cluster.conf the next time the entire cluster is taken down.
-
- It is still best to set groupd_compat="0" in cluster.conf for:
- . new clusters that don't require compatibility with cluster2 nodes
- . old clusters that are taken offline while the nodes are all upgraded
- from cluster2 to cluster3
-
-2008-07-30 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- init: standardize init scripts to /etc/sysconfig/cluster
- Allow users to set everything from one single external config file
- rather than several.
-
- Retain backward compatibility by sourcing the old files and warning
- about the change.
-
- If a config option is present in both old and new file, the value from
- the new file will be used.
-
- misc: clean up "char const *" vs "const char *"
- this is cosmetic from a C point of view, but the perl xs preprocessor
- complains about it.
-
- while at it, clean up the typemap file that can be empty now.
-
- build: clean up perl bindings build system
- create a generic make/binding-passthrough.mk to use Makefile.bindings
- because the final Makefile is create by perl
-
- create a generic make/perl-binding-common.mk to include basically all
- targets that can be shared by different bindings
-
- simplify bindings/perl/Makefile to use only binding-passthrough.mk
-
- create bindings/perl/ccs/Makefile.bindings to use bindings
- infrastructure
-
- generate CCS.pm and META.yml from respective .in files to change data at
- build time (for example release version)
-
-2008-07-29 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- bindings: improve Cluster::CCS description
- improve Cluster::CCS description
-
- bindings: add first cut of perl Cluster:CCS
- Add new perl binding for libccs.
-
- This is a first version and while the code works fine, the build system
- and many other details are still not clean.
-
- Revert "test commit"
- This reverts commit 900bca2d2bc1f03d22623ea5cbc4329d7f0799b9.
-
- test commit
- test commit
-
-2008-07-29 Christine Caulfield <ccaulfie at redhat.com>
-
- [CMAN] Display the node's votes in cman_tool status
- I'm not sure how this one slipped the net.
-
- [CMAN] pass COROSYNC_ env variables to the daemon
- cman_tool makes its own environment for the aisexec daemon to
- use but some newer config modules like to have configuring environment
- variables. So now cman_tool passes down all environment variables
- starting with COROSYNC_ down.
-
- To make this work, I've also changed the plugins that currently
- take environment variables to name them COROSYNC_.
-
- Yes, I know we're not using corosync yet, but this is just
- one less thing we;ll need to remember to change next week or
- whenever.
-
-2008-07-29 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- config: allow users to override default config file in xmlconfig
- By setting CLUSTER_CONFIG_FILE either in the enviroment it is possible
- to use an alternate cluster.conf.
-
-2008-07-28 Ryan O'Hara <rohara at redhat.com>
-
- cman: fix typo (#!/bin/bash) from previous commit
- Line 0 of the cman init script was #!/BIN/BAsh?
-
- cman: add option to init script to prevent joining the fence domain
- New sysconfig variable FENCE_JOIN will control whether or not the
- node joins the fence domain. This variable can be set to either
- value "yes" or "no". When FENCE_JOIN is set to "no", the init script
- will not attempt to join the fence domain. Any other value is
- equivalant to "yes", in which case the init script will attempt to
- join the fence domain. (BZ #455598)
-
-2008-07-28 Christine Caulfield <ccaulfie at redhat.com>
-
- [CMAN] Fix overridden node names
- cman-tool join -n <nodename> was failing because it assumed
- an old object context. It now uses the nodeslist functions
- I wrote for the purpose.
-
-2008-07-28 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- rgmanager: init script does not need network config
- rgmanager init LSB header already express the requirement for network
- via Required-Start: cman that in chain Required-Start: $network.
-
- Lack of network will not start cman and as consequence rgmanager.
-
- cman: init script should not user cluster.conf directly
- fence_xvmd function needs to query the config to know if the daemon
- should start or not.
-
- switch an xmllint call to a ccs_tool query and remove hardcoded
- dependency on cluster.conf
-
-2008-07-25 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- rgmanager: fix clean target
- stub clean target in init script Makefile
-
-2008-07-25 Ryan O'Hara <rohara at redhat.com>
-
- gfs_mkfs: change the way we check to see if a device is mounted
- New method will attempt to open device with O_EXCL flag. If open()
- responds with EBUSY, mkfs will die. This indicates that the device
- is either mounted or part of a LVM volume. (BZ #426298)
-
-2008-07-25 Bob Peterson <rpeterso at redhat.com>
-
- gfs2_edit: was parsing out gfs1 log descriptors improperly
- GFS2 log descriptors have 8 bytes per entry which represents
- a block number. GFS1 log descriptors have a small structure
- that is 16-bytes, the first 8 bytes of which is the block.
- So gfs2_edit was mistaking the extra 0x00000000 for a GFS2
- end-of-block marker when it shouldn't have. This fixes it.
-
- gfs2_edit: Ability to enter "journalX" in block number.
- With gfs2_edit, you can position to the "block #" field and
- press <enter>, then enter a block number to jump to.
- You may also enter a keyword, like "root" to jump to the
- root directory, "rindex" to jump to the rindex, etc.
- Most keywords worked, but you could not enter "journal0"
- to jump to the first journal until this fix made it possible.
-
-2008-07-25 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- fence: port scsi agent to use ccs_tool query and drop XML::LibXML requirement
- The new ccs_tool query is able to answer to the queries from
- fence_scsi*.
-
- Drop the need of XML::LibXML.
-
- Use ccs_tool query directly.
-
- Abstract from the need of parsing cluster.conf that is not the
- authoritative config file anymore.
-
- Drop unrequire check_config_nodes that's already embedded in the need of
- cman to run this code.
-
- fence: simplify init script
- fence_scsi needs cman to run. Verify that cman is running
- as first thing, before querying for config information that
- are now stored in cman/aisexec.
-
- cman already guarantees that all nodes have a nodeid. Drop
- this redundant check.
-
- rgmanger: remove check on cluster.conf from rgmanager init script
- cluster.conf is not the only authoritative configuration file anymore.
- LDAP and others could be in place.
-
- Remove the check and allow rgmanager to start.
-
- Revert "rgmanger: remove check on cluster.conf from rgmanager init script"
- This reverts commit 691c72052655c0f7c8142c35145237e122ae6b86.
-
- Revert "fence: simplify init script"
- This reverts commit 6a0647657348dd732615b7a0b7d6aad89c85b93a.
-
- Revert "fence: port scsi agent to use ccs_tool query and drop XML::LibXML requirement"
- This reverts commit e968098fa53e14d1cc9e60c42a4102674ecb51d2.
-
-2008-07-25 Andrew Price <andy at andrewprice.me.uk>
-
- fence: port scsi agent to use ccs_tool query and drop XML::LibXML requirement
- The new ccs_tool query is able to answer to the queries from
- fence_scsi*.
-
- Drop the need of XML::LibXML.
-
- Use ccs_tool query directly.
-
- Abstract from the need of parsing cluster.conf that is not the
- authoritative config file anymore.
-
- Drop unrequire check_config_nodes that's already embedded in the need of
- cman to run this code.
-
- fence: simplify init script
- fence_scsi needs cman to run. Verify that cman is running
- as first thing, before querying for config information that
- are now stored in cman/aisexec.
-
- cman already guarantees that all nodes have a nodeid. Drop
- this redundant check.
-
- rgmanger: remove check on cluster.conf from rgmanager init script
- cluster.conf is not the only authoritative configuration file anymore.
- LDAP and others could be in place.
-
- Remove the check and allow rgmanager to start.
-
-2008-07-24 Lon Hohberger <lhh at redhat.com>
-
- [qdisk] Make stop_cman="1" work if heuristics fail during initialization
- Bugzilla #455865
-
-2008-07-24 Andrew Price <andy at andrewprice.me.uk>
-
- [GFS2] libgfs2: Build with -fPIC
- Build libgfs2 with -fPIC to enable linking on x86_64 and others.
-
-2008-07-24 Bob Peterson <rpeterso at redhat.com>
-
- gfs2_fsck dupl. blocks between EA and data
-
- RGRepair: Account for RG blocks inside journals
-
- Better error reporting in gfs2_fsck
-
- Shrink memory 3: smaller link counts in inode_info
-
- Shrink memory 2: get rid of 3 huge in-core bitmaps
-
- Shrink memory 1: eliminate b_size from pseudo-buffer-heads
-
- Deleted unused function print_map
-
- Fix some bad references to gfs_tool and gfs_fsck
-
- gfs_fsck crosswrite for block number sanity checking
-
- Speed up userspace bitmap manipulation code.
-
-2008-07-24 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- build: update .gitignore
- Add some more files we can ignore
-
-2008-07-23 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [BUILD] Cleanup groupd makefile
-
-2008-07-23 Ryan McCabe <rmccabe at redhat.com>
-
- fence: update apc snmp agent
- Pushing update to fix bz447414 for jparsons
-
-2008-07-22 David Teigland <teigland at redhat.com>
-
- groupd: use logsys
- Add logsys usage and configuration, following fenced pattern.
-
-2008-07-22 Lon Hohberger <lhh at redhat.com>
-
- [rgmanager] Add optional save/restore to vm resource
- This patch adds optional save/restore support to virtual machines.
- Patch Federico Simoncelli federico dot simoncelli at gmail dot com
-
-2008-07-22 David Teigland <teigland at redhat.com>
-
- dlm_controld/gfs_controld: add logging.c file
- which I forgot to add in previous commits.
-
-2008-07-22 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [BUILD] Cleanup linking order for logsys
- Collect all openais libs into their own LDFLAGS entry
-
- Linking to logsys requires pthread
-
- [FENCE] Fix fence_apc_snmp logging
- Move log file together with all the others when invoked in verbose mode.
-
- [BUILD] Fix LOGDIR usage
- LOGDIR was duplicate of logdir. Remove the duplication and use logdir as
- it should be.
-
- Also add logdir info to fencebuild, required for fence_apc_snmp
-
- [FENCE] Sync fence_apc_snmp from RHEL47 branch
-
-2008-07-22 Bob Peterson <rpeterso at redhat.com>
-
- Print log header flags for gfs journals.
-
-2008-07-21 David Teigland <teigland at redhat.com>
-
- gfs_controld: use logsys
- Add logsys usage and configuration, following fenced pattern.
-
- dlm_controld: use logsys
- Add logsys usage and configuration, following fenced pattern.
-
- fenced: munge logging
- to prepare for copying it to the other daemons.
-
-2008-07-18 David Teigland <teigland at redhat.com>
-
- fenced: complete messages copy start messages
- use the same formats and functions for handling "complete" messages
-
- dlm_controld: improved start messages
- Copy the improved start/sync message formats from fenced/gfs_controld,
- which allows the messages to be extended in the future without breaking
- compatibility.
-
- fenced: debug logsys options
- Enable/disable logsys debugging in the following ways, in order of priority:
- . command line -L [0|1]
- . environment variable FENCED_DEBUG_LOGSYS [0|1]
- . cluster.conf logging/logger_subsys/debug [off|on]
- . cluster.conf logging/debug [off|on]
-
- fenced: munge config option code
- to match the code in other daemons.
-
- fenced: improved start messages
- Copy the improved start/sync message formats back from gfs_controld,
- which also makes it simple to sync fencing history to new nodes.
-
- gfs_controld: close dlm_controld connection
- when we get a poll error from it
-
-2008-07-18 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [BUILD] Fix logrotate snippet filename
-
- [BUILD] Fix ccs_tool linking dir order
-
-2008-07-17 David Teigland <teigland at redhat.com>
-
- gfs_controld: byte swap ids earlier
- before they are used in match_change.
-
-2008-07-17 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [RGMANGER] Fix call to ccs_tool
-
- [RGMANAGER] Port ccs_get to proper ccs_tool output
-
- Revert "[RGMANAGER] Use proper ccs_tool query output"
- This reverts commit 2eaca4f9e31409f110ae318d1f192673dd744e33.
-
- [CCS] Inflict hopefully last compat issues love to ccs_t*
-
- [BUILD] Fix ccs_tool/ccs_test build with new compat code
-
- [RGMANAGER] Use proper ccs_tool query output
-
-2008-07-17 Christine Caulfield <ccaulfie at redhat.com>
-
- [CCS] Make ccs_tool/ccs_test more consistent
- After much chatter, these tools are more consistent.
-
- ccs_test exists for old and new code, and always returns the
- old format output.
- ccs_tool query always returns new format output and the -c
- flag has been removed.
-
-2008-07-17 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [BUILD] Fix race condition in oldconfig update/execution
-
-2008-07-17 Christine Caulfield <ccaulfie at redhat.com>
-
- [CCS] Set return status on failure
-
- [CONFIG] Add some more errnos to libccsconfdb
-
-2008-07-17 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [RGMANAGER] Port smb resource agent to ccs_tool
- Fix also a wrong arg in get_service_ip_keys in config-utils.sh.in
-
-2008-07-16 David Teigland <teigland at redhat.com>
-
- gfs_controld: add missing endian conversion
- for id_info structs in start messages
-
- gfs_controld: change start message from new members
- Have new nodes include an id struct for all members so we have the
- extra verification step when matching start messages to changes.
-
-2008-07-16 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [RGMANAGER] Port all resource agents to new ccs interface
-
- [CCS] Kill obsolted ccs_test
-
-2008-07-16 Christine Caulfield <ccaulfie at redhat.com>
-
- [CCS] add -c flag to ccs_tool query
- The -c (compat) flag displays the query results in the
- same format emitted by the old "ccs_test" tool.
-
-2008-07-16 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [BUILD] Fix doc install target when building objects outside source tree
-
- [BUILD] Fix ccs.h include path
-
- [BUILD] Add ccs_test replacement when building legacy_code
-
- [BUILD] Implement --enable_legacy_code in the build system
-
- [CCS] Fix LEGACY_CODE ifdef
-
-2008-07-16 Christine Caulfield <ccaulfie at redhat.com>
-
- [CCS] Fold ccs_test into ccs_tool and tidy
- Move all the code from ccs_test into ccs_tool and make it
- switch depending on argv[0]. Also add ccs_tool query that
- does full XPath queries on confdb.
-
- When build with LEGACY_CODE set ccs_tool will behave as it
- used to, talking to ccsd. Without that it will use the
- new confdb system and assume that ccsd is NOT used for
- distribution of cluster configurations.
-
-2008-07-15 Christine Caulfield <ccaulfie at redhat.com>
-
- [CMAN] Don't use logsys in config modules.
-
- Revert "[CMAN] Don't use logsys in config modules."
- I'm not sure how those deletes got in there, sorry
-
- This reverts commit 41e7b5a1db20a86d6f5306afeab89944f44bc7b2.
-
- [CMAN] Don't use logsys in config modules.
- I must not use libraries in config modules
- I must not use libraries in config modules
- I must not use libraries in config modules
- I must not use libraries in config modules
- I must not use libraries in config modules
- I must not use libraries in config modules
- I must not use libraries in config modules
- I must not use libraries in config modules
- I must not use libraries in config modules
- I must not use libraries in config modules
-
- [CCS] Set errno when an error occurs.
- Set errno to the error code to be consistent with other libraries.
-
-2008-07-14 David Teigland <teigland at redhat.com>
-
- dlm_controld: set id before recovery
- The lockspace id needs to be set in the kernel before starting recovery
- in the kernel, which depends on a valid id.
-
- fenced: fix logsys define
- name is LOG_MODE_FILTER_DEBUG_FROM_SYSLOG
-
- fenced: enable new logsys mode flag
- since it's been commited to openais svn
-
-2008-07-14 Christine Caulfield <ccaulfie at redhat.com>
-
- [CMAN] Remove some spurious prints
- They were left in after debugging.
-
-2008-07-14 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [MISC] Fix build with newer toolchain
-
-2008-07-14 Fabio M. Di Nitto <fabbione at cerberus.int.fabbione.net>
-
- [BUILD] Clean extra kernel modules files
-
-2008-07-11 David Teigland <teigland at redhat.com>
-
- groupd: sync daemon setup/structure with others
- This daemon is defunct, but will continue to exist for back compat cases,
- so put code in sync with other daemons.
-
- fenced: tune logsys settings
- put errors in fenced.log (in addition to syslog) by default
- keep debug out of syslog by default (commented out pending openais commit)
-
-2008-07-11 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [MISC] Create and install logrotate file
- With daemons writing their own log files, we want to rotate them
- properly.
-
- Add logrotate snippet in doc/ for who wants to do it manually
-
- Install it in logrotate dir (you will need to rerun configure for this
- to be set properly)
-
- Adapt build system to propagate info around
-
-2008-07-10 David Teigland <teigland at redhat.com>
-
- fenced/dlm_controld: fix quorum waiting
- Fix how fenced and dlm_controld check for quorum, and how they verify
- that quorum is adjusted for all the necessary failures.
-
- Fix how dlm_controld creates configfs entries for existing cman members.
-
- fenced/dlm_controld/gfs_controld: ccs/cman setup
- Consistently set up and clean up ccs and cman.
-
-2008-07-10 Christine Caulfield <ccaulfie at redhat.com>
-
- [CONFIG] Add a man page for confdb2ldif
- and make the program do as the man page says.
-
-2008-07-10 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [BUILD] Plug confdb to ldap tool
-
-2008-07-10 Christine Caulfield <ccaulfie at redhat.com>
-
- [CONFIG] rename ldap config generator
- Rename loadldap to confdb2ldif. This more accurately
- expresses what the program does. I've also added a comment
- to the generated ldif file.
-
-2008-07-10 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [CONFIG] Fix loadldap include
-
-2008-07-09 David Teigland <teigland at redhat.com>
-
- gfs_controld: add journal for new node
- Wasn't adding a journal struct for a new node.
-
- gfs_controld: add query code
- Also let group_tool query new daemons.
-
-2008-07-09 Christine Caulfield <ccaulfie at redhat.com>
-
- [CONFIG] Add ldap loader
- Add a new tool to load an existing cluster config into LDAP. This
- is as incomplete as the schema at the moment, but it will allow
- you to add nodes and some very basic fencing devices.
-
- It uses libconfdb so it can migrate either a running system
- or a cluster.conf file.
-
-2008-07-07 David Teigland <teigland at redhat.com>
-
- gfs_controld: support queries from gfs_control
- through libgfscontrol
-
- fenced: link with liblogsys
- Makefile was missing -llogsys and had duplicate -lcpg
-
- fenced/fence_node: use SYSLOGLEVEL
- cluster config setting instead of logsys definitions.
-
-2008-07-07 Christine Caulfield <ccaulfie at redhat.com>
-
- [CONFIG] Add some more ldap comments
- Show what sort of cluster.conf file, the ldap example maps onto.
- Fix some schema errors.
-
-2008-07-04 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [MISC] Fix logging file query
- This fix the config key from filename to logfile as it is supposed to
- be.
-
- I misread the openais documentation on this specific bit and ended using
- filename instead of logfile.
-
-2008-07-04 Christine Caulfield <ccaulfie at redhat.com>
-
- [CMAN] Remove some redundant code.
-
-2008-07-03 David Teigland <teigland at redhat.com>
-
- fence_node: use simple logsys api
- instead of the macros.
-
- fenced: use logsys
- - Setup ccs connection once at the start and keep it open.
- - Read logging configuration from ccs.
- - Replace calls to syslog with calls to logsys.
- - Direct debug statements to logsys.
- - cman setup uses cman_is_active
- - cman setup retries cman_init and cman_is_active
-
-2008-07-03 Christine Caulfield <ccaulfie at redhat.com>
-
- [CMAN] Fix logging options
- Fix up the logging for the cman plugin so that it consistently
- honours both settings in cluster.conf and 'cman_tool join -d'.
-
- This has exposed a couple of bugs in openais which should be
- addressed shortly.
-
-2008-07-03 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [MISC] Update .gitignore
-
- [BUILD] Add make oldconfig target
- configure invokation now creates a .configure.sh script file at the top
- level of the tree. It contains a shell script to reproduce the last
- invokation of configure and it allows to add extra config parameters.
-
- Note that .configure.sh is updated each time you invoke configure.
-
- Add also a make oldconfig that will execute the script.
-
- [MISC] Use default configured SYSLOGLEVEL across the tree
-
- [BUILD] Allow users to configure default built-in syslog level
-
- [BUILD] Fix telnet_ssl build
-
- [BUILD] Fix install of telnet_ssl
-
-2008-07-02 Lon Hohberger <lhh at redhat.com>
-
- [fence] Make fence_xvm[d] use normal log levels
- It used LOG_NOTICE for info-level and LOG_INFO
- for debug-level notices due to noise from logsys
- which has now been resolved in the trunk of
- openais.
-
-2008-07-02 Marek 'marx' Grac <mgrac at redhat.com>
-
- [FENCE] Bug #448822: fence_ilo doesn't work with iLO
- New fencing agent for iLO used ssh/telnet to connect, but unfortutely
- there is a problem with power off. This is why we need to use SSL connection
- and RIBCL commands. As there is no (?) telnet with ssl connection in RHEL we
- need one to be able to use same infrastructure as in other agents. This agent
- was not tested with RIBCL version < 2.0 (these part where just ported from the
- old perl fencing agent)
-
- @todo: we have to put telnet_ssl.py somewhere, I'm not sure where
-
-2008-07-02 Christine Caulfield <ccaulfie at redhat.com>
-
- [CMAN] Only do timestamp check for older nodes.
- 6.1.0 nodes set the dirty flag, so there's no point
- in checking the join timestamp as it just propogates
- the potential problems that the dirty flag was meant to fix.
-
-2008-07-01 Christine Caulfield <ccaulfie at redhat.com>
-
- [CMAN] Add a config update callback
-
-2008-07-01 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [MISC] Documentation cleanup
- Move all licence and copyright bits into doc/
-
- Add doc/Makefile and use DOCS= infrastructure to install all
- documentation.
-
- [BUILD] Install ldap schemas and example in document directory
-
- [BUILD] Add install/uninstall snippets for documents
-
- [BUILD] Fix docdir default path
-
- [BUILD] Allow configuration of docdir
-
-2008-06-27 Lon Hohberger <lhh at redhat.com>
-
- [fence] Fix XVM's debug.c default
-
- [fence] Port XVM to logsys
- * For full debugging,
- * Intentionally does not use LOG_DEBUG (yet) because of
- the amount of noise generated in doing so; but full
- "debugging" is available:
- * use debug="10" in cluster.conf, or
- * -dddddddddd on the command line.
-
-2008-06-27 Christine Caulfield <ccaulfie at redhat.com>
-
- [CONFIG] Improve LDAP error reporting
- and tidy up the include list too.
-
- [CONFIG] Make ldap put totem in the right place
- This is a bit of a hack for the moment, but it puts the totem
- and logging keys back into the right place in objdb.
-
- It also tidies the code a little, ready for later work.
-
-2008-06-27 Benjamin Marzinski <bmarzins at redhat.com>
-
- [gnbd-kernel] bz 442606: Switch gnbd to use deadline scheduler by default.
- GNBD was hanging under load with O_DIRECT. GNBD needs to block in its
- request function. This causes some problems with the anticipatory scheduler,
- which GNBD was using by default. To avoid these, this fix makes gnbd use the
- deadline scheduler by default.
-
-2008-06-27 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [BUILD] Add configure options for libldap
- required by config/plugins/ldap/
-
-2008-06-26 David Teigland <teigland at redhat.com>
-
- fenced: revert logsys commits
- [FENCE] Start porting fenced to logsys
- cf4c7ebac813b0b607acf6cf74bbdddfc8cfb12a
-
- [FENCE] Make fenced ready to load logsys config
- c54c56c5a09f98547ceda3bc5fa9afa28b354480
-
- [FENCE] Move logsys configuration calls where they belong
- 18e085596bb8844f74689a92662f2e5e9166836b
-
- [FENCE] Allow fenced to configure logsys
- da704715c606c9c01637ae53d79f8dec6a8b0389
-
- [FENCE] fenced: separate concept of fork and debugging
- 95a5c6b13294742956b13070ebc4f4513278255f
-
-2008-06-26 Lon Hohberger <lhh at redhat.com>
-
- [rgmanager] Fix erroneous broadcast matching in ip.sh
- * This fixes an issue where rgmanager removes the
- wrong address because the IP matches the broadcast
- address of the interface.
- * Red Hat Bugzilla #453000
-
-2008-06-26 Christine Caulfield <ccaulfie at redhat.com>
-
- [CONFIG] Add ldap configurator
- This is an openais configuration plugin to read the cluster config
- from an LDAP server. A schema file is included that provides just
- enough information to get a cluster running, more will follow.
-
- There is also an example ldif file to show how to load the information
- into the database.
-
- The defaults are slightly odd at the moment, I'll fix those as it develops
- and document how to override them. In the mean time see the top of the
- source code.
-
-2008-06-26 Lon Hohberger <lhh at redhat.com>
-
- [fence] fence_xvmd: Add KVM support; misc cleanups.
- * WARNING WARNING WARNING: Changes the default URI to
- KVM. You must specify uri="xen:///" in cluster.conf
- to use Xen now (or -U xen:/// on the command line)
- * fence_xvmd -h now displays appropriate cluster.conf
- related help information.
- * This commit simply fixes authorship of the previous
- patch; apparently git lets you commit as root even
- if a different user checked it out...
-
- Revert "[fence] fence_xvmd: Add KVM support; misc cleanups."
- This reverts commit beeb2070953548ecf38751294e5371a668f73ee2.
-
-2008-06-26 root <root at localhost.localdomain>
-
- [fence] fence_xvmd: Add KVM support; misc cleanups.
- * WARNING WARNING WARNING: Changes the default URI to
- KVM. You must specify uri="xen:///" in cluster.conf
- to use Xen now (or -U xen:/// on the command line)
- * fence_xvmd -h now displays appropriate cluster.conf
- related help information.
-
-2008-06-25 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [CONFIG] Fix several bugs in XML parsing implementations
-
- [CONFIG] Add cluster.conf direct loader
- This pluing allows to load cluster.conf directly into the objdb
- for configuration.
- With this plugin there is no need to have ccsd running.
-
- To use:
-
- make sure that all nodes have the same cluster.conf
-
- form the cluster with:
-
- cman_tool <usual_options> -C xmlconfig join
-
- [CONFIG] Make sure to reset xml index in not in list mode
-
- [CCS] Remove duplicate header
-
- [FENCE] fence_tool: document "ls"
-
- [GFS2] hexedit does not need syslog
-
- [FENCE] fenced: update man page
-
- [CMAN] Remove unrequired includes
-
- [FENCE] fence_node: use logsys for logging to syslog
-
- [CCS] Use common syslog facility
-
- [FENCE] fenced: separate concept of fork and debugging
- allow fenced to fork when debugging is set from the configuration
- or the system will hang at boot.
-
- [FENCE] Allow fenced to configure logsys
-
- [QDISK] Set debug from syslog_level only when requested
- Make also sure to set val to NULL after some operations.
-
- [CCS] Set debug from syslog_level only when requested
-
- [FENCE] Move logsys configuration calls where they belong
-
- [FENCE] Make fenced ready to load logsys config
-
- [FENCE] Start porting fenced to logsys
-
-2008-06-24 David Teigland <teigland at redhat.com>
-
- gfs_controld: basic fixes
- Fix leave/unmount; weren't calling the function.
- Fix match_change for messages from new nodes that don't contain
- info for all members.
-
-2008-06-24 Bob Peterson <rpeterso at redhat.com>
-
- gfs2_fsck fails: Unable to read in jindex inode.
-
-2008-06-23 David Teigland <teigland at redhat.com>
-
- dlm_controld/gfs_controld: minor fixes
- dlm_controld shouldn't close libdlmcontrol connections that are
- meant to be persistent.
-
- gfs_controld shouldn't call start_kernel every time through
- process_mountgroup() after it's completed.
-
-2008-06-23 Bob Peterson <rpeterso at redhat.com>
-
- savemeta was not saving gfs1 journals properly.
-
-2008-06-23 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [MISC] Logging: optimizing query sequence
- Query for debug info only if nothing is specified on the command line.
-
- [QDISK] Port qdisk to the new logsys config interface
- NOTE: this commit also retain backward compatibility with
- the old logging config options but warns the users
- that they are depracated.
-
- [CCS] Fix debug override from command line vs config
-
- [CCS] Always check for debug setting as first thing
- This allow us to enable and read debugging output as soon
- as possible.
-
- [BUILD] Fix new gfs_controld Makefile
-
-2008-06-20 David Teigland <teigland at redhat.com>
-
- gfs_controld: new version
- Uses libcpg directly instead of libgroup/groupd, like we've already
- done for fenced and dlm_controld.
-
-2008-06-20 Lon Hohberger <lhh at redhat.com>
-
- [rgmanager] Make rgmanager check pbond links correctly
- Rgmanager doesn't check pbond links (bonded links when Xen
- networking is used) correctly. This patch fixes it.
-
- Patch from John Ruemker.
-
-2008-06-20 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [QDISK] Major clean up
- Kill lots of dead and unused code around.
-
- Switch whatever possible into static functions.
-
- [QDISK] Init logsys later in the process
-
- [QDISK] Clean handling of debug envvar
-
- [QDISK] Remove duplicate debugging configuration
-
- [QDISK] get_config_data cleanup
- get_config_data does not need cluster name.
-
- change invokation from ccs_force_connect to ccs_connect.
- ccs_force_connect returns only when connection is succesful
- and can sit there forever.
- With the new libccs, if we are connected to cman, we can be
- 100% sure that we will be able to do a ccs_connect.
-
- [QDISK] Make get_config_data static
-
- [QDISK] Fix debug type
-
-2008-06-20 Christine Caulfield <ccaulfie at redhat.com>
-
- [CMAN] use list_iterate_safe when removing nodes
-
-2008-06-20 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [QDISK] Fix build with new openais logsys
-
- [CCS] Convert ccs logsys config to the ais format
-
- [CCS] Fix improper log level on debugging information
-
- [CCS] Improve logsys init order
- If we can init and config from a real config file, do that
- and start logging immediatly.
-
- If we cannot, fall back to default and start logging.
-
- [CCS] Add cosmetic CCSENTER/EXIT for simple xml queries
-
- [CCS] Shrink more common code for internal xml queries
-
- [CCS] Init logsys as early as possible
- If we have an on-disk copy of cluster.conf we will use it
- as early as possible to configure logsys.
-
- If you are unlucky to have none, logsys will use built-in
- defaults and then switch to configured setting after we
- will get one from the network.
-
- [CCS] Remove LOG_MODE_DISPLAY_DEBUG from logsys settings
-
- [CCS] Remove duplicate code and make it common
- We are about to perform many queries to configure logging.
-
- Collect common code in one static function and switch
- set_ccs_logging to use it, by sharing the same XML context.
-
- [CCS] Fix a few logsys configuration bits
- Make sure to set debug = 1 when debugging is enabled via envvar.
-
- Delay logsys flush to catch a few more bits and allow us to
- configure properly.
-
- [CCS] Fix priority setting
-
- [CCS] Add missing CCSEXIT call
-
-2008-06-20 Benjamin Marzinski <bmarzins at redhat.com>
-
- [gnbd-kernel] bz 449812: disallow sending requests after a send has failed.
- This fix adds a "corrupt" flag to the gnbd device structure. This flag is
- cleared when a new socket connection is opened to the server. It is set
- whenever a send fails. After this all future sends will fail, and the receiver
- process will stop accepting replies as soon as it notices the flag.
-
-2008-06-19 Benjamin Marzinski <bmarzins at redhat.com>
-
- gnbd-kernel: Fix receiver race
- It is possible to have the gnbd receiver process finish and end a request before
- the sending process has finished using the request structure. This can cause a
- kernel panic.
-
- This fix adds a waitqueue (tx_wait) and a pointer to the request currently
- being send (current_request) to the gnbd device structure. current_request is
- set before any request is sent to the server. When the send is complete, it is
- cleared and the wait_queue is woken. A new function, wait_for_send() is called
- whenever it is possible for a call to gnbd_end_request() to interleave with a
- send. It waits on the waitqueue if the request about to be ended is currently
- being sent.
-
- Conflicts:
-
- gnbd-kernel/src/gnbd.c
-
-2008-06-18 Bob Peterson <rpeterso at redhat.com>
-
- 452004: gfs: BUG: unable to handle kernel paging request. This is a gfs crosswrite from gfs2, to be included with 446085 in RHEL5.
-
-2008-06-17 Lon Hohberger <lhh at redhat.com>
-
- Ancillary NOCLUSTER mode fixes for fence_xvmd
-
- Ancillary NOCLUSTER mode fixes for fence_xvmd
-
- Fix #362351 - make fence_xvmd work in no-cluster mode
- Conflicts:
-
- fence/agents/xvm/fence_xvmd.c
- fence/agents/xvm/options.c
-
-2008-06-16 James Parsons <jparsons at redhat.com>
-
- Fix for 251358
-
-2008-06-13 Bob Peterson <rpeterso at redhat.com>
-
- Fix 32-bit warning in super.c.
-
-2008-06-13 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [CCS] Fix build warnings on sparc
-
-2008-06-12 Bob Peterson <rpeterso at redhat.com>
-
- Fix gfs_fsck build warnings
-
- Fix gfs_tool build warnings
-
- Ignoring gets return value in gfs_mkfs
-
- Fix gfs_debug build warning
-
- Fix build warnings from libgfs
-
-2008-06-12 Christine Caulfield <ccaulfie at redhat.com>
-
- [CMAN] Fix some compiler warnings on 64 bit systems
-
-2008-06-12 Bob Peterson <rpeterso at redhat.com>
-
- Fix another compiler warning for 32-bit arch.
-
-2008-06-12 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [QDISK] Add better support for Xen virtual block devices
- This change allows to detect Xen virtual disks directly
- into sysfsattrs.disk without the need of an external filter.
-
- [GFS2] Add missing include and fix build warning
-
-2008-06-12 Bob Peterson <rpeterso at redhat.com>
-
- Fix build warnings in gfs2-utils.
-
-2008-06-11 Bob Peterson <rpeterso at redhat.com>
-
- Added an optional block-size to mkfs.gfs2
-
-2008-06-10 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [MISC] Add another exception to COPYRIGHT
-
- [MISC] Remove old copyright
-
- [MISC] Add original author for cman/qdisk/disk.c
-
- [MISC] Remove osl-2.1 exception from README.licence
-
- [GFS] Remove obsoleted gfs_edit in favour of gfs2_edit
-
-2008-06-09 Bob Peterson <rpeterso at redhat.com>
-
- Fix compiler warning.
-
- Ability to specify starting block or structure with -s
-
- Allow keywords in block number input
-
-2008-06-09 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [MISC] Relicence rgmanager/src/resources/oracledb.sh under GPLv2+
- There was no reason for this file to have a different licence.
- This kills the last exception in the tree (licence wise).
-
- [MISC] Whitespace cleanup
-
- [BUILD] Fix file permissions all around
- Let make/install.mk to take care of the install permissions.
-
- Don't mangle with tree permissions at all.
-
- [MISC] Update top level copyright file
- Add 2 missing exceptions and fix a typo
-
- [GNBD/FENCE] Move fence_gnbd agent where it belongs
-
-2008-06-08 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [BUILD] Prepare infrastructure for perl/python bindings
-
-2008-06-06 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [MISC] Tree cleanup
- Remove all dead code that has not been updated in ages
- or doesn't build and nobody knows what it is.
-
- This can be restored at a later stage from stable2 branch
- if required.
-
- [MISC] Cleanup licence, copyright and header duplication
- Add toplevel README.licence that explain what is what.
-
- Add copy of GPL-2 and LGPL-2.1 (as pointed by README.licence).
-
- Add toplevel COPYRIGHT that reports exact details of each file in the
- tree including authors.
-
- Cleanup all the headers around > 10K lines less of stuff to carry around
- and mind for cleanup.
-
- [MISC] Add top level licence files
- This is in preparation of a major file cleanup across
- the whole tree.
-
- [MISC] Remove obsolete and empty files
-
- [BUILD] Collapse common library makefile bits in libs.mk
- Almost all libraries we build share the same Makefile bits:
-
- - Collapse them in one location.
- - Make it smarter to switch a library from shared to static and viceversa.
- - Convert all possible libs to use the new system.
-
- Fix libdlm linking order.
-
- Standardize invokation to AR.
-
- [BUILD] Switch libdlmcontrol back to shared library
-
-2008-06-05 Marek 'marx' Grac <mgrac at redhat.com>
-
- Fixes #445662: names of resources with spaces are mishandled
-
-2008-06-04 Bob Peterson <bob at ganesha.peterson>
-
- Updates to gfs2_edit man page for new option.
-
- Make gfs2_edit more friendly to automated testing.
-
- Fix gfs2_edit bugs with non-4K block sizes
-
-2008-06-04 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [CMAN] Bump library version
- In preparation for 3.0 and to allow landing of perl/python
- bindings we need to set this to 3 to differentiate from stable2.
-
-2008-06-04 Marek 'marx' Grac <mgrac at redhat.com>
-
- [FENCE] Fix: 447378: fence_apc unable to connect via ssh to APC 7900
- Increased timeout from SHELL_TIMEOUT to LOGIN_TIMEOUT in login function.
-
-2008-06-03 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [CONFIG] Add full xpath support to libccs
-
- [MISC] Make several API's private again
- A bunch of API's have been exported and made public by mistake.
-
- libdlmcontrol, libfenced and libgfscontrol are now private again
- and no shared libraries are available.
-
- Make sure to uninstall the shared libraries from your system
- as they are not used anylonger.
-
- NOTE: make sure to clean your tree before you git pull and
- then re-configure (optional to get rid of old build variables).
-
-2008-06-02 Mark Hlawatschek <hlawatschek at atix.de>
-
- mount.gfs2: skip mtab updates
- Skip updates to /etc/mtab when it's a link to /proc/mounts (which is the
- case for shared root gfs, for example.)
-
- bz 318271 (RHEL5)
-
-2008-06-02 Marek 'marx' Grac <mgrac at redhat.com>
-
- [FENCE] Fix #446995: Unknown option
- Previous patch worked just for command line and there was a problem with
- stdin argument. Typo fixed.
-
-2008-05-29 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [BUILD] Fix mount.gfs2 build
- Remove unrequired SHAREDOBJS since there is only one target.
-
- Fix CFLAGS to use gfscontrolincdir.
-
- Statically link mount.gfs2 with libgfscontrol. While this is absolutely
- ugly, it is the best way to prevent a few tons of other problems.
-
- [BUILD] gfs2 requires group to build
-
- [BUILD] Change build system to cope with new libgfscontrol
- NOTE: you will need to rerun configure to set the new variables
-
- [GROUP] libgfscontrol: fix build with gcc-4.3
-
- [GFS] remove symlink to umount.gfs2
- umount.gfs2 is gone with commit d33f4f1df3e8f84603418d0192c1af18794d3136
-
-2008-05-28 David Teigland <teigland at redhat.com>
-
- gfs_controld: restructuring
- - copying the code structure/organization of dlm_controld
- - isolate the cluster2 code from what will be the cluster3 code
- - add libgfscontrol and gfs_control
- - use libgfscontrol between gfs_controld and mount.gfs
- - eliminate umount.gfs, no longer used
-
- gfs_controld: move recover.c
- Move recover.c into cpg-old.c in preparation for new version.
-
- gfs_controld: rename files
- Renaming files in preparation for new version.
-
-2008-05-28 Ryan McCabe <rmccabe at redhat.com>
-
- libfence: update copyright notice
- - Clarify copyright notice so that GPLv2 is specified explicitly.
-
- libfence: handle EINTR correctly
- - Handle EINTR correctly
- - String cleanups
-
- fence: fixes and cleanups to fencing.py library
- - Do not report failure if a node is successfully powered off,
- but fails to power on.
-
- - Change 'pass' to 'continue' so that comments and blank lines
- from stdin are ignored.
-
- - Use the full path to ssh and telnet when executing the binaries.
-
-2008-05-26 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [BUILD] Add fence_lpar fencing agent to the build system
-
-2008-05-23 Marek 'marx' Grac <mgrac at redhat.com>
-
- [FENCE]: Fix #237266: New fence agent for HMC/LPAR
-
-2008-05-23 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [CONFIG] Fix lots of bugs in libccsconfdb
- Add tokenizer to split xpath queries into tokens.....
-
- Make some functions static since they are not exported.
-
- Simplify path_dive and get_data to use tokens.
-
- Cleanup comments.
-
- Implement a lot more error checking and be extremely picky
- on how queries are requested.
-
- Fix some string handling to avoid data corruption in result generators.
-
-2008-05-22 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [CCS] Use absolute path for queries
- * It is more efficient
- * It is a well-defined location
-
-2008-05-22 Lon Hohberger <lhh at redhat.com>
-
- [rgmanager] Use /cluster/rm instead of //rm
- * It is more efficient
- * It is a well-defined location
-
-2008-05-22 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [BUILD] Plugin the new shiny fence_ifmib agent
-
- [FENCE] Fix ifmib README to report the right fence agent
-
- [FENCE] Fix copyright header for fence_ifmib manpage
-
-2008-05-22 Ross Vandegrift <ross at kallisti.us>
-
- [FENCE] Add fence_ifmib new agent
- Many thanks to Ross Vandegrift for this submission.
-
-2008-05-21 Marek 'marx' Grac <mgrac at redhat.com>
-
- [FENCE] Fix #447378 - fence_apc unable to connect via ssh to APC 7900
- Problem was that even with ssh itself it was really painfull to log into
- this device (15 - 40 seconds). After specifying cipher and protocol we can
- login and check status in time comparable to others.
-
-2008-05-21 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [GFS2] Use proper include dir for libvolume_id
-
- [BUILD] Fix install permissions
- Virtually every distro was complaining about scripts
- permissions. Clearly we were doing it wrong. Fix them all.
-
- [BUILD] Fix rg_test linking
- rg_test does not need libccs
-
- [BUILD] Fix dlm_controld linking
- dlm_controld does not require linking with libdlmcontrol.
-
- Merge branch 'master' of ssh://sources.redhat.com/git/cluster
-
- [BUILD] Fix build order
- group needs cman and not just config to build
-
-2008-05-20 Christine Caulfield <ccaulfie at redhat.com>
-
- [CMAN] Don't busy-loop if we can't get a node name
- And remove a spurious error message.
-
-2008-05-20 Bob Peterson <rpeterso at redhat.com>
-
- bz 446085: Back-port faster bitfit algorithm from gfs2 for better performance.
-
-2008-05-20 Lon Hohberger <lhh at redhat.com>
-
- [rgmanager] Fix live migration option (broken in last commit)
-
- [rgmanager] Apply patch from Marcelo Azevedo to make migration more robust
- * Adds a mapping of cluster nodes to private hostnames for migration
- paths
- * Makes migration status reporting more robust
-
-2008-05-20 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [MISC] Update copyright
-
-2008-05-20 Marek 'marx' Grac <mgrac at redhat.com>
-
- [FENCE] Fix #446995: Parse error: Unknown option 'switch=3'
- Support for APC MasterSwitch was added (it worked in original fencing
- agent). Option 'switch' on STDIN didn't have a getopt alternative, so
- '-s <switch-id>' was added. Plug number notation <switch>:<plug> works
- as before. Original behaviour for missing switch number does not change.
- If there is just one MasterSwitch then we will set it up otherwise error
- is returned.
-
-2008-05-20 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [BUILD] Fix sparc #ifdef according to the new gcc tables
-
-2008-05-19 Marek 'marx' Grac <mgrac at redhat.com>
-
- [FENCE] Fix #248609: SSH support in Bladecenter fencing (ssh)
- Complete ssh support for Bladecenter. You can use password or private key
- (identity_file on STDIN; -k in getopt) to login to system. This patch contains
- complete infrastructure (usable also by other agents).
-
-2008-05-19 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [GFS] Sync with gfs2 init script
-
- [INIT] Do not start services automatically
- Apply Fedora policy to not start services automatically
- to our init scripts.
-
- [GFS] Fix comment
-
-2008-05-19 Bob Peterson <rpeterso at redhat.com>
-
- Replace put_inode with drop_inode
-
-2008-05-16 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [BUILD] Stop using DEVEL.DATE library soname
- Start using the official sonames also for development trees.
- release version is there to catch the same information.
-
- [CCS] Make a bunch of functions static
-
- [CONFIG] Add missing Makefiles
-
- [CONFIG] Create config/ subsystem
- Move libccsconfdb to config/libs/
- Move ccs_test to config/tools/
-
- top level Makefile:
- - use config/ subsystem
- - reorder build dependencies
- - ccs is now on its own
-
- configure:
- - change default location for libccs
-
- Update Makefiles to cope with new locations
-
- [BUILD] Free toplevel config/ dir
-
- [BUILD] Add --without_kernel_modules configure option
- Allow users to disable build of kernel modules.
-
-2008-05-15 Jonathan Brassow <jbrassow at redhat.com>
-
- rgmanager/lvm.sh: HA LVM wasn't working on IA64
- switch:
- $(find /boot/*.img -newer /etc/lvm/lvm.conf)
- to:
- $(find /boot -name *.img -newer /etc/lvm/lvm.conf)
-
- Could be better still if there was a way of knowing which
- initrd we used when booting...
-
-2008-05-14 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [DLM] Remove unused header file
-
-2008-05-14 Marek 'marx' Grac <mgrac at redhat.com>
-
- [FENCE] Fix typo in name of the exceptions in fencing agents
- Exceptions should be pexpect.EOF, pexpect.TIMEOUT (not pexcept.*). This
- problem only occured in set_status(). Function get_status() contains
- correct exceptions.
-
-2008-05-14 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [FENCE] Rename bladecenter as it should be .pl -> .py
-
-2008-05-14 Marek 'marx' Grac <mgrac at redhat.com>
-
- [FENCE] Fix problem with different menu for admin/user for APC
- In APC user/admin can see a different menu and they have to use different sequence
- of keystrokes to access Outlet Controls. Previously only support for user was
- provided.
-
- [FENCE] Fix name of the option in fencing library
- We were testing for option 'plug_no' but in every other file we have 'port'.
-
-2008-05-14 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [CMAN] Fix path to cman_tool
-
-2008-05-13 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [MISC] Cast some love to init scripts
- - Fix LSB headers
- - Use standard templates
- - Align runlevels
- - Add service dependencies
- - Fix subsystem usage
-
- [BUILD] Move fencelib in /usr/share
- Python bytecompiled objectes are arch indipendent. Move
- the whole thing where it belongs.
-
-2008-05-13 David Teigland <teigland at redhat.com>
-
- dlm_controld: use started_count to detect remerges
- Count then number of times the dlm has been started locally and
- include the count in the start messages sent to begin each change.
- I think this should work to detect remerges after transient
- partitions. For now it just logs a warning; after observing how
- it works we can use it to ignore remerged nodes.
-
- dlm_controld/gfs_controld: ignore write(2) return value on plock dev
- bz 446128
-
- When plocks originate from nfs clients, the kernel mistakenly
- returns 0 instead of the number of bytes written to the plock
- device on write(2). Don't spam /var/log/messages with errors
- reporting a bad return value from write(2).
-
-2008-05-13 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [RGMANAGER] ^M's are good for DOS, bad for UNIX
- aka: don't edit shell scripts with notepad. thanks.
-
- [GFS] Make gfs build with 2.6.26 (DO NOT USE!)
- put_inode has been removed from the main kernel. gfs1 needs
- a full porting and review. This commit allows only to build
- the module but it will NOT work.
-
- [GNBD] Update gnbd to work with 2.6.26
-
- [BUILD] Require 2.6.26 kernel to build
-
-2008-05-12 David Teigland <teigland at redhat.com>
-
- dlm_controld: remove unworking re-merge detection
- Comment out the code that's supposed to detect when nodes are being
- remerged after a transient partition; it's not smart enough yet.
-
- dlm_tool: refine list output
-
- dlm_controld: dlm_tool query fixes
- Various fixes to make queries, e.g. dlm_tool ls, show the right info.
-
-2008-05-09 David Teigland <teigland at redhat.com>
-
- dlm_controld: options to disable fencing/quorum dependency
- There may be cases where someone wants to use the dlm without
- a recovery dependency on fencing and/or quorum.
-
- dlm_controld: fix waiting for removed node
- When a node is removed by leaving (not failing), don't wait
- for it to be removed by cman/quorum, since it won't be.
-
-2008-05-09 Christine Caulfield <ccaulfie at redhat.com>
-
- [CMAN] fix cman_tool join -X
- Even when state with cman_tool -X, the preconfig stage tried to lookup
- the node in the objdb (which is empty!) and fails if it was not found.
-
- The "aisexec" object did not exist so the username was not stored.
-
-2008-05-09 Lon Hohberger <lhh at redhat.com>
-
- [rgmanager] Fix #441582 - symlinks in mount points causing failures
-
-2008-05-08 David Teigland <teigland at redhat.com>
-
- daemons: queries
- Completing list command for fence_tool and dlm_tool.
-
-2008-05-08 Marc - A. Dahlhaus <mad at wol.de>
-
- [MISC] Add version string to -V options of dlm_tool and group deamons
-
-2008-05-07 David Teigland <dct at localhost.localdomain>
-
- daemons: mostly daemonization stuff
- - do lockfile before daemonizing
- - use daemon(3)
- - openlog even if not forking
- - other little odds and ends
-
-2008-05-07 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [MISC] Fix some gfs2 build warnings
-
- [BUILD] Fix install when building from a separate tree
-
-2008-05-07 Christine Caulfield <ccaulfie at redhat.com>
-
- [CMAN] make qdisk compile on i386
- The combination of -Werror and an attempt to print a size_t on several
- architectures was causing it not to build on i386.
-
- The cast isn't ideal, but it's only a log message.
-
-2008-05-07 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [MISC] Fix even more build errors with Fedora default build options
- ... and more to come
-
- [MISC] Fix more build errors with Fedora default build options
- NOTE: some bits are absolutely not required but we still
- add them to shut up the warnings.
-
- [MISC] Fix build errors with Fedora default build options
-
- [BUILD] Allow users to set path to init.d
- Almost all distributions use /etc/init.d but some still use
- the legacy path to /etc/rc.d/init.d.
-
- Allow builders to set the path instead of using some manual
- workarounds to do later fixup.
-
-2008-05-06 David Teigland <teigland at redhat.com>
-
- dlm_tool: add libdlmcontrol query commands
- Basic code for ls, dump, plocks, not yet tested.
-
- dlm_controld: code for info/debug queries
-
-2008-05-06 Marek 'marx' Grac <mgrac at redhat.com>
-
- [FENCE] Fix #435154: Support for 24 port APC fencing device
- Fixed in the new version of python fencing agent. But there was still a problem
- because there is major change of interface between firmware v2.7.x and v3.5.x.
- After this patch both types of firmware version should work.
-
-2008-05-06 Christine Caulfield <ccaulfie at redhat.com>
-
- [CMAN] Fix localhost checking that I broke last week.
-
-2008-05-05 Fabio M. Di Nitto <fabbione at fabbione.net>
-
- [CMAN] Set default syslog facility at build time
-
- [CCS] Fix build with gcc-4.3
-
-2008-05-02 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [CCS] Detach dependency on ccsd to run the cluster
- The old static libccs is now called libccscompat and should not be used
- by anything outside ccs/. Note that the headers and the library are not
- installed, nor configure knows about it. All application paths that require
- compat are made static and non-configurable.
-
- Allow ccsais and ccs_tool to use libccscompat.
-
- Stop linking ccsd with libccs. It was not required before either.
-
- Add new shared library called libccs that uses aisexec confdb directly.
- The new libccs retains API compatibility with the old library so it was
- possible to "unplug" the old and "plug" the new one in one go. All the
- applications in the stack are now quering aisexec db directly.
-
- NOTES:
- - the new library does not emulate all the libccscompat calls as some
- of them are not used anywhere but this is not a problem since libccs
- was static. We are shipping it now shared and we a new soname.
- - the library implements only a small subset of xpath to query the aisexec
- config db.
-
- Port ccs_test to use the new libccs and drop all calls that are not used anywhere.
-
- Set new default ccsincdir and ccslibdir to ccs/libccsconfdb in configure.
-
- NOTE to developers: you will need to rerun configure.
-
- [CMAN] Do not query ccs as it might not be the right config plugin
-
-2008-05-01 David Teigland <teigland at redhat.com>
-
- dlm_controld: filling out code
- Filling in various unfinished bits, fixing up wrong/inconsistent
- header length (also in fenced).
-
-2008-05-01 Christine Caulfield <ccaulfie at redhat.com>
-
- [CMAN] Remove external dependancies from config modules
- This remove the external depandancies from the aisexec config
- modules because they break all sorts of things.
-
- Instead of logging errors, they return them back to the caller - this removes
- the dependancy on logsys.
- Also, I've remove the totemip function calls and replaced them with
- usable subsets in the config code itself.
-
- The cman and ccs config plugins now work with testconfdb in
- standalone mode.
-
-2008-04-30 David Teigland <teigland at redhat.com>
-
- libdlmcontrol: filling out code
-
-2008-04-30 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- libdlm: fix libdlmcontrol in Makefile
-
-2008-04-30 David Teigland <teigland at redhat.com>
-
- dlm_controld: fix build problems in previous commit
-
-2008-04-30 Marek 'marx' Grac <mgrac at redhat.com>
-
- [FENCE] SSH support using stdin options
- STDIN options have to be name=value even if they are just boolean. These options
- are taken from cluster.conf so they have to be XML-like.
-
-2008-04-30 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [BUILD] Change build system to cope with new libdlmcontrol
-
-2008-04-29 David Teigland <teigland at redhat.com>
-
- libdlmcontrol: new lib interface to dlm_controld
- Adds all the structure, most of the calls do nothing yet.
-
- libdlm: use linux/dlm.h from 2.6.26-rc
- Use new linux/dlm.h (which inclues dlmconstants.h) to give us
- DLM_LOCKSPACE_LEN.
-
- fence_tool: fix list command
-
-2008-04-28 David Teigland <teigland at redhat.com>
-
- fence: fence_tool list and fenced_domain_nodes()
- Let fence_tool query fenced for domain state.
- Change fenced_domain_members() to fenced_domain_nodes()
- to query for nodes other than members.
-
-2008-04-28 Lon Hohberger <lhh at redhat.com>
-
- [cman] Close sockets in error state in gfs_controld / dlmtest2 / groupd test
-
-2008-04-28 Marek 'marx' Grac <mgrac at redhat.com>
-
- [RGMANAGER] Fixed typo in mysql.metadata
- Changed httpd to mysqld
-
-2008-04-28 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [CMAN] Setup logging file
- Align cman logging options with the other subsystems and
- set logging file to LOGDIR "/cman.log".
-
- It is still possible to disable the feature by using the
- standard to_file: no config option (default to yes).
-
-2008-04-26 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [BUILD] Fix build order. Gotta love circular build depends...
-
-2008-04-25 David Teigland <teigland at redhat.com>
-
- fenced: allow queries during fencing; group queries
- Put mutex unlock/lock around fencing steps that take a while so that the
- query thread won't be blocked. Fill in query info for libgroup mode.
-
- fenced: process queries in a thread
- Add a thread for responding to the new libfenced queries, since fenced
- blocks for long periods when fencing nodes.
-
- fence: using new libs
- Filling out various incomplete parts, making use of the new interfaces.
-
-2008-04-25 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [RGMANAGER] Fix uninstall target
-
- [FENCE] Enable new fence agents by default
- Remove enable_fence_experimental_agents configure option in favour of
- "crack_of_the_day"
-
- Rename files around as agreed with Marek.
-
- [GROUP] Apply patch to make gfs_controld work with 2.6.26
-
- [BUILD] Fix fence lib install target
-
- [BUILD] Fix kernel check for good
- Use the top level Makefile of the source tree rather than
- random includes that keeps changing.
-
- [BUILD] Fix building with separate object dir
-
- [BUILD] Deal with new libfenced
- configure, make/defines.mk.input:
- - add fencedincdir and fencedlibdir options for the shared library.
- - set default for fenceincdir and fencelibdir to ./fence/libfence (renamed).
-
- fence/Makefile:
- - build the shared lib.
-
- fence/fence_node/Makefile, fence/fence_tool/Makefile:
- - use fencedincdir and fencedlibdir.
- - add build-dep on the shared library.
-
- fence/fenced/Makefile:
- - update depends on libfence (renamed).
-
- fence/libfenced/Makefile:
- - use path to source instead of direct include to fenced.
-
- fence/lib:
- - renamed to fence/libfence.
-
-2008-04-24 David Teigland <teigland at redhat.com>
-
- fenced: new libfenced interface
- A new library, libfenced, is used to communicate with fenced. Previously,
- programs would each open fenced's local socket and write/read strings.
-
- dlm_controld: build plock code
- Building this requires 2.6.26-rc kernels because of linux/dlm_plock.h.
- Once built, dlm_controld is backward compatible, and will process plocks
- from earlier kernel versions.
-
-2008-04-24 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [CCS] Allow ccsd logging level and facility to be set by cluster.conf
- This change allow to set log_level and log_facility for the ccs subsystem
- within cluster.conf.
-
- Here is a config example:
-
- <?xml version="1.0"?>
- <cluster name="test" config_version="1">
- <ccs log_facility="local6" log_level="debug"/>
- ....
-
- [CCS] Document -d (debugging) switch
-
- [CMAN] Use build/user defined default logging facility
-
- [CMAN] Convert qdiskd to use logsys
-
-2008-04-23 David Teigland <teigland at redhat.com>
-
- fenced: more new devel
- New stuff still under development, lots of various things fixed,
- reworked, changed.
-
-2008-04-23 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [CCS] Switch to use user selected logdir and syslogfacility
-
- [BUILD] Allow users to set default log dir and syslog facility
-
- [BUILD] Fix install/uninstall targets for fence/agents/lib
-
- [BUILD] Deal with the new libfence properly
- configure, make/defines.mk.input:
- - rename fencelibdir to fenceagentslibdir to avoid name space collision.
- - add fenceincdir and fencelibdir options for the shared library.
-
- make/fencebuild.mk, make/install.mk, make/uninstall.mk, fence/agents/apc/apc.py,
- fence/agents/bladecenter/bladecenter.py, fence/agents/drac/drac5.py,
- fence/agents/ilo/ilo.py, fence/agents/lib/Makefile, fence/agents/wti/wti.py:
- - rename fencelibdir to fenceagentslibdir.
-
- fence/Makefile:
- - build the shared lib.
-
- fence/fence_node/Makefile, fence/fenced/Makefile:
- - use fenceincdir and fencelibdir.
- - add build-dep on the shared library.
-
- fence/fence_tool/Makefile:
- - remove obsolete depends target.
-
- fence/fenced/fd.h:
- - include "libfence.h" to fix implicit declaration when building fenced.
-
- fence/lib/Makefile:
- - build also static version of libfence.
- - move ldflags at the end of the linking invokation call.
-
-2008-04-22 David Teigland <teigland at redhat.com>
-
- fenced: new version
- In the same theme as the new version of dlm_controld.
- - uses libcpg directly without libgroup (use the -g0 option)
- - runs in backward compat mode by default, using libgroup to interact
- with old groupd/fenced (-g1 option)
- - move code that runs agents (agent.c) into libfence
-
-2008-04-22 Jonathan Brassow <jbrassow at redhat.com>
-
- rgmanager/lvm.metadata: Fix parameter description fields
- Descriptions were never properly updated after creation.
-
-2008-04-22 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [MISC] Update Red Hat main copyright file
-
- [MISC] Update copyright headers
-
- [CCS] Convert to logsys
-
- [CCS] libraries should never log
-
-2008-04-22 Benjamin Marzinski <bmarzins at redhat.com>
-
- The gnbd kernel module on 64 bit architectures didn't handle ioctls from 32 bit userspace processes. Now it does. Resolves: bz #440454
- Also, I was getting an error because on ppc64, the manual definition of O_DIRECT
- in gnbd/server/device.c was incorrect. I switched to defining _GNU_SOURCE, which
- should mean that O_DIRECT will be automatically defined.
-
-2008-04-22 Lon Hohberger <lhh at redhat.com>
-
- Remove clushutdown man page references from clusvcadm.8; resolves #324151
-
-2008-04-22 Fabio M. Di Nitto <fdinitto at redhat.com>
-
- [rgmanager] Remove obsolete clushutdown utility
- Merge from RHEL5 branch.
-
-2008-04-21 Andrew Price <andy at andrewprice.me.uk>
-
- [GFS2] gfs2_edit: Remove duplicate linux_endian.h
- gfs2/edit/linux_endian.h is an exact duplicate of gfs2/include/linux_endian.h
- and can be removed as gfs2/include/linux_endian.h is picked up instead.
-
-2008-04-21 Christine Caulfield <ccaulfie at redhat.com>
-
- [CMAN] Disallow a new dirty node from joining the cman cluster
- Patch from David Robinson, bz#443358
-
-2008-04-18 Bob Peterson <rpeterso at redhat.com>
-
- bz295301: Need man page for gfs_edit
-
-2008-04-18 Lon Hohberger <lhh at redhat.com>
-
- [fence] Close file descriptors that are in invalid/error states
- If poll was returning with a file descriptor noted as active,
- but with the POLLERR/POLLNVAL flags set (but not POLLIN or
- POLLHUP), fenced and groupd would enter a tight spin loop.
-
- This fixes that condition.
-
-2008-04-16 Abhijith Das <adas at redhat.com>
-
- gfs2_tool: Fix build warnings in misc.c bz 441636
- gfs2_tool used to include both linux/fs.h and sys/mount.h that caused some symbols to be defined twice and hence caused some build warnings. This patch removes #include linux/fs.h and moves all the required definitions from there to a new local header file iflags.h.
- This patch also removes the SYSTEM and DIRECTIO flags as they are not used anymore.
-
-2008-04-16 Fabio M. Di Nitto <fabbione at fabbione.net>
-
- [GFS2] Fix build warning
-
-2008-04-16 Andrew Price <andy at andrewprice.me.uk>
-
- [GFS2] Remove unrequired header file
- "grep -nr 'list\.h' gfs2/" found that this file was not included anywhere and
- removing it does not stop any of the gfs2 utils from building so it seems that
- it can be removed.
-
-2008-04-16 David Teigland <teigland at redhat.com>
-
- gfs_controld: retry recovery for withdrawn journal
- bz 442451
-
- This is unfortunate, but seems to be the best solution available. The
- problem, described more fully in the bz, is that when gfs_controld tries
- to do recovery on a journal for a withdraw, the withdrawing node may not
- yet have cleared its dlm locks. This means the journal lock may still be
- held by the withdrawing node, causing all the recovering node(s) to fail
- acquiring it, and no one does the recovery. The solution is for all
- recovering nodes to retry recovery of a withdrawn journal until they
- succeed (only the first to get the journal lock will actually recover
- it, the others will see it's recovered and report success.)
-
-2008-04-16 Lon Hohberger <lhh at redhat.com>
-
- [fence] Preliminary TPS/NBB/NPS support in new WTI agent.
-
-2008-04-16 Fabio M. Di Nitto <fabbione at daitarn-fedora.int.fabbione.net>
-
- [RGMANAGER] Fix build with gcc4.3
-
- [BUILD] Fix clean target
- Make sure to remove also Module.markers files created by Fedora 9 kernel build
- system.
-
-2008-04-16 Christine Caulfield <ccaulfie at redhat.com>
-
- [FENCE] Make it build with gcc 4.3
- fence_tool.c also needs <limits.h>
-
- [MISC] Make it build with gcc 4.3
- A few files now need to include <limits.h> and cman
- was using an illegal access into the sockaddr_in6 structure.
-
-2008-04-16 Fabio M. Di Nitto <fabbione at fabbione.net>
-
- Revert "gfs2_tool: Fix build warnings in misc.c bz 441636"
- This reverts commit d2a926d2122c23e6175a62326b5e2b421b842a93.
-
-2008-04-16 jparsons <jparsons at redhat.com>
-
- Bump MAX_DEVICES in fenced from 4 to 8
- Addresses request in rhbz#284701
-
-2008-04-16 David Teigland <teigland at redhat.com>
-
- gfs: don't cancel glocks when writing to hidden file
- bz 438268
-
- When glock.c sees the PRIORITY flag, it cancels any outstanding
- glocks prior to doing the lock request. lock_dlm also uses the
- PRIORITY flag to give give granting priority to the lock in the
- dlm. Both of these are necessary when the PRIORITY glock is used
- for recovery, but only the second is wanted (neither is really
- needed) when writing to a hidden file. A new GL_NOCANCEL_OTHER
- flag, combined with PRIORITY, is used to tell glock.c to not do
- the cancels.
-
-2008-04-15 David Teigland <teigland at redhat.com>
-
- dlm_controld: max name length sanity
- Define MAX_LS_NAME 64, and note that it should match MAX_LOCKSPACE_LEN in
- dlmconstants.h. Including linux/dlm.h directly is difficult because some files
- need to include libdlm.h which doesn't combine nicely with linux/dlm.h.
-
- libdlm: max name length sanity
- Attempting to bring some sanity to handling of max lockspace name length
- and max resource name length. A new kernel patch creates single authoritative
- definitions in linux/dlmconstants.h:
-
- define DLM_LOCKSPACE_LEN 64
- define DLM_RESNAME_MAXLEN 64
-
- These definitions are copied in libdlm.h so that user apps don't need to
- include the kernel header. libdlm itself uses the dlmconstants.h
- definitions, and now checks both resource and lockspace name params against
- these definitions before calling into dlm-kernel. dlm-kernel checks each
- of the input names against these definitions when creating a new rsb or ls.
-
-2008-04-15 Bob Peterson <rpeterso at redhat.com>
-
- bz438762: gfs_tool: Cannot allocate memory
-
-2008-04-15 Andrew Price <andy at andrewprice.me.uk>
-
- [GFS2] gfs2_fsck: Fix operation on 'ptr' may be undefined warnings
- Occurrences of *ptr++ in fs_recovery.c made gcc throw up "operation on 'ptr'
- may be undefined" warnings. This patch disambiguates those occurrences.
-
-2008-04-15 Fabio M. Di Nitto <fabbione at fabbione.net>
-
- [GROUP] Fix building with standard kernels
- > From: David Teigland <teigland at redhat.com>
- > Subject: [Cluster-devel] kernel for building master
-
- > This commit assumes dlm kernel changes that are only available in
- > linux-next or linux-mm (linux/dlm_plock.h). This goes against our aim to
- > keep master building against -rc kernels by default, so the following
- > patch disables the relevant part for now. Fabio has said he may turn this
- > ifdef into something more sophisticated.
-
- Apply patch from David to allow dlm_controld to build again
- against vanilla kernels.
-
- Change the patch to use the EXPERIMENTAL_BUILD infrastructure.
-
- Cleanup a couple of typos from the patch.
-
- [BUILD] Set automatically cflags when building experimental bits
-
- [BUILD] Fix typo
-
- [BUILD] Add --enable_crack_of_the_day configure option
- This option should NEVER be used lightly and it's there as facility
- for developers that need/want to commit experimental code that,
- for one reason or another, is not ready for general use or it depends
- on other code that is not available mainline yet.
-
-2008-04-14 Bob Peterson <rpeterso at redhat.com>
-
- bz425421: gfs mount attempt hangs if no more journals available
-
-2008-04-14 Fabio M. Di Nitto <fabbione at fabbione.net>
-
- [GFS2] Fix build warning
-
-2008-04-14 Christine Caulfield <ccaulfie at redhat.com>
-
- [CMAN] Save the new expected_votes when a node is removed
- When a node leaves the cluster using 'cman_tool leave remove' it reduces
- the quorum of the cluster to accomodate the loss of the node. Unfortunately
- the following transition messages raise quorum back to its original value
- again because of the bug fix for bz#308581, so it appears that the
- remove hasn't worked.
-
-2008-04-13 Bob Peterson <rpeterso at redhat.com>
-
- bz440896/440897 GFS: gfs_fsck should repair gfs_grow corruption (see bug #436383)
-
-2008-04-11 David Teigland <teigland at redhat.com>
-
- dlm_controld: quorum checking
- Fill out the quorum dependency checking, and refine structure of the
- fencing and fs dependency checking which don't actually work yet.
-
- dlm_controld: new version
- - uses libcpg directly without libgroup (use the -g0 option)
- - takes over plock handling from gfs_controld
- - interacts with fenced and fs_controld to coordinate recovery (todo)
- - runs in backward compat mode by default, using libgroup to interact
- with old groupd/dlm_controld (-g1 option)
- - plan to add a new default -g2 option that will detect old groupd's in
- the cluster and only run in old mode if any exist
-
-2008-04-11 Abhijith Das <adas at redhat.com>
-
- gfs2_tool manpage: Updates to the manpage for bz441636
-
- gfs2_tool: Fix build warnings in misc.c bz 441636
- gfs2_tool used to include both linux/fs.h and sys/mount.h that caused some symbols to be defined twice and hence caused some build warnings. This patch uses linux/ext3_fs.h instead of /linux/fs.h and uses EXT3_XXX_FL inode flags instead of the respective FS_XXX_FL flags.
- This patch also removes the SYSTEM and DIRECTIO flags as they are not used anymore.
-
-2008-04-11 Bob Peterson <rpeterso at redhat.com>
-
- Fix some compiler warnings in gfs2_edit
-
- gfs2_edit was not recalculating the max block size after it figured that out.
-
- Fix gfs2_edit print options (-p) to work properly for gfs-1 rgs and rindex. Also fixed rgflags option for gfs1.
-
- Fix savemeta so it saves gfs-1 rg information properly Also add savergs option to facilitate rg-only repairs.
-
-2008-04-09 Fabio M. Di Nitto <fabbione at fabbione.net>
-
- [KERNEL] Update modules to build with 2.6.25
- Update clean target to cope with a new file that Kbuild creates at build time.
-
- Bump minimum kernel requirements to 2.6.25.
-
- Port modules to new kobj api.
-
-2008-04-09 Christine Caulfield <ccaulfie at redhat.com>
-
- Remove references to broadcast. Remove references to CCSD.
- Fix entry for nodeid which seems to have got split up!
-
-2008-04-09 Ryan O'Hara <rohara at redhat.com>
-
- BZ 441323 : Redirect stderr to /dev/null when getting list of devices.
-
-2008-04-09 Chris Feist <cfeist at redhat.com>
-
- Added back in change to description line to make chkconfig work properly.
-
-2008-04-09 Ryan O'Hara <rohara at redhat.com>
-
- BZ: 373491, 373511, 373531, 373541, 373571, 429033 BZ: 373491, 373511, 373531, 373541, 373571, 429033
- - Prevent "reservation conflict" messageswhen scsi_reserve starts.
- - Leave the fence domain if scsi_reserve fails to register with any device.
- - Improve logging in scsi_reserve script.
- - Use "locking_type = 0" for all lvm commands (ie. vgs).
- - Fix SCSI reservations scripts to handle LVM mirrors and stripes.
- - Not an error if fence_scsi attempts to remove a non-existent key from a
- device.
-
- BZ 248715 - Use cluster ID and node ID for key rather than IP address.
-
-2008-04-09 Ryan McCabe <rmccabe at redhat.com>
-
- fix bz277781 by accepting "nodename" as a synonym for "node"
-
-2008-04-09 Ryan O'Hara <rohara at redhat.com>
-
- Fix help message to refer to script as 'fence_scsi_test'.
-
- Attempt to register the node in the case where it must perform fence_scsi fencing but is not registered with the device(s) that must be fence. With SCSI persistent reservations, in order to do a "preempt and abort" (which we are using to fence a node), the node doing this operation must be registered with the device. This fix will check to see the the node that is performing the fencing is registered with the device(s). If it is not, then it attempts to register with the device(s) so th [...]
-
- Allow 'stop' to release the reservation if and only if there are no other keys registered with a given device. Prior to this fix, if was not possible for 'scsi_reserve stop' to unregister/release on the node that was holding the reservation.
-
- Record devices that are successfully registered to /var/run/scsi_reserve.
-
- Rewrite of get_scsi_devices function. It is no longer possible to use lvs to get a list of cluster volumes (and underlying devices) at fence time. For this reason we must "keep state" by recording which devices we register with at startup. The init script (scsi_reserve) will record each device it successfully registered with to a file (/var/run/scsi_reserve). Then, and fence time, the fence_scsi agent will unregister each device listed in the state file.
-
- Fix success/failure reporting when registering devices at startup. If our node (key) is already registered with a given device, do not report failure since this is misleading.
-
- Replace /var/lock/subsys/${0##*/} with /var/lock/subsys/scsi_reserve.
-
- Fix split calls to be consistent. Remove the optional LIMIT parameter.
-
- Fix code to use get_key subroutine. Fix sg_persist commands to specify device via -d parameter.
-
- Remove "self" parameter. This was used to specify the name of the node performing the fence operation, and was passed to the agent. This is no longer used. Instead, we get the name of the local node in the agent by parsing the output from 'cman_tool status'.
-
- Fix unregister code to report failure correctly.
-
- Variable should be quoted in conditional statement.
-
-2008-04-09 Fabio M. Di Nitto <fabbione at fabbione.net>
-
- Revert "fix bz277781 by accepting "nodename" as a synonym for "node""
- This reverts commit 57a07697afeb2e5d3bb2a4220e844bcdc44598cb.
-
- Revert "Fix help message to refer to script as 'fence_scsi_test'."
- This reverts commit e9b17a088668ceaba5c6ea35f8d22ec2613cfe96.
-
-2008-04-08 Andrew Price <andy at andrewprice.me.uk>
-
- [[BUILD] Warn and continue if CONFIG_KERNELVERSION is not found
- Currently the configure script assumes that CONFIG_KERNELVERSION is defined in
- autoconf.h. This patch handles the case where it isn't defined there.
-
-2008-04-08 Fabio M. Di Nitto <fabbione at fabbione.net>
-
- [BUILD] Fix clean target for experimental fence/agents/lib
-
-2008-04-07 Abhijith Das <adas at redhat.com>
-
- gfs2_tool manpage: gfs2_tool counters doesn't exist anymore.
- This patch reflects the removal of the 'counters' command from gfs2_tool. bz 438759
-
- gfs-kernel: fix for bz 429343 gfs_glock_is_locked_by_me assertion
- This assertion shows up when gfs_readpage gets called without the inode glock
- being held through the madvise syscall when the kernel attempts to readahead.
-
- This patch unlocks the page, locks the inode glock and returns
- AOP_TRUNCATED_PAGE.
-
- I had to change gfs_glock_is_locked_by_me() to return the holder if glock is
- held or NULL otherwise (instead of the TRUE/FALSE integer value it used to
- return earlier).
-
- I also added a new GL_READPAGE flag. If we need to get an inode glock in
- gfs_readpage(), this flag is set on the holder. We must not unlock another
- holder that we might have had on the glock before we entered gfs_readpage;
- checking for this flag before unlocking ensures that.
-
-2008-04-05 Abhijith Das <adas at redhat.com>
-
- gfs2_tool: remove 'gfs2_tool counters' as they aren't implemented anymore
- gfs2 doesn't implement counters anymore so we remove them. BZ 438759 came up
- because we gfs2 stopped implementing counters.
-
- Conflicts:
-
- gfs2/tool/Makefile
-
-2008-04-03 Jonathan Brassow <jbrassow at redhat.com>
-
- rgmanager/lvm.sh: Minor comment updates
- Just moving/expanding some comments.
-
-2008-04-02 Bob Peterson <rpeterso at redhat.com>
-
- Resolves: bz 436383: GFS filesystem size inconsistent
-
-2008-04-02 Jonathan Brassow <jbrassow at redhat.com>
-
- rgmanager/lvm.sh: change argument order of shell command
- Nice to have output redirect at end of line... cosmetic
- change only.
-
-2008-04-01 Jonathan Brassow <jbrassow at redhat.com>
-
- rgmanager/lvm.sh: Fix bug bz242798
- Allow a machine to fence itself in the event that it
- cannot deactivate logical volumes. (The user must
- explicitly enable this option.) This is useful in cases
- where one machine in the cluster looses connectivity to
- its resources, but the others don't. The machine fences
- itself and the service moves to another machine.
-
-2008-04-01 Fabio M. Di Nitto <fabbione at fabbione.net>
-
- [FENCE] Make sure to version and copyright all built files
- Like all fence agents, those info can be useful. Store them
- in the modules even if only the libs print them out.
-
- [FENCE] Fix fencelib to pring version and copyright
-
- [BUILD] Enable build and install of experimental fence agents
-
- [BUILD] Royal cleanup of the fence agents build system
- Collapse fenceperl and fencepy into fencebuild.
-
- fencebuild now use a much simpler and slightly more clever
- shell script scripts/fenceparse instead of scripts/define2var
- that was no longer used anywhere in the tree.
-
- update all the fence/agents/ Makefile to use fencebuild.mk.
-
- make fencebuild understand more than one target at a time.
-
- [FENCE] Remove obsoleted fence_apc perl implementation
-
- [FENCE] Move apc_snmp README where it belongs
-
- [FENCE] Move apc_snmp README where it belongs
-
- [BUILD] add enable_experimental_fence_agents configure option
-
- [BUILD] Add fencelibdir support
- The new fence agents share a common python library.
-
- Make it's location configurable at build time (default to /usr/lib/fence).
-
- Update all targets required to handle it.
-
- Update the agents accordingly.
-
- NOTE: you will need to re-run configure to propagate the new configuration
- option. The new agents are not used/build/installed yet. This will happen
- shortly.
-
- NOTE to packagers: the new library depends on pexpect.
-
- [BUILD] Fix fenceperl and fencepy make snippets to allow multiple targets
-
-2008-03-31 Lon Hohberger <lhh at redhat.com>
-
- [CMAN] Make cman init script start qdiskd intelligently
- Resolves qdiskd/cman start ordering so gfs file systems
- are mounted reliably in 1-node+qdisk boot situations.
-
- Revert "[CMAN] Make cman init script start qdiskd intelligently"
- This reverts commit 2b6e388e72e6a35f2133c98a714dc49ab747cf80.
-
- Need review.
-
- [CMAN] Make cman init script start qdiskd intelligently
- Resolves qdiskd/cman start ordering so gfs file systems
- are mounted reliably in 1-node+qdisk boot situations.
-
-2008-03-29 Fabio M. Di Nitto <fabbione at fabbione.net>
-
- [BUILD] Remove extra debugging entry
-
- [FENCE] apc_snmp: allow paths to snmp binaries to be configurable
-
- [FENCE] Enable fence_apc_snmp
- Separate fence_apc_snmp from apc in its own directory.
-
- Update the build system to understand --mibdir and propagate it
- down to fence_apc_snmp and the install targets.
-
-2008-03-28 Marek 'marx' Grac <mgrac at redhat.com>
-
- fence/agents: Add obsolete options
- Added obsolete/dual options like hostname/ippaddr, action/option. These
- options are either translated to new or they are not used anymore/yet in
- new agents (eg. version of firmware).
-
- fence/agents: WTI agents merged
- Fencing devices from WTI can use password or login/password for loging in.
- This patch merge two fencing agents together so it will be same as old agent.
-
- fence/agents: New fencings agents
- There are new fencing agents based on a new library. They need a 'pexpect' package. If it is possible there is support for both telnet and ssh. In this patch there are agents for: APC, BladeCenter, Drac 5, ILo and WTI. It is possible that backward compatibility is broken (to be fixed).
-
-2008-03-28 Fabio M. Di Nitto <fabbione at fabbione.net>
-
- [CMAN] qdisk: add credits to Joel
-
- [CMAN] Do not duplicate entries in the objdb
- A dump-db did show duplicate entries of logging and totem
- because we were not looking for previous entries correctly.
-
- Make sure to reset to the proper handle before searching.
-
-2008-03-27 Fabio M. Di Nitto <fabbione at fabbione.net>
-
- [CMAN] Fix config handling
- Some objects were not relocated properly and it was breaking
- logging among other bits.
-
-2008-03-26 Jonathan Brassow <jbrassow at redhat.com>
-
- rgmanager/lvm.sh: Fix bug 438816
- Missing VG name parameter to 'vgchange --deltag' call
- caused tag to be remove from all VGs, not just the
- intended one.
-
- Thanks to Simone Gotti for the patch.
-
-2008-03-26 Fabio M. Di Nitto <fabbione at fabbione.net>
-
- [BUILD] Fix man page install permission
- Man pages were installed -m755 that is wrong. Install them
- as -m644 as it should be.
-
-2008-03-25 Bob Peterson <rpeterso at redhat.com>
-
- Update to prior commit for bz431945: I forgot that STABLE2 does not have a diaper device.
-
-2008-03-24 Lon Hohberger <lhh at redhat.com>
-
- [cman/qdisk] Fix type pun errors in proc.c
-
-2008-03-24 Fabio M. Di Nitto <fabbione at fabbione.net>
-
- [BUILD] Set -MMD as default CFLAGS
- Enable non-system header files dependency tracking by using -MMD
- in combination with -include .d files.
-
- This change will allow developers to edit an header file
- and simply fire a make to rebuild all the objects that are affect
- by the header change.
- Before this change a make clean and make were required to propagate
- the header change.
-
- NOTE to developers: you will need to rerun a configure to set
- -MMD in the default CFLAGS. All directories that builds objects
- now have a bunch of extra .d files that can be safely ignored
- as they are automatically generated and ignored by git.
-
- [BUILD] Update .gitignore for .o and .d files
-
-2008-03-21 Fabio M. Di Nitto <fabbione at fabbione.net>
-
- [BUILD] Fix handling of version and libraries soname
- The overall handling of release_major/minor/micro was wrong
- and it was discovered only after the first STABLE2 release.
-
- This change obsoletes release_major/minor/micro and introduces
- 3 new configure options: release_version, somajor and sominor.
- And add options to make/official_release_version.
-
- somajor/sominor should only be numbers (no sanity check is performed)
- and they can either be specified when invoking configure (both must
- be present at the same time and they will override official_release_version)
- or in make/official_release_version as:
- SONAME "2.2"
- If not specified anywhere they will be generated as before.
-
- release_version can now be a random string that will be shown
- when asking for tool versions. When specified from the configure
- it will override the one specified in make/official_release_version
- as previously documented (ex: VERSION "2.02.01").
- If not specified anywhere it will be generated by somajor.sominor.
-
- NOTE to developers: you will need to rerun configure to regenerate
- make/defines.mk.
-
- NOTE to packagers: sorry about this intrusive change but the problem
- was noticed too late. Removing --release_major/minor/micro from your
- configure invokation should be enough and usually those values should be
- set by upstream. While we provide an easy option to override values,
- please try to keep them consistent with upstream for easy tracking of bugs
- vs released versions.
-
- NOTE to release manager: make/official_release_version is not tracked
- in git and should now contains 2 keywords to work properly (order is not
- important).
-
- [CMAN] Fix building when -DDEBUG is not specified
-
- [CMAN] Drop dependency on libdevmapper
-
-2008-03-20 Lon Hohberger <lhh at redhat.com>
-
- [cman] Apply missing fix for #315711
-
- [cman] Make mkqdisk print all device paths
-
- [cman] Fix qdisk Makefile / disk_util merge bugs
-
- [cman] Merge scandisk & fixes from RHEL5 branch
- Scandisk replaces the old scanning of /proc/partitions with
- a flexible library created by Fabio M. Di Nitto
-
- Fixes from the RHEL5 branch include:
- * ability to use block devices with >512 byte sector size
- * bug causing infinite "Node X is undead" messages
-
-2008-03-20 Christine Caulfield <ccaulfie at redhat.com>
-
- [DLM] Mention lidlm_lt in the man page
-
-2008-03-20 Lon Hohberger <lhh at redhat.com>
-
- [rgmanager] Remove unused lockspace.c file
-
-2008-03-19 Joel Becker <joel.becker at oracle.com>
-
- libdlm: Don't pass LKF_WAIT to the kernel
- libdlm is passing LKF_WAIT to the kernel. In the kernel, the unlock
- path strictly audits flags, and errors on this unknown (to the kernel)
- flag. The correct answer is to keep the flag in userspace.
-
-2008-03-19 Lon Hohberger <lhh at redhat.com>
-
- [rgmanager] Fix #432998
- Fix a bug causing incorrect return codes during service stop operations
-
-2008-03-19 Bob Peterson <rpeterso at redhat.com>
-
- Merge branch 'master' of ssh://sources.redhat.com/git/cluster into master.bz431945
-
- Resolves: bz 431945: GFS: gfs-kernel should use device major:minor
-
- Resolves: bz 421761: 'gfs_tool lockdump' wrongly says 'unknown mountpoint' re HP cciss RAID array
-
-2008-03-19 Christine Caulfield <ccaulfie at redhat.com>
-
- [CMAN] valid port number & don't use it before validation
- cman_send_data didn't validate the port number. This was
- not a great problem, but it was slightly silly.
-
- cman_start_recv_data used the port number before validation
- in a debug message, this could crash the server if debug
- is enabled and a very large port number was passed in.
-
- [CMAN] Don't declare a variable in the middle of a block
- Later gccs seem to allow this behaviour (and leaving it like
- that was a mistake on my part) but I've moved the declaration
- of 'qm' back to the start of the block for normality's sake.
-
-2008-03-18 Christine Caulfield <ccaulfie at redhat.com>
-
- [CMAN] Limit outstanding replies
- This commit imposes a limit on the number of outstanding replies
- that a connection can have. This is to prevent a DoS attack that
- causes cman to eat all available memory by sending lots of requests
- and not reading the replies.
-
- The deafult is 128, it can be set in cluster.conf as
- <cman max_queued="1000"/>
-
- [CMAN] Free up any queued messages when someone disconnects
- When a client disconnects we need to go through the list of
- queued replies to get rid of any that have not been collected.
-
- [CMAN] Make cman cope with the new objdb structure
- Now the /cluster bits are held on the objdb below "cluster"
- we need to look for everything (well, nearly everything)
- under there.
-
- Also add a 'cman_tool dump-db' command which is only built
- in DEBUG mode.
-
- [CCS] Fix the config loader for good
- We were removing the "/cluster" top level domain to allow /cluster/totem
- and other random ais bits to be at the top level of the objdb since
- aisexec expects to find them there.
- This is not clean in several way because it would break queries like:
- /cluster/child::* by returning a bunch of top levels objdb that are
- internal to aisexec and we don't want to expose to everybody.
- This is achieved by doing a few tricks here and there.. best would be
- to allow objdb symlinking.
- First we load the special bits for aisexec at the top level by using
- the right path within the xml config and then we load (again) the whole
- configuration.
- The final result will have some duplicates entries but for now we can
- live with that. The overhead is minimal.
-
-2008-03-14 Bob Peterson <rpeterso at redhat.com>
-
- Resolves: bz 435917: GFS2: mkfs.gfs2 default lock protocol differs from man page
-
-2008-03-14 David Teigland <teigland at redhat.com>
-
- libdlm: fix lvb copying
- When a program does a lock operation that reads an lvb, libdlm
- copies the lvb data from a bogus location instead of from the
- proper offset in the buffer it just read. The location of the
- lvb data is calculated wrongly due to a missing cast.
-
-2008-03-13 David Teigland <teigland at redhat.com>
-
- dlm_tool: print correct rq mode in lockdump
- The rq mode in a lockdump was incorrectly showing up as NL for
- granted locks instead of IV (invalid).
-
-2008-03-13 Christine Caulfield <ccaulfie at redhat.com>
-
- [DLM] Don't segfault if lvbptr is NULL
- Calling dlm_lock* with LKF_VALBLK and sb_lvbptr set
- to NULL could cause libdlm to segfault.
-
- Now it returns -1/EINVAL
-
-2008-03-11 Lon Hohberger <lhh at redhat.com>
-
- [rgmanager] Set cloexec bit in msg_socket.c
- Resolves Red Hat bugzilla #433313. Rgmanager did not
- have the close on exec bit set for any sockets it was
- managing, causing problems with SELinux
-
- [rgmanager] Make ip.sh check link states of non-ethernet devices
- Resolves: Red Hat Bugzilla #331661
-
-2008-03-11 David Teigland <teigland at redhat.com>
-
- groupd: purge messages from dead nodes
- bz 436984
-
- In the fix for bug 258121, 70294dd8b717de89f2d168c0837c011648908558,
- we began taking nodedown events via the groupd cpg, instead of via the per
- group cpg. Messages still come in via the per group cpg. I believe that
- that opened the possibility of processing a message from a node after
- processing the nodedown for it.
-
- In Nate's revolver test, we saw it happen; revolver killed nodes 1,2,3,
- leaving just node 4:
- 1205198713 0:default confchg left 3 joined 0 total 1
- 1205198713 0:default confchg removed node 1 reason 3
- 1205198713 0:default confchg removed node 2 reason 3
- 1205198713 0:default confchg removed node 3 reason 3
- ...
- 1205198713 0:default mark_node_started: event not starting 12 from 2
-
-2008-03-11 Lon Hohberger <lhh at redhat.com>
-
- [rgmanager] Don't call quotaoff if quotas are not used
-
- [CMAN] Fix "Node X is undead" loop bug
- This was caused by an improper assignment to ps_incarnation
- after a node decides to evict another node. The fix
- is to simply make the internal (memory) assignments before
- calling qd_write_status()
-
-2008-03-11 Fabio M. Di Nitto <fabbione at fabbione.net>
-
- [CCS] Fix possible memory corruption on double free
-
-2008-03-10 Fabio M. Di Nitto <fabbione at fabbione.net>
-
- [CCS] Cleanup duplicate vars from previous commit
-
- [CCS] Fix xml -> objdb config import
-
-2008-03-08 Fabio M. Di Nitto <fabbione at fabbione.net>
-
- [BUILD] Allow release version to contain padding 0's
-
-2008-03-07 Fabio M. Di Nitto <fabbione at fabbione.net>
-
- Add toplevel .gitignore
- Ignore: make/defines.mk
-
- [CCS] Upload all subsystem configs into objdb
- By adding the the whole cluster.conf to the objdb, we can start moving
- all the subsystems away from using ccs directly and ask cman for config bits.
-
- [BUILD] Fix configure script to handle releases
- Add concept of release_micro value used only for RELEASE_VERSION.
-
- Attention packagers: release_micro is a mandatory value.
-
- Add support for encoding release versions in the tarball by adding
- a file at release time:
-
- cluster/make$ cat official_release_version
- VERSION "2.2.10"
-
- will automatically set the release to 2.2.10 with library sonames to 2.2
-
- NOTE: manual values will always override whatever is set by default.
-
-2008-03-04 Lon Hohberger <lhh at redhat.com>
-
- [fence] Make fence_xvmd support reloading of key files on the fly.
-
- Merge branch 'master' of ssh://lhh@sources.redhat.com/git/cluster
-
- Add / fix Oracle 10g failover agent
-
- Update changelog
-
- Add Sybase failover agent
-
-2008-02-29 Ryan McCabe <rmccabe at redhat.com>
-
- Merge branch 'master' of ssh://sources.redhat.com/git/cluster
-
- Feeling pedantic. More spelling fixes.
-
-2008-02-29 Lon Hohberger <lhh at redhat.com>
-
- Merge branch 'master' of ssh://lhh@sources.redhat.com/git/cluster
-
- Fix #435189 - fenced override doesn't allow rgmanager to recover because it doesn't tell cman that fencing was completed.
-
-2008-02-29 Ryan McCabe <rmccabe at redhat.com>
-
- Merge branch 'master' of ssh://sources.redhat.com/git/cluster
-
- Fix a few misspellings
-
-2008-02-28 Christine Caulfield <ccaulfie at redhat.com>
-
- Initialise votes to 0
- The code in get_cman_join_info() expects the local variable 'votes'
- to be initialised to zero, but it wasn't being.
-
- Fix multicast display in 'cman_tool status'
- Due to misreading of a man page, inet_pton was being called
- incorrectly and not returning a valid sockaddrin[6].
-
-2008-02-27 Fabio M. Di Nitto <fabbione at fabbione.net>
-
- [CMAN] Move ccs config ais module into ccs/ccsais
-
-2008-02-27 Ryan McCabe <rmccabe at redhat.com>
-
- Fix bz434790
-
-2008-02-27 Christine Caulfield <ccaulfie at redhat.com>
-
- Merge branch 'cman3'
-
- [CMAN] Remove deleted nodes from our list
- Detect nodes that have been deleted from CCS and remove them from our list
- if they are dead.
-
- [CMAN] Don't ignore cman_tool version
- the processing of the 'cman_tool version' command updates the
- config_version variable immediately rather than waiting for
- the message to come back. Because of this, when the message
- /does/ come back it gets ignored because cman thinks it
- already has the latest config!
-
- The solution is, of course, not to update the config version
- until we receive the RECONFIGURE message.
-
-2008-02-26 Lon Hohberger <lhh at ayanami.boston.devel.redhat.com>
-
- * Make fence_ack_manual.sh accept -n * Ensure fence_rps10 defaults to reboot * Make clustat not display estranged nodes which are now offline
-
-2008-02-25 Lon Hohberger <lhh at ayanami.boston.devel.redhat.com>
-
- Correct incorrect netmask handling in ip.sh
-
-2008-02-22 Chris Feist <cfeist at redhat.com>
-
- Test git commit.
-
- Removed newline.
-
- Test git commit.
-
- Added date. (test git commit)
-
-2008-02-22 Christine Caulfield <ccaulfie at redhat.com>
-
- cman3 commit
- Separates out ccs interaction from cman itself, so we can replace
- the configuration back-end easily.
-
-2008-02-21 David Teigland <teigland at redhat.com>
-
- updates
-
-2008-02-20 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Sync missing commit from RHEL5 branch:
- Dmitry Monakhov from OpenVZ linux kernel team reports about wrong locking
- order in gfs_get_parent(). Patch submitted by Vasily Averin (vvs at sw.ru)
- under Red Hat bugzilla 400651
-
-2008-02-18 ccaulfield <ccaulfield>
-
- Allow unnamed parent objects. This fixes a bug where <fence> entries appeared under the top-level rather than the clusternode.
-
-2008-02-15 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Fix http://bugs.debian.org/465790
-
-2008-02-12 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Clean up qdisk man page.
- -\fB...>\fP is not a keyword (starts the line with .)
-
- make the man page more consistent with use of />
-
- Man page cleanup.
- .SP is not a keyword. Change it to .SH.
-
- Cleanup man page.
- Lines starting with "." are man keywords. Just a plain space in front
- to make it clean.
-
- Stop linking against unrequired libraries.
- A lot of small tools were linking against a bunch of libraries for no reasons.
- Clean them up as much as possible as static linking is not spotted automatically.
-
- Problem spotted by some Debian automatic test tools and reported by
- Frederik Schüler <fs at debian.org>
-
-2008-02-08 Patrick Caulfield <pcaulfie at redhat.com>
-
- Implement a nicer way of getting the quorum disk information. The libcman API remains the same but the connection to cman itself works using the normal GETNODE call.
-
-2008-02-06 Jonathan Brassow <jbrassow at redhat.com>
-
- - Bug 431705: HA LVM should prevent users from running an invalid setup (2) - better checking for improper setup -- this time for presence of fail-over VG in the volume_list
-
- - better checking for improper setup -- this time for presence of fail-over VG in the volume_list
-
-2008-02-04 Patrick Caulfield <pcaulfie at redhat.com>
-
- Change a log_printf() into a syslog() so that the die message always arrives in the log.
-
-2008-01-30 Lon Hohberger <lhh at redhat.com>
-
- Fix short read handling in read_pipe
-
- Make fenced's override wait time configurable.
-
- Make default TTL 4 instead of 2 per Fabio's recommendation (e.g. RFC2608). Make TTL configurable in cluster.conf/command line for fence_xvm.
-
-2008-01-30 Patrick Caulfield <pcaulfie at redhat.com>
-
- Oops. a bit too much cman3 fell into that last checkin
-
- Improve startup error checking and logging.
-
-2008-01-30 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Whitespace cleanup
-
- Remove unrequire functions. This follow gfs2 changes
-
- Bugzilla 227892:
- * Warn people about the RG corruption and request a gfs_fsck
- * Upon error detection, perform a minimum error data collection
-
- Port forward patch from RHEL5 branch to HEAD.
-
- Original author: Wendy Cheng <wcheng at redhat.com>
-
- Red Hat bugzilla 244343:
- GFS supports two modes of locking - lock_nolock for single node filesystem
- and lock_dlm for cluster mode locking. The gfs lock methods are removed from
- file operation table for lock_nolock protocol. This would allow VFS to handle
- posix lock and flock logics just like other in-tree filesystems without
- duplication.
-
- Port forward patch from RHEL5 branch to HEAD.
-
- Original author: Wendy Cheng <wcheng at redhat.com>
-
-2008-01-28 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Remove obsolete file
-
- Bump kernel check to 2.6.24
-
- Fix build warning
-
- Remove unused variable
-
- fix gfs for the removal of sendfile and helper functions
- Sendfile and helper functions have been removed in 2.6.24. Migrate
- to using splice_read and generic_file_splice_read helper function.
-
- Update gfs to cope with 2.6.24 export op changes and other bits
-
- EXPORT_SYMBOL(xtime) has been removed in 2.6.24.
- Let's use the exact same value (tv_nsec) just from another source.
-
- Update gnbd kernel modules to build with 2.6.24
-
-2008-01-26 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 223660: man gfs2(8) refers to the gfs2_mkfs manpage
-
-2008-01-25 Lon Hohberger <lhh at redhat.com>
-
- Fix qdiskd master abdication logic (#430264)
-
- Fix #430272, #430220
-
-2008-01-24 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 429633: gfs_tool doesn't recognize GFS file sytem
-
-2008-01-24 Benjamin Marzinski <bmarzins at redhat.com>
-
- Fix for bz #426291. gfs_glock_dq was traversing the gl_holders list without holding the gl_spin spinlock, this was causing a problem when the list item it was currently looking at got removed from the list. The solution is to not traverse the list, because it is unncessary. Unfortunately, there is also a bug in this section of code, where you can't guarantee that you will not cache a glock held with GL_NOCACHE. Fixing this issue requires significantly more work.
-
-2008-01-24 Lon Hohberger <lhh at redhat.com>
-
- Unblock signals after fork() so heuristics using signals don't hang
-
-2008-01-21 Lon Hohberger <lhh at redhat.com>
-
- Fix ccs connect error handling
-
-2008-01-21 Jonathan Brassow <jbrassow at redhat.com>
-
- - ccs library now checks for bad file descriptors as input
-
-2008-01-21 David Teigland <teigland at redhat.com>
-
- bz 429546
- Fix an alignment problem with ppc64. Things work if we do the
- byte-swapping on the original structure and then copy it into the
- final buffer, instead of copying first and then trying to do the
- byte-swapping at an offset within the send buffer.
-
-2008-01-21 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Add fake support for -r option at umount so we don't fail if gfs2 is not umounted by it's init script.
-
-2008-01-18 Lon Hohberger <lhh at redhat.com>
-
- fix 429248
-
-2008-01-18 Abhijith Das <adas at redhat.com>
-
- fix for bz333961 - adds support for -n and -f mount options
-
- lon's patch removes 'Domain-0' check which was breaking xvm because cman starts before xend. patch also allows you to put NODENAME in /etc/sysconfig/cluster
-
-2008-01-17 David Teigland <teigland at redhat.com>
-
- odds and ends not commited
-
-2008-01-17 Lon Hohberger <lhh at redhat.com>
-
- file oracledb.sh was initially added on branch RHEL5.
-
-2008-01-16 Lon Hohberger <lhh at redhat.com>
-
- Fix #60 error in #428346 bug
-
-2008-01-16 Patrick Caulfield <pcaulfie at redhat.com>
-
- Zero namelen when doing an unlock. On 32/64 bit systems it can make a horrible mess otherwise.
-
-2008-01-15 Ryan McCabe <rmccabe at redhat.com>
-
- Allow "option=(on|off|reboot)" (currently only fence_ilo takes "action")
-
-2008-01-15 Robert Peterson <rpeterso at redhat.com>
-
- Fixup contributed by Andy Price.
-
-2008-01-14 David Teigland <teigland at redhat.com>
-
- fix %llx printf warnings using (unsigned long long)
-
-2008-01-14 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Allow the resource to run on Debian/Ubuntu systems without manual patching, by checking for the apache2 daemon if httpd is not available.
- Replace =~ '^/' sintax with less bash dependent version.
-
- Use grep -E instead of -P as perl regexp support is not built on all distros.
-
-2008-01-11 Jonathan Brassow <jbrassow at redhat.com>
-
- - Bug #428448 - HA LVM service fails to relocate when I/O is running
- Was failing to add new tag when relocating.
-
-2008-01-10 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add command-line override for 2node mode. Because of the way cman re-reads CCS it is quite possible to start up a cluster in 2 node mode manually, then add a third node via CCS (I think)
-
-2008-01-10 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Whitespace cleanup
-
- Fix alignment issues in rgmanager. This makes it possible to run rgmanager on sparc.
- Patch by Lon. Tested by both of us on x86, x86_64, parisc, ia64, sparc.
-
-2008-01-09 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 426670: GFS2: man page for gfs2_tool has commented lockdump section
-
-2008-01-09 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Fix mkdir invokation to not fail when dir already exists
-
-2008-01-08 Lon Hohberger <lhh at redhat.com>
-
- Roll back previous patch to ip_lookup.c
-
- Fix build problem reported by Chris Feist
-
-2008-01-08 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Fix "off the source tree" install. This was a small regression introduced with the /etc/cluster/cluster.conf configure bits.
-
-2008-01-07 Lon Hohberger <lhh at redhat.com>
-
- Figure out where slang is installed.
-
- Correct signed vs. unsigned comparison on sparc64
-
-2008-01-07 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- makes it possible to change the default configuration file by setting --confdir (default to /etc/cluster) and --conffile (cluster.conf).
- NOTE: manpages with hardencoded /etc/cluster/cluster.conf are not updated.
- If you dare to change these defaults you know what you are doing.
-
- NOTE to developers: you will need to re-run ./configure to set the new vars.
-
-2008-01-04 Jonathan Brassow <jbrassow at redhat.com>
-
- - a regression... When tagging at the LV-level, the script should complain if there is more than one LV / VG.
-
-2008-01-04 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Fix clean target. core files have pid attached to them.
-
-2008-01-03 Jonathan Brassow <jbrassow at redhat.com>
-
- lvm resource script now allows multiple LVs per VG as long as they move together (exist on the same machine).
-
- s/validate/verify/
-
- BUG 427377 HA LVM now allows multiple LVs/VG as long as they move together
- Package builder, please note the addition of 3 new files.
-
-2008-01-03 Patrick Caulfield <pcaulfie at redhat.com>
-
- Get rid of redundant totemip_parse() call. This was in a bad place and could cause aisexec stalls and disallowed nodes, particularly at startup.
-
-2008-01-03 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Fix buffer align. So far this one makes the entire stack run on sparc up to fenced.
-
-2008-01-02 Lon Hohberger <lhh at redhat.com>
-
- Fix endian issue on big-endian arches
-
-2008-01-02 Patrick Caulfield <pcaulfie at redhat.com>
-
- Use define CMAN_NAME for the purpose for which it was intended
-
- Lets see if I can do this commit properly... Fix swab of an int to be swab32 rather than swab16
-
-2008-01-02 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Cleanup manpages to work with whatis.
- Patch from Frederik Schüler <fs at debian.org>
-
- Add interpreter to ocf-shellfuncs.
- Patch by Frederik Schüler <fs at debian.org>
-
-2008-01-02 Patrick Caulfield <pcaulfie at redhat.com>
-
- totempg_ifaces_get() always copies INTERFACE_MAX addresses so make sure we alloate enough space for them all.
-
-2007-12-31 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- aisexec config parser expects error_string to be set also when we successfully read the configuration.
-
-2007-12-30 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Fix error reporting to aisexec.
- aisexec expects an error_string string set by config_read if config_read fails.
- The lack of error_string is not checked by aisexec that will segfault.
-
- Set error_string properly and clean up the old errorstring that is not used.
-
- Fix building when -DDEBUG is defined.
-
- Fix build with -DDEBUG
-
-2007-12-24 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Once again change ifdef to fix fail to build on hppa/parisc
-
- Fix all: target.
-
-2007-12-22 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Fix gnbd build dependencies. For too long we did rely on gnbd/Makefile to build in the right order but single builds were broken.
-
- Fix fence build dependencies. For too long we did rely on fence/Makefile to build in the right order but fence_tool and fence_node were just broken.
-
- Fix a few regressions introduced by the big Makefile clean up:
- - restore all: target as default. Libraries need a small special casing in the
- include / target order due to var expansion.
-
- - fix udev uninstall target: typo in make/uninstall.mk and requires (for sake
- of simplicity 51-dlm.rules in /lib instead of /script.
-
- - gfs/Makefile and fence/agents/Makefile don't need passthrough.mk.
-
- - Fix uninstall of symlinks.
-
- - Fix uninstall of rgmanager resources.
-
- Collapse all install: and uninstall: targets in make/install.mk make/uninstall.mk
- Change almost all Makefile's to use them.
-
- Convert to use make/clean.mk
-
- Remove unrequired distclean targets
-
-2007-12-21 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Collapse all common clean: target bits into make/clean.mk generalclean: target.
- Update all relevant makefile's to use generalclean.
-
- Required by this change:
-
- all TARGETS need to be defined before sourcing *.mk files to allow
- simpler var expantions.
-
- update all makefiles as a consequence
-
- apply alpha sort :)
-
- Remove obsolete and unused Makefile
-
- Install forgotten dlm man pages.
-
- Collaps all man Makefile's common snippets into man/man.mk
- Change all man Makefile's to use it.
-
- From now on it will be enough to source make/man.mk and add a TARGET=
- with the man page.
-
- A long time ago we did start collecting common Makefile snippets in one location.
- This time we shrink all common objects rules in make/cobj.mk
-
- Use newly defined $(OBJDIR) to source .mk files snippet. This reduced the hardcoded paths in Makefiles to one to include defines.mk and makes it easier to change stuff across the tree in one shot.
-
- Fix clean target
-
- Minor objdir rework to extend flexibility.
- the first shot of objdir implementation implied that you did:
-
- cd cluster
- ./configure --objdir... etc.
- cd /path/to/objdir
- make
-
- now you can:
-
- mkdir objdir
- cd objdir
- /path/to/configure
- make
-
- NOTE: in this case you don't need to specify objdir. it will be automatically
- set up for you.
-
- As a nice side effect you can also be anywhere on the fs and do:
-
- /path/to/configure --objdir=/path/to/obj
- cd /path/to/obj
- make
-
- and it will work.
-
- Fix 2 corner cases when setting up the objdir:
- - do not symlink symlinks.. this allows to setup multiple objdirs within the
- source tree.
-
- - do not copy/symlink defines.mk from other trees or bad thing happens.
-
-2007-12-20 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- * globally rename BUILDDIR to SRCDIR to reflect what it really is.
- * top level configure:
- - add --objdir=/path option (default to current tree - it does not change
- current behaviour if not specified and different from current tree)
- - add a perl subroutine to handle symlinks
- - check and setup /path
- - switch all libdirs to use the objdir directly
- - propagate objdir to make/defines.mk
-
- NOTE: those changes require 2 perl modules that should be available everywhere: Cwd 'abs_path'; and File::Basename;.
-
- NOTE2: you will need to rerun ./configure after applying the patch.
-
- * make/defines.mk.input:
- - suck in OBJDIR from top level configure
- - define THISDIR as a relative path from the top level.
- For example: if PWD /usr/src/cluster/cman/lib, THISDIR will contain
- cman/lib.
- - define S as full path to SRCDIR/THISDIR/
-
- * all Makefiles:
- - convert includes path to use $(S) and always point to the source as
- defined in make/defines.mk.
- - fix all object generation targets to use $(S).
- - fix all install targets to $(S) where required.
-
- * Random cleanup:
- - ccs/daemon/Makefile: do not kill files that are not around.
- - dlm/tool/Makefile: use ${dlmincdir} and $(SRCDIR)/group/dlm_controld/
- instead of relative paths and do not include itself as there are no
- header files. Also use ${dlmlibdir} for linking.
- - fence/Makefile: change build order as this is required to avoid extra
- hacks due to shared C files around.
- - gfs/gfs_fsck/Makefile: fix symlinking to be relative and not absolute
- or the symlink is useless.
- - gfs2/fsck/Makefile: likewise.
- - gfs2/mkfs/Makefile: likewise.
- - gnbd/utils/Makefile: create bits. This is to avoid even more hacks than
- fence/Makefile to cope with shared objects. One day we will need to
- review all of this.
-
- Cleanup leftovers from the very old build system. We were using a very complex way to set release_major and release_minor because in the old system it was not possible to set them directly from ./configure.
- Remove the old cruft since ./configure can now take those values directly in
- input.
-
-2007-12-19 Lon Hohberger <lhh at redhat.com>
-
- Allow soft dependencies when central_processing is enabled
-
- Fix #254111 - when stopping a service using a shared GFS resource, it umounts it even if other services are using it.
-
- fix typo in clusterfs.sh
-
-2007-12-19 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Fix extracflags and extraldflags to be recognized as options or configure will fail.
-
-2007-12-14 Lon Hohberger <lhh at redhat.com>
-
- Fix misc central events bugs.
-
- Add return value for inability to run due to exclusive flag being present
-
-2007-12-14 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Make sure we invoke virConnectOpen with a proper URI. NULL is deprecated in libvirt and we have no control over distro defaults that might not be xen:///.
- Patch by Soren Hansen <soren at ubuntu.com>
-
-2007-12-13 Patrick Caulfield <pcaulfie at redhat.com>
-
- Allow rrp_mode to be overridden in cluster.conf
-
- Fix altname option
-
-2007-12-12 Lon Hohberger <lhh at redhat.com>
-
- Misc. minor central processing bugfixes
-
- Add missing ds.h
-
-2007-12-11 Ryan O'Hara <rohara at redhat.com>
-
- Fix issue with endian conversion that caused problems for mixed architecture nodes on same subnet. Need to correct swap byte ordering of comm_header_t structure before copying into buffer and when dereferencing.
-
-2007-12-11 Patrick Caulfield <pcaulfie at redhat.com>
-
- Some small fixes to the networking param code, thanks to Fabio on IRC
-
- Set networking parameters suitable for running DLM over sctp
-
- Tidy comments
-
-2007-12-10 Lon Hohberger <lhh at redhat.com>
-
- Fix type-punned errors on i386
-
-2007-12-10 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add multi-path capability. Each address we get from cman is now passed into the DLM.
- It's still incumbent on cluster.conf to set the transport to sctp.
-
-2007-12-07 David Teigland <teigland at redhat.com>
-
- new plock ownership related stuff
-
-2007-12-07 Lon Hohberger <lhh at redhat.com>
-
- Make S-Lang library & include paths configurable.
- NOTE: You MUST rerun configure after applying this
- update or rgmanager will no longer build.
-
-2007-12-06 Lon Hohberger <lhh at redhat.com>
-
- Fix format warnings on newer GCC
-
- Add missing sets.h
-
-2007-12-06 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add option to disable kernel_check.
- From Soren Hansen:
- "It's handy to be able to
- disable the new kernel version check if we don't actually have the
- kernel headers around, but know that the proper stuff is around when
- it's needed."
-
-2007-12-05 Lon Hohberger <lhh at redhat.com>
-
- Preliminary GFS2 support in clusterfs.sh
-
-2007-12-05 Patrick Caulfield <pcaulfie at redhat.com>
-
- Print votes of quorum device in cman_tool status
-
-2007-12-04 Lon Hohberger <lhh at redhat.com>
-
- Merge force-unmount from RHEL5 branch for netfs.sh script
-
-2007-12-04 Ryan O'Hara <rohara at redhat.com>
-
- BZ 323111 Remove permission() checks from xattrs ops.
-
-2007-11-30 Lon Hohberger <lhh at redhat.com>
-
- Add centralized S/Lang event script engine v0.8.1
-
- Merge from RHEL5 branch, pass 3
-
- Merges from RHEL5 branch - round 2.
-
- Merges from RHEL5 branch - round 1.
-
-2007-11-30 David Teigland <teigland at redhat.com>
-
- change some log messages
-
-2007-11-29 David Teigland <teigland at redhat.com>
-
- Testing revealed a couple more races I hadn't expected.
-
-2007-11-29 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 325151: GFS2: gfs2_fsck changes to system inodes don't stick
-
-2007-11-29 Patrick Caulfield <pcaulfie at redhat.com>
-
- Reinstate 'cman_tool join -X', allowing people to start a cluster without the hassle of a cluster.conf file. There are some caveats to this, which are mentioned in the man page.
-
-2007-11-28 David Teigland <teigland at redhat.com>
-
- A performance optimization for plocks. This speeds up locks that are repeatedly accessed by processes on a single node. Plocks used by processes on multiple nodes work the same way as before. The optimization is disabled by default, and can be enabled by setting
- <gfs_controld plock_ownership="1"/>
-
- in cluster.conf, or by starting gfs_controld with "-o1". It is disabled
- by default because enabling it breaks compatibility with previous versions
- of gfs_controld. If all nodes in the cluster are running this version,
- then plock_ownership can be enabled.
-
- The plock_ownership mode needs extensive testing. This also introduces
- some minor changes when plock_ownership is disabled, so new testing is
- also required in that mode. Abhi and I worked on this together.
-
-2007-11-28 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 402971: GFS2: gfs2_edit savemeta doesn't save rindex file.
-
-2007-11-27 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Do not install stripped binaries
-
-2007-11-24 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Switch configure to use perl warnings and fix them up.
- Add kernel_version version check subroutine.
-
- Set minimal kernel version requirement to 2.6.23.
-
- Many thanks should go to Marian Marinov <mm at yuhu.biz> for the original
- patch and contribution.
-
-2007-11-21 David Teigland <teigland at redhat.com>
-
- ASSERT was doing fprintf(stderr) which goes somewhere we don't want when running as a daemon.
-
-2007-11-20 Patrick Caulfield <pcaulfie at redhat.com>
-
- Clear out the ports opened list when a node goes down. Thanks, Lon. bz#327721
-
-2007-11-17 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 382581: GFS2: gfs2_fsck: buffer still held for block
-
-2007-11-15 Robert Peterson <rpeterso at redhat.com>
-
- Add the "printsavedmeta" option to the gfs2_edit man page.
-
- gfs2_edit wasn't printing directory entries and extended attributes correctly.
-
- Added ability to save inode extended attributes in "savemeta". This is necessary for in order to test bug #382581. Added ability to recurse one level on directories when printing. Fixed bugs associated with traversing directory leaf blocks. Added ability to recognize and display log buffer and quota change blocks. Simplified code by breaking up display_indirect into two functions: one for indirect blocks, the other for directory leaf blocks.
-
-2007-11-15 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Fix bugzilla 362031
-
-2007-11-14 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 352841: GFS2: Evaluate and implement missing gfs2_tool features
-
-2007-11-14 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Hard encode paths to (u)mount.gfs*
- given the very nature of mount(8) api to look only in /sbin for (u)mount
- helpers, we can hard encode the install paths for our tools into the
- Makefile systems. I have never seen anywhere a different behavior in any
- Linux distribution and it will make packagers life simpler.
-
- Thanks also to Marc - A. Dahlhaus for spotting the missing DESTDIR
- entries.
-
-2007-11-13 Robert Peterson <rpeterso at redhat.com>
-
- Fixed printing of gfs1 journals.
-
- Resolves: bz 364741: GFS2: gfs2_quota doesn't work unless lock table specified
-
-2007-11-12 Patrick Caulfield <pcaulfie at redhat.com>
-
- file msgtest.c was initially added on branch RHEL4.
-
-2007-11-12 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Be consistent across the entire tree on AR and RANLIB invocations
-
- The new Makefile system never invokes LD directly (and this is a good thing).
-
- Clean up STRIP usage. It is not consistent and we shouldn't strip random binaries.
-
-2007-11-09 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Remove cman_wait_init for now. It was becoming overly complicated for such simple task.
-
-2007-11-08 Jonathan Brassow <jbrassow at redhat.com>
-
- file rbtree.h was initially added on branch RHEL5.
-
- file rbtree.c was initially added on branch RHEL5.
-
-2007-11-08 Robert Peterson <rpeterso at redhat.com>
-
- Printing the quota file wasn't printing its contents due to a bug.
-
-2007-11-08 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add an explanation of the node states shown by "cman_tool nodes" and some informastion about the "disallowed" state.
-
-2007-11-07 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 336561: gfs2_tool accepts jdata flag; man page says no
-
- Fix a divide by zero if the target isn't a gfs or gfs2 file system.
-
- Resolves: bz 352581: GFS2: implement gfs2_tool lockdump
-
-2007-11-06 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 354201: GFS2: gfs2_tool: unknown mountpoint on some mount points
-
-2007-11-05 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Add cman_wait_init as wrapper for cman_admin_init/cman_init and cman_is_quorate
-
-2007-11-05 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add missing format string.
-
- Enhance API to retrive just the quorum device information using cman_get_node()
-
-2007-11-01 Patrick Caulfield <pcaulfie at redhat.com>
-
- Enable to_stderr logging if 'cman_tool join -d' is used.
-
-2007-11-01 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- If votes for quorumd is _not_ specified in cluster.conf, then automatically set votes to number of nodes - 1.
-
-2007-10-30 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 349601: GFS2 requires straightforward way to determine number of journals
-
-2007-10-29 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Apply, rework and cleanup second part of patch from Marco Ceci to fix 354421
-
-2007-10-26 David Teigland <teigland at redhat.com>
-
- xid needs to be unsigned long long
-
- don't setup netlink if deadlock is disabled
-
-2007-10-26 Ryan McCabe <rmccabe at redhat.com>
-
- patch from Marco Ceci to fix 354421
-
-2007-10-26 David Teigland <teigland at redhat.com>
-
- Improve the dumping of debug logs from daemons. bz 317181
- group_tool reads debug logs from groupd, fenced, and gfs_controld.
- The dumping code in all three daemons is now identical. The other
- change is that the dumping function terminates the final write
- with \0, and no longer sends the entire 1MB log buffer if it's not full.
-
-2007-10-26 Ryan McCabe <rmccabe at redhat.com>
-
- Compile with -Wformat=2, which will catch usually dangerous format string bugs
-
- Keep gcc from reporting a bogus warning when compiling with -Wformat=2
-
- rgmanager format string fixes
-
- More format string fixes
-
- Fix format string bug
-
-2007-10-25 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 337961: gfs_grow /mountpoint/ does not work
-
- Resolves: bz 345501: minor correction to previous commit.
-
- Resolves: bz 345501: GFS2: gfs2 utils uses non-canonicalized names
-
-2007-10-24 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz #334481: gfs2_jadd man page refers to non-existent -T option
-
-2007-10-24 Ryan McCabe <rmccabe at redhat.com>
-
- Commit msg with the last commit went missing..
- - Fix unsafe string handling:
- - replace memset(s,c,n);sprintf(s,...); with snprintf with proper error checking
- - don't overflow the stack if the cluster name specified in the env var is too long
- - don't overflow the stack if the local nodename from uname(2) is too long
- - don't overflow the stack if the local nodename specified in the env var is too long
-
- - Don't leak the ccs descriptor in get_ccs_join_info() on errors
- - Fix a couple of small memory leaks in error paths
- - Handle OOM conditions
-
- - Fix unsafe string handling: - replace memset(s,c,n);sprintf(s,...); with snprintf with proper error checking - don't overflow the stack if the cluster name specified in the env var is too long - don't overflow the stack if the local nodename from uname(2) is too long - don't overflow the stack if the local nodename specified in the env var is too long
- - Don't leak the ccs descriptor in get_ccs_join_info() on errors
-
-2007-10-24 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Use standard path var and memset it before each query
-
- Use right vars to print debugging info
-
- Clean up duplicate ccs query paths
-
-2007-10-23 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Fix purely cosmetic typo
-
-2007-10-19 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 291551: gfs2_fsck clears journals without asking.
-
- Minor correction to the previous commit. Bopping through indirect pointers was inadvertently changing variable "block" during savemeta.
-
-2007-10-18 Robert Peterson <rpeterso at redhat.com>
-
- While working on bz #291551, I discovered that gfs2_edit savemeta only saved true metadata, but we need more than that. There are lots of blocks that are considered "data" (not metadata) by the RG bitmaps that we still need to save. These include: 1. All the system journals (which may contain both metadata and user data, disguised as data blocks within the journal). We need to pick out the parts that do not contain user data. 2. The system files, such as statfs, inum, quota fil [...]
- This change allows gfs2_edit to save and restore these blocks properly,
- and also to print out a breakdown of a saved metadata file:
- gfs2_edit printsavedmeta /tmp/gfsmeta
-
- It also improves on the information given when a journal is dumped.
-
-2007-10-17 Abhijith Das <adas at redhat.com>
-
- fix bz 311591 - make lock_dlm the default lock protocol in mkfs.gfs and mkfs.gfs2
-
-2007-10-17 Lon Hohberger <lhh at redhat.com>
-
- Include missing debug.h header file
-
-2007-10-17 David Teigland <teigland at redhat.com>
-
- used wrong define, DLM_LOCK_ instead of LKM_
-
-2007-10-17 Lon Hohberger <lhh at redhat.com>
-
- Make fence_xvmd read options from ccs like it should
-
- Make fence_xvmd read options from ccs like it should; merge dbg_printf patch from RHEL5 branch
-
-2007-10-17 David Teigland <teigland at redhat.com>
-
- The output of 'dlm_tool lockdump' could make it appear that a granted lock was still converting because the rqmode reported by the kernel is not reset to IV when a NOQUEUE convert fails.
-
-2007-10-15 Patrick Caulfield <pcaulfie at redhat.com>
-
- Make sure it compiles against latest openais trunk.
-
-2007-10-12 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: 235931: gfs2_edit command to set NOALLOC flag
-
- Add the ability for gfs2_edit to print gfs1 journals.
-
-2007-10-11 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 251180: Build time warnings for gfs2 userland tools
-
- Resolves: bz 295301: Need man page for gfs_edit
-
- Resolves: bz 240545 (addendum).
-
-2007-10-11 Ryan McCabe <rmccabe at redhat.com>
-
- E2BIG is more appropriate than ENOSPC here
-
-2007-10-10 Ryan McCabe <rmccabe at redhat.com>
-
- Allow valid addresses of nodes even if they're not identical to the way they're specified in cluster.conf
-
- Fix code that caused warnings on platforms where sizeof(void *) != sizeof(int)
-
-2007-10-08 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 247318: Need man page for gfs2_edit
-
-2007-10-08 Ryan McCabe <rmccabe at redhat.com>
-
- add new function to libccs: * ccs_lookup_nodename * @cd: ccs descriptor * @nodename: node name string * @retval: pointer to location to assign the result, if found * * This function takes any valid representation (FQDN, non-qualified * hostname, IP address, IPv6 address) of a node's name and finds its * canonical name (per cluster.conf). This function will find the primary * node name if passed a node's "altname" or any valid representation * of it.
-
-2007-10-03 Marek 'marx' Grac <mgrac at redhat.com>
-
- Resolves: #250681 - mount samba share from netfs RA
-
-2007-10-03 Patrick Caulfield <pcaulfie at redhat.com>
-
- Tidy logsys use. Is this OK now Steve ?
-
-2007-10-01 Ryan McCabe <rmccabe at redhat.com>
-
- Fix 314091
-
-2007-10-01 Patrick Caulfield <pcaulfie at redhat.com>
-
- Use "logger_subsys" & "subsys" keys rather than "logger" and "ident".
-
-2007-10-01 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Use proper vars to disable targets
-
- Fix configure to handle properly 0.x or x.0 releases.
-
-2007-09-28 Patrick Caulfield <pcaulfie at redhat.com>
-
- Reinstate cman_tool services, which got lost inexplicably.
-
- Call "group_tool ls" for cman_tool services
-
-2007-09-28 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- configure: Backticks don't work in strings. Use POSIX::uname().
- The strings that use backticks to get `uname -r` don't work as expected.
- Let's use POSIX::uname() directly and let perl do the work.
-
- Patch by Joel Becker <joel.becker at oracle.com>
-
-2007-09-27 Patrick Caulfield <pcaulfie at redhat.com>
-
- Recalculate quorum based on the expected votes value of a new node. bz#308581
-
-2007-09-25 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 304001: GFS2: Filesystems with 1k block size won't mount
-
-2007-09-24 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- switch permanently to perl -w
- fix all the warnings in the script. Thanks to Patrick for spotting an extra one.
-
- Add support to allow disable the build/install targets for each specific subsystem in the tree.
- Major clean up of top level Makefile thanks to Joel Becker input/suggestions.
-
-2007-09-21 Ryan McCabe <rmccabe at redhat.com>
-
- fix bz277781 by accepting "nodename" as a synonym for "node"
-
-2007-09-21 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Fix uninstall target
-
-2007-09-19 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- white space cleanup
-
-2007-09-19 Ryan O'Hara <rohara at redhat.com>
-
- Add ability to format output and filter based on node name.
-
-2007-09-19 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't use _logsys functions as I get my wrist slapped.
-
-2007-09-19 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Fix configure and Makefiles to cope with kernel built with O=/path...
- Original patch by Joel Becker (joel.becker at oracle.com)
-
- NOTE for developers: you will need to re-run ./configure to update make/defines.mk
- NOTE for packages: you might need to change the way ./configure is invoked to cope
- with kernel_build vs kernel_src
-
-2007-09-19 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix type-punned pointer warnings
-
-2007-09-19 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Fix more warnings when building with -O2 and also fix get_rmtabd_loglevel to actually do what is supposed to.
-
-2007-09-18 Lon Hohberger <lhh at redhat.com>
-
- Fix #258141 - possible use after free in fenced
-
-2007-09-18 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 247318: Need man page for gfs2_edit
-
- Resolves: bz 291451: gfs2_fsck -n, Bad file descriptor on line 63 of file buf.c (addendum)
-
-2007-09-18 Abhijith Das <adas at redhat.com>
-
- man page changes for new gfs2_quota reset option
-
-2007-09-18 Patrick Caulfield <pcaulfie at redhat.com>
-
- check quorum device name length against the right size.
-
-2007-09-17 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 291451: gfs2_fsck -n, Bad file descriptor on line 63 of file buf.c
-
-2007-09-17 Patrick Caulfield <pcaulfie at redhat.com>
-
- Use openais logsys functions.
-
-2007-09-16 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 287901: GFS2: fsck errors and corruption with files > 945MB
- The gfs2_fsck program wasn't following enough levels of indirection
- when walking metadata.
-
-2007-09-14 David Teigland <teigland at redhat.com>
-
- go back to default of -02 now that -Werror problems are fixed
-
-2007-09-11 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix compile with -O2 -Werror
-
- Make it compile with -O2, by fixing a very dodgy cast.
-
- Allow it to build with -O2
-
-2007-09-07 David Teigland <teigland at redhat.com>
-
- Do nodedown events when the confchg for the groupd cpg arrives, instead of when the per-group cpg confchg's arrive. This means all nodes should have agreed ordering on the sequence of confchg's and messages, since all messages go through the groupd cpg.
- This should fix bz 258121 but I can't reproduce anything like that
- bug to verify.
-
-2007-09-07 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- So in this first patch (that seems the most urgent one):
- - Make prefix default to /usr
-
- - Clean up all prefix use around configure (this will make alternate
- prefixes like /usr/local works properly).
-
- - Add a specific --aisexecbin option that is passed to cman_tool build.
- This change defaults to /usr/sbin/aisexec (default aisexec install
- path) but also allow local override if you have aisexec installed in
- different paths.
-
- 3 NOTES:
-
- - the cman_tool change has not been tested in production. It builds and
- shows that the path is passed properly.
-
- - all people that use a prefix=/ will need to make sure to use some
- extra configure options to respect FHS (for example to install man
- pages in /usr/share/man rather than /share/man..).
-
- - If this patch goes in CVS, you need to make sure to re-run ./configure.
-
-2007-09-07 Patrick Caulfield <pcaulfie at redhat.com>
-
- Correctly reduce quorum when a node leaves using "cman_tool leave remove" bz#271701
-
-2007-09-06 David Teigland <teigland at redhat.com>
-
- forgot the 0 after the -O
-
- go back to a default of -O0 instead of -O2 to get the stuff with -Werror to build
-
-2007-09-04 David Teigland <teigland at redhat.com>
-
- report that a mount fails due to an in-progress unmount
-
- Reject mount attempts on an fs that's still in the process of unmounting. This regressed 8 months ago due to the bz 218560 changes.
-
-2007-08-30 Ryan McCabe <rmccabe at redhat.com>
-
- listen() is not supported on SOCK_DGRAM
-
-2007-08-30 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Collect common make targets for fence/agents written in python
-
- Collect all common make targets for fence/agents written in perl
-
- Remove old code. ACK by Lon
-
- Fix build warning
-
-2007-08-30 Ryan O'Hara <rohara at redhat.com>
-
- BZ 249781 - Fix ccs_tool to return EXIT_SUCCESS for most commands.
-
-2007-08-30 Lon Hohberger <lhh at redhat.com>
-
- Fix #229650, pass 3
-
-2007-08-30 Jonathan Brassow <jbrassow at redhat.com>
-
- file dm.h-copy was initially added on branch RHEL5.
-
- file dm-log.h-copy was initially added on branch RHEL5.
-
-2007-08-30 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Cleanup clumon/ as agreed on cluster-dev
-
-2007-08-29 David Teigland <teigland at redhat.com>
-
- I think I added this years ago, forget why
-
-2007-08-29 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- This is the first patch of a long series to collect common Makefile targets into their own snippets.
- Collect all passthrough operations into make/passthrough.mk.
-
- Update all passthrough Makefiles to use the new snippet.
-
- Cleanup group/test/Makefile
-
- Cleanup gfs/tests/ Makefiles
-
- Clean up cman/tests/Makefile
-
-2007-08-28 Ryan McCabe <rmccabe at redhat.com>
-
- Fix a handful of possible NULL pointer derefs
-
-2007-08-28 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix spelling of DAEMON, sigh
-
- Add a 'cman_tool debug' command that allows cman debugging levels to be changed on-the-fly
-
-2007-08-28 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Remove obsoleted Makefile
-
- change the default CFLAGS to "-Wall -O2 -g".
- add --debug option to configure that will override the default CFLAGS
- to "-Wall -O0 -DDEBUG -g".
-
- clean up all the relevant Makefiles.
-
- add a few missing ; to configure script.
-
- -Wall is added by default in CFLAGS via configure to make/defines.mk.
- Remove all the others redundant definitions.
-
-2007-08-24 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Add dlm/tests/Makefile
- clean up dlm/tests/usertest/Makefile
-
-2007-08-24 Abhijith Das <adas at redhat.com>
-
- fix for bz253016: userland fixes for gfs2 quota linked list
-
-2007-08-23 Jonathan Brassow <jbrassow at redhat.com>
-
- file queues.h was initially added on branch RHEL5.
-
- file queues.c was initially added on branch RHEL5.
-
- file logging.h was initially added on branch RHEL5.
-
- file logging.c was initially added on branch RHEL5.
-
- file local.h was initially added on branch RHEL5.
-
- file local.c was initially added on branch RHEL5.
-
- file list.h was initially added on branch RHEL5.
-
- file link_mon.h was initially added on branch RHEL5.
-
- file link_mon.c was initially added on branch RHEL5.
-
- file functions.h was initially added on branch RHEL5.
-
- file functions.c was initially added on branch RHEL5.
-
- file common.h was initially added on branch RHEL5.
-
- file cluster.h was initially added on branch RHEL5.
-
- file cluster.c was initially added on branch RHEL5.
-
- file clogd.c was initially added on branch RHEL5.
-
- file cmirror was initially added on branch RHEL5.
-
- file Makefile was initially added on branch RHEL5.
-
-2007-08-23 David Teigland <teigland at redhat.com>
-
- dstress fixes
-
- needed to be a little more thorough in taking a canceled transaction out of the dependency graph for cases where multiple locks were blocked between the same two transactions
-
- rewording and embellishing some bits related to openais.conf
-
-2007-08-23 Patrick Caulfield <pcaulfie at redhat.com>
-
- Mention the openais.conf parameters that cman overrides.
-
-2007-08-22 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Remove fence/agents/xen from CVS HEAD.
- ACK on cluster-devel and IRC #linux-cluster
-
- Remove cs-deploy-tool from CVS HEAD.
- Last commit on this tool was from 2005 and code is available in all other branches.
-
- ACK on cluster-devel and IRC #linux-cluster
-
- Remove ddraid from CVS HEAD.
- ACK on cluster-devel and IRC #linux-cluster
-
-2007-08-22 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add some info about openais.conf parameters
-
- Add some information about setting up multi-home (redundant ring)
-
-2007-08-22 David Teigland <teigland at redhat.com>
-
- fix attribute xml format for cluster_id and keyfile
-
-2007-08-22 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Fix build with gcc-4.2
-
-2007-08-22 David Teigland <teigland at redhat.com>
-
- add new test for deadlocks
-
- use an admin handle from cman to call set_dirty
-
- mention group_tool should be used instead of cman_tool services
-
-2007-08-22 Patrick Caulfield <pcaulfie at redhat.com>
-
- Update man page
-
-2007-08-22 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Cleanup FOO_RELEASE_NAME to RELEASE_VERSION
-
-2007-08-22 Patrick Caulfield <pcaulfie at redhat.com>
-
- Document that cman_set_dirty() needs an admin socket.
-
- Clear error flag for SET_DIRTY
-
-2007-08-21 David Teigland <teigland at redhat.com>
-
- comment out the new cman_set_dirty() call; it's not working
-
-2007-08-21 Ryan McCabe <rmccabe at redhat.com>
-
- Fix access beyond allocated memory
-
-2007-08-21 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Allow the full cluster suite to build using external kernel source.
- Also remove the use of -idirafter that with some old versions of gcc
- does not behave as we expect.
-
-2007-08-20 Abhijith Das <adas at redhat.com>
-
- fix for bz253172 - gfs2 init script should not unload any kernel modules
-
-2007-08-20 David Teigland <teigland at redhat.com>
-
- proper help output for -m option
-
- the -m mode option was being ignored and 0600 always used (this change must have been lost at the same time as the -d option)
-
- the NODIR new_lockspace flag was always being used, even if the -d was used to deselect it
-
- update ccs man pages
-
- Call the new cman_set_dirty() api to disallow clusters both with fence/dlm/gfs state from merging. Adjust the oom setting for the daemon to avoid oom kills.
-
-2007-08-20 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add a "dirty" flag to cman to prevent active clusters merging with one-another. bz#251966
-
-2007-08-20 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Remove redundant gfs_ondisk.h from gfs/include/ and gfs2/include/
- both files are outdated compared to the one shipped in
- gfs-kernel/src/gfs/gfs_ondisk.h and there should be no need of
- duplicates around the tree.
-
- gfs and gfs2 both use to include gfskincdir that is enough to guarantee
- that gfs_ondisk.h will be available at build time.
-
- gfs2/mount/Makefile requires this one liner. I spotted that we try to include
- gfs2kincdir that we never set and therefor it was failing to build without
- a local copy of gfs_ondisk.h
-
- add clean: target or make clean will fail.
- use TARGET8 to be consistent with TARGET3
-
-2007-08-17 David Teigland <teigland at redhat.com>
-
- handle addition/removal/failure of nodes during a deadlock cycle serialize deadlock cycles and limit how often cycles are started
-
- install in man dir
-
- add makefile
-
- install dlm_tool.8
-
- Vastly simplify this man page. Include no cman or fencing information but refer to the cman and fenced pages.
-
- Outline the basic ideas of multiple methods and multiple devices.
-
- minor updates
-
- add man page
-
-2007-08-16 David Teigland <teigland at redhat.com>
-
- mention fencing override, describe the structure of node fencing parameters in cluster.conf, point to web site for device-specific documentation
-
- add man pages
-
-2007-08-16 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz #240545: gfs2_fsck should behave more like the other fscks.
-
-2007-08-15 David Teigland <teigland at redhat.com>
-
- Update fence, fenced, fence_tool and fence_node man pages which were stuck in the RHEL4 era.
-
- clean out some options that were only relevant to rhel4 remove the monitor option which didn't do anything add the dump option to dump the fenced debug buffer (group_tool can still do this, but fence_tool wasn't oddly enough)
-
- clean out junk that was only relevant to rhel4
-
-2007-08-15 Ryan McCabe <rmccabe at redhat.com>
-
- Fix a few (harmless) places where memory is allocated but not freed I stumbled onto hunting down something else.
-
-2007-08-15 Lon Hohberger <lhh at redhat.com>
-
- Fix uninitialized var
-
-2007-08-13 David Teigland <teigland at redhat.com>
-
- put back the ability to do pid-based deadlock detection on 5.1 kernels
-
-2007-08-10 David Teigland <teigland at redhat.com>
-
- Detection and resolution now works with my basic deadlock tests.
- Had to rework how lock state is assembled. The previous method was
- simpler and just gathered the master lock state from all nodes, but
- I failed to realize that the xid (transaction id) isn't synced to
- remote master copy locks. So, now all lock state is saved in the
- checkpoints, both master-copy and process-copy (containing the xid)
- which are then merged to give the full view of the lock.
-
-2007-08-10 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- group/ now depends libdlm. Express this new dependency in top level Makefile to guarantee that group will be built only after dlm.
-
-2007-08-09 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Clean up some Makefiles that did not use proper openaisincdir and dlmincdir.
-
- Fix build on parisc as we did for ia64
-
-2007-08-07 David Teigland <teigland at redhat.com>
-
- don't add the same transaction to a waitfor list more than once
-
-2007-08-06 David Teigland <teigland at redhat.com>
-
- fill in a couple more bits related to canceling the chosen lock
-
- Remove check_sys_fs() since it breaks on-demand fs module loading from the kernel (already changed on RHEL5 branch). Use strerror() instead of errno in another spot to be more user friendly.
-
-2007-08-03 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't lost the cluster name if it is specified on the command line probably the cause of bz#250688
-
-2007-08-02 Lon Hohberger <lhh at redhat.com>
-
- Fix #248727, round 2
-
-2007-07-31 Lon Hohberger <lhh at redhat.com>
-
- Fix build problem
-
- Fix bug #248727
-
-2007-07-30 Lon Hohberger <lhh at redhat.com>
-
- Fix #250152
-
-2007-07-30 Robert Peterson <rpeterso at redhat.com>
-
- Added ability to parse and print journal information. For example: gfs2_edit -p journal2 /dev/roth_vg/roth_lv
- Also added the ability to jump relative block numbers. This is for
- when you jump to a block by "editing" the block number:
- Cursor up to block number, press <enter> to enter destination block.
- Before you could type a structure or block number. Now you can type
- in a structure, block number, or relative block number. For example,
- if you're on the superblock (block 0x10) enter +0x300 will take you
- to block 0x310. This number may be in decimal or hex and may be
- positive or negative.
-
-2007-07-27 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bug #248423: gfs2_tool can not set data journal flags as specified in the man page.
-
-2007-07-26 Lon Hohberger <lhh at redhat.com>
-
- Fix #249758
-
-2007-07-24 David Teigland <teigland at redhat.com>
-
- sdake says that DESTDIR=/ is correct, not /usr
-
- minor updates for cluster-2.01.00
-
- dlm_tool deadlock_check <name> is a way to manually kick off a deadlock detection cycle for the named lockspace
-
- add new code to find and resolve deadlocks, still incomplete, disabled by default
-
-2007-07-23 Lon Hohberger <lhh at redhat.com>
-
- Misc. bugfixes; see ChangeLog
-
-2007-07-23 David Teigland <teigland at redhat.com>
-
- Brute-force porting to 2.6.23-rc1. There are non-trivial changes for which I just copied what had been done to gfs2 without investigating whether gfs1 needs something different.
-
-2007-07-20 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz #247591: Make default journal size for gfs2 128M
-
-2007-07-20 Abhijith Das <adas at redhat.com>
-
- Fix for bz248177: We delete the old /etc/mtab entry and add a new one during remount. Any changes made to the mount options using remount are reflected in /etc/mtab now.
-
-2007-07-18 David Teigland <teigland at redhat.com>
-
- recent cleanup of warnings should have specified unsigned in long long casts
-
-2007-07-17 Robert Peterson <rpeterso at redhat.com>
-
- I added the ability to recurse indirect blocks. That means that you can now print a list of all blocks associated with a file. For example, you could print all block numbers associated with journal0 by doing something like:
- gfs2_edit -p 0x19 /dev/roth_vg/roth_lv
-
- assuming, of course, that you know that block 0x19 contains journal0.
- (You can use gfs2_edit -p jindex <dev> to get that information though).
-
- I fixed some bugs with restoremeta where it was dying if the
- metadata to be restored was bigger than the destination file system
- could hold.
-
- I made restoremeta do some "warm fuzzy stuff" to report its
- progress of the restore operation so the user doesn't think the
- restoremeta is permanently hung.
-
- I renamed some long variable names to short ones to make the
- code less wordy.
-
- I fixed a minor segfault if you hit "j" when your cursor is
- on the block number of the hex view.
-
- I probably should have committed these changes earlier rather than
- save them up, but some of my changes had serious regressions and I
- didn't have time to sort it out and fix it until just now (I didn't
- want to commit a broken version to cvs.)
-
-2007-07-13 David Teigland <teigland at redhat.com>
-
- add lockdump and option to set permission of dlm device when creating
-
- Make gfs-kernel compile against post-2.6.22 (2.6.23-rc) kernels. (No more sendfile which is now done via splice which gfs1 still lacks.)
-
-2007-07-12 Ryan McCabe <rmccabe at redhat.com>
-
- Detect bridged networking configurations where additional parameters are supplied to the script.
-
-2007-07-12 Ryan O'Hara <rohara at redhat.com>
-
- Fix bug where mkfs always exits with EXIT_FAILURE.
-
-2007-07-12 Marek 'marx' Grac <mgrac at redhat.com>
-
- Resolves: #245178 - install RA for named (agent already in CVS)
-
-2007-07-12 James Parsons <jparsons at redhat.com>
-
- Fix for bz238106, new firmware version issues
-
-2007-07-11 David Teigland <teigland at redhat.com>
-
- add a bunch of casts to quiet warnings on x86-64 print a couple decimal places for times in the debug logging
-
-2007-07-11 Patrick Caulfield <pcaulfie at redhat.com>
-
- file dlm_query_wait.3 was initially added on branch RHEL4.
-
- file dlm_query.3 was initially added on branch RHEL4.
-
- file dlm_ls_query_wait.3 was initially added on branch RHEL4.
-
- file dlm_ls_query.3 was initially added on branch RHEL4.
-
-2007-07-10 Lon Hohberger <lhh at redhat.com>
-
- Resolves: 247488
-
-2007-07-10 Ryan O'Hara <rohara at redhat.com>
-
- BZ 240584 - Check to see if device is mounted before creating filesystem.
-
-2007-07-10 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 247591: Make default journal size for gfs2 128M
-
-2007-07-09 David Teigland <teigland at redhat.com>
-
- Various small changes and additions. Munging formatting to avoid line wrapping on 80 columns.
-
-2007-07-09 Patrick Caulfield <pcaulfie at redhat.com>
-
- remove redundant Makefile lines
-
- libdlm man pages
-
-2007-07-05 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Overload Makefile to give Lon a build target and keep the style consistent across.
- Most important change (really) is to keep incdir as last or custom incdir
- build will break.
-
-2007-07-05 Patrick Caulfield <pcaulfie at redhat.com>
-
- Honour the mode parameter to dlm_create_lockspace() even if the device node was created by udev.
-
-2007-07-02 Jonathan Brassow <jbrassow at redhat.com>
-
- <Previous check-in> Require vg_name to be unique. Allowing multiple LVs from the same VG on different machines can lead to races when updating metadata during device failures. </Previous check-in>
- We can do better. This patch puts the validation in lvm.sh so that
- it can print out a understandable error message.
-
-2007-07-02 Lon Hohberger <lhh at redhat.com>
-
- Fix #237144 - pass 2. All testcases accounted for now.
-
-2007-06-29 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 241096: GFS: bug in gfs truncate
-
-2007-06-29 Lon Hohberger <lhh at redhat.com>
-
- Add note to usage.txt for configuring on 64-bit environments
-
-2007-06-29 Robert Peterson <rpeterso at redhat.com>
-
- Revolves: bz 245803: GFS2: buffer count underflow for block 29581 (0x738d)
-
-2007-06-28 David Teigland <teigland at redhat.com>
-
- - add more specific warnings/errors when connecting to gfs_controld fails - use strerror to report more helpful error messages in a few spots
-
-2007-06-27 Lon Hohberger <lhh at redhat.com>
-
- Merge from RHEL5 branch
-
- Remove testprog target.
-
-2007-06-26 Lon Hohberger <lhh at redhat.com>
-
- Make lan+ work if built as a STONITH module
-
-2007-06-26 Wendy Cheng <wcheng at redhat.com>
-
- Bugzilla 239729:
- The purge_nr in glock_scan is already a pointer. Fix error in today's check-in.
-
- Bugzilla 239729:
- Accidentally moved the wrong patch - fix previous check-in.
-
- RedHat bugzilla 239727:
- Previous CVS check-in did a last minute change with the way purge count
- was calculated. The intention was to trim glocks evenly across all the
- hash buckets and apparently the size of hash array was overlooked. It
- ends up with zero trimming count most of the time. This virtually makes
- glock trimming patch a void feature.
-
-2007-06-26 Lon Hohberger <lhh at redhat.com>
-
- Clean up testprog in make clean
-
- Ancillary patch to fix debug output
-
- Fix full-virt rebooting (#243872); add local-only / no-cluster mode to fence_xvmd
-
-2007-06-26 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix timer durations
-
-2007-06-26 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 245360: GFS2: userland tools have problems with small block sizes
-
- Add savemeta and restoremeta functions to gfs2_edit
-
-2007-06-25 Ryan McCabe <rmccabe at redhat.com>
-
- HP changed the iLO 2 interface again in the latest firmware revision, 1.30 (released on 2007-06-01)
-
-2007-06-25 David Teigland <teigland at redhat.com>
-
- s/unsigned long/unsigned long long/
-
-2007-06-25 Robert Peterson <rpeterso at redhat.com>
-
- Fix a place where indirect offsets were calculated incorrectly.
-
-2007-06-25 Ryan McCabe <rmccabe at redhat.com>
-
- Rename "private" to "priv" to make the file usable by C++ programs, and wrap the header with extern C { ... } if compiling C++.
-
-2007-06-25 Lon Hohberger <lhh at redhat.com>
-
- Fix missing label
-
-2007-06-22 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 245360: GFS2: userland tools have problems with small block sizes
-
-2007-06-22 Lon Hohberger <lhh at redhat.com>
-
- Make exclusive resources work again
-
-2007-06-22 Robert Peterson <rpeterso at redhat.com>
-
- Make gfs2_edit handle small different block sizes.
-
-2007-06-21 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Fix build on ia64 by adding a temporary workaround and make sure to wrap STACKSIZE properly withing DEBUG.
-
-2007-06-20 Benjamin Marzinski <bmarzins at redhat.com>
-
- GNBD doesn't need to flush the cache after it looses connection with the server. Either it will be multipathed, and the multipath device will own the cache, or it won't and flushing the cache will get you nothing more than a flood of error messages all at once, instead of a stream.
-
-2007-06-19 Wendy Cheng <wcheng at redhat.com>
-
- Bugzilla 231904:
- Port RHEL4 fast statfs (for commands such as "df") implementation over.
- The "lvb" enhancement will be followed around RHEL 5.2 time frame.
- Ballpark performance numbers:
-
- dhcp145 (1 cpu HP): old df took 0.875 seconds, new df 0.008 second
- dhcp146 (4 cpus DELL): old df took 0.808 seconds, new df 0.006 second.
-
- Activated via "gfs_tool settune <mount point> statfs_fast 1" command.
-
-2007-06-19 Lon Hohberger <lhh at redhat.com>
-
- Fix update failure if node was fenced
-
-2007-06-19 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 240570: Can't mount GFS file system on AoE device
-
-2007-06-19 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Make sure to cleanup the buffer when processing each request or dirty data can be passed from one request to another.
- Add a barrier to make sure that the socket data are not bigger than the buffer
- or we overflow somewhere at random.
-
- These 2 changes should be backported to different stable branches.
-
-2007-06-18 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 244163: Incorrect output of gfs2_tool sb <dev> all
-
-2007-06-17 Wendy Cheng <wcheng at redhat.com>
-
- Bugzilla 239729:
- Backport RHEL4 glock trimming patch over to improve GFS slab cache
- consumption issue.
-
- bugzilla 244343:
- Backport RHEL4 gfs datasync patch to head.
-
-2007-06-15 Lon Hohberger <lhh at redhat.com>
-
- Fix #243691/2
-
-2007-06-14 Lon Hohberger <lhh at redhat.com>
-
- Fix type size for 32/64-bit mixed clusters
-
-2007-06-14 Marek 'marx' Grac <mgrac at redhat.com>
-
- New flag -F for clusvcadm to respect failover domain (#211469). Also changes clusvcadm -e service00 which enable service on local node and do not respect failover (same as in RHEL4, in RHEL 5.0 it just wrote Failure).
- Old flag -F (freeze, introduced after RHEL50) was changed to -Z.
-
-2007-06-13 Lon Hohberger <lhh at redhat.com>
-
- Fix status check
-
- Fix #229650 - part 2; fixes an uninitialized var problem
-
-2007-06-13 David Teigland <teigland at redhat.com>
-
- Block SIGINT (^C) around the three steps of mount: joining the mountgroup, doing kernel mount, adding mtab entry. And the same for doing the opposite in unmount.
-
-2007-06-13 Patrick Caulfield <pcaulfie at redhat.com>
-
- Use new openais timers
-
-2007-06-13 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Wave goodbye to libcman bits :)
-
-2007-06-13 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't link cman with libcman!
-
-2007-06-12 David Teigland <teigland at redhat.com>
-
- log an error message if we see mount.gfs killed before it's done
-
-2007-06-11 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Remove old dead code from the tree.
-
-2007-06-08 David Teigland <teigland at redhat.com>
-
- Return 1 or 0 GETLK result to the kernel for conflict/no-conflict. We were always returning 0 before.
-
-2007-06-08 Ryan O'Hara <rohara at redhat.com>
-
- Read nodir from lockspace xml node via ccs_get.
-
-2007-06-06 David Teigland <teigland at redhat.com>
-
- (copy from RHEL5 branch) New lockspace config for external dlm. Changed get_weight to look for node weight in lockspace config.
-
- translate different error numbers from gfs_controld into specific, helpful error messages
-
- return a different error number to mount.gfs for each specific failure case, so mount can translate that into a helpful error message
-
-2007-06-06 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: Bugzilla Bug 242056: GFS2 needs block sizes < 4k (mkfs changes)
-
-2007-06-06 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- both gnbd and gfs1 need some love for .22..
- gnbd:
- - invalidate_bdev changed interface with commit:
- f98393a64ca1392130724c3acb4e3f325801d2b6
-
- gfs1:
- - struct kset has been cleaned up with commit:
- 823bccfc4002296ba88c3ad0f049e1abd8108d30
- - posix_test_lock changed interface with commit:
- 9d6a8c5c213e34c475e72b245a8eb709258e968c
-
- Fix dlm/tool install and clean target
-
- Fix LDFLAGS override:
- /lib and /usr/lib don't need to be specified at link time.
-
-2007-06-05 David Teigland <teigland at redhat.com>
-
- report an error if no lockspace name is provided
-
-2007-06-05 Wendy Cheng <wcheng at redhat.com>
-
- Bugzilla 242759:
- Bump into this problem while debugging bug #236565 (GFS SPECsfs panic).
- Apparently a minor oversight while adding new function into GFS for
- RHEL5. GFS versions <= RHEL4 is immuned from this issue.
-
- Upon memory pressure, VM starts to release inode cache entries that would
- fail gfs iget. GFS1 flags this error as "ENOMEM" but returns from gfs_create
- call without releasing the glock.
-
- Bugzilla 236565
- Fix a race between GFS lookup code and VM cache reclaim logic kicked off
- under memory pressure. At the end of the lookup, gfs releases inode glock
- pre-maturely. This creates a window inside the bottom portion of logic
- that could make gfs_iget updating the associated GFS inode structure that
- has been freed. Depending on who gets the new memory, unspecified corruptions
- occur.
-
- In the case where this bug is found, it corrupts TCP buffer head that ends
- up trashing nfsd kernel stack.
-
-2007-06-04 Marek 'marx' Grac <mgrac at redhat.com>
-
- Bug: 212479 - ip.sh causes /sbin/ip to produce warnings
- Missing netmask is parsed from /sbin/ip
-
-2007-06-01 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- * Fix incdir usage across the entire tree so that: - it can override standard include paths for real - it is always used after more specific inc overrides
- * Clean up a few Makefiles to be more consistent with CFLAGS ordering
-
- * Fix gfs-kernel/src/gfs/Makefile clean: target
-
-2007-06-01 Abhijith Das <adas at redhat.com>
-
- Changes to fix broken code after Bob pulled out metafs mounting functionality from gfs2_quota into libgfs2.
-
-2007-05-31 Lon Hohberger <lhh at redhat.com>
-
- Fix 234249, 229650
-
-2007-05-31 Patrick Caulfield <pcaulfie at redhat.com>
-
- open_lockspace needs to detect kernel version too, otherwise all lockops will fail mysteriously.
-
-2007-05-30 David Teigland <teigland at redhat.com>
-
- bunch of stuff to test new features
-
- Add dlm_ls_deadlock_cancel() that allows a system daemon to cancel an application's deadlocked lock. This requires the latest dlm kernel headers.
-
-2007-05-29 Jonathan Brassow <jbrassow at redhat.com>
-
- Require vg_name to be unique. Allowing multiple LVs from the same VG on different machines can lead to races when updating metadata during device failures.
-
-2007-05-25 Wendy Cheng <wcheng at redhat.com>
-
- Apparently we can't remove these two methods from file operations table. Since gfs_read() had been changed to use do_sync_read() that requires to have aio defined in the file operations table.
- So vector read/write (implies NFSD) will be partially broken again after
- we put these two methods back.
-
-2007-05-24 David Teigland <teigland at redhat.com>
-
- don't do gfs_sb_print() if we don't detect a gfs fs, it often just prints a bunch of garbage
-
-2007-05-22 Lon Hohberger <lhh at redhat.com>
-
- Update
-
- Add missing primary keys to SAP agents
-
-2007-05-21 Lon Hohberger <lhh at redhat.com>
-
- Fix typos in resource script logging
-
-2007-05-21 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add swab.h for compiling against openais trunk
-
- Fix typo in openaisincdir
-
-2007-05-18 David Teigland <teigland at redhat.com>
-
- use dlm/Makefile to build lib and tool dirs
-
- add dlm_tool, can be used to join/leave lockspace
-
- Make new features available based on recent dlm kernel patches.
- The kernel patches change the user/kernel device interface used by libdlm.
- (You'll need the new dlm_device.h kernel header installed on your system
- to build the lib.) libdlm is backward compatible with the old kernel
- interface, but some of the new features will return errors on old kernels.
-
- New API's provided by libdlm:
- - dlm_new_lockspace() is just like dlm_create_lockspace() but has a flags
- arg so flags can be passed when creating/joining a lockspace.
- - DLM_LSFL_NODIR and DLM_LSFL_TIMEWARN are new flags that can be used with
- dlm_new_lockspace().
- - dlm_ls_purge() is new and can be used to purge orphan locks.
- - all DLM_LKF flags can now be used with dlm_lock* routines (flags above
- 16 bits couldn't be used before)
- - new DLM_LKF_TIMEOUT flag to enable lock timeouts
- - dlm_ls_lockx() is new and adds "xid" and "timeout" args
-
- All previous API's are still available, and programs compiled against
- previous versions of libdlm should still work.
-
-2007-05-18 Patrick Caulfield <pcaulfie at redhat.com>
-
- Allow ccs to change the two_node flag. bz#240508
-
-2007-05-15 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: Bugzilla Bug 239023: gfs2_fsck not good at fixing corrupt directory entries.
-
-2007-05-15 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Remove unused files.
-
- Rrestore the make dependencies within the same subproject (same as it was before the big rework), do some PHONY clean up, clean up a few Makefiles that were still using an old format.
- Patch ACK by Lon and Patrick on IRC.
-
-2007-05-15 Abhijith Das <adas at redhat.com>
-
- Need to write the user/group id to the sysfs quota refresh file instead of '1'
-
-2007-05-14 Robert Peterson <rpeterso at redhat.com>
-
- Close the /sys/fs directory after using it.
-
-2007-05-14 Lon Hohberger <lhh at redhat.com>
-
- Make manual fencing's command line parser backward compatible; per dct
-
-2007-05-11 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: Bugzilla Bug 239844: mount.gfs2 doesn't work when _netdev is used in /etc/fstab.
-
-2007-05-11 Ryan McCabe <rmccabe at redhat.com>
-
- Convert \r\n line breaks to \n
-
-2007-05-11 Abhijith Das <adas at redhat.com>
-
- we don't use this file anymore. removing
-
-2007-05-10 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: Bugzilla Bug 234844: Need to add a "gfs2_grow" command
-
-2007-05-10 Ryan McCabe <rmccabe at redhat.com>
-
- don't try to workaround xend networking when running on a non-xen kernel
-
-2007-05-09 Jonathan Brassow <jbrassow at redhat.com>
-
- If misconfigured, HA LVM + mirroring can cause data corruption. We should attempt to catch configuration errors before allowing LVM resources to start.
-
-2007-05-09 Lon Hohberger <lhh at redhat.com>
-
- Add SAP agents; resolves #238916
-
-2007-05-09 Jonathan Brassow <jbrassow at redhat.com>
-
- People seem to think that they have to setup lvm in rgmanager even though they are using clvm. This causes the two to collide during use.
- The HA LVM resource script should detect if a volume is clustered and ignore it.
-
-2007-05-09 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't override <totem secauth> if it appears in cluster.conf. This allows users to disable encryption if they want.
-
-2007-05-08 Wendy Cheng <wcheng at redhat.com>
-
- GFS(s) expects NFS fh_type and fh_len would have the same value. This is not correct. One obvious symptom is that it will fail NFS V2 (that uses fixed fh_len for all requests) mount command.
-
-2007-05-08 Lon Hohberger <lhh at redhat.com>
-
- Readding SAPInstance/SAPDatabase
-
- Add SAPInstance and SAPDatabase resource agents to HEAD
-
- Apply patch to fix bugzilla # 232140
-
-2007-05-04 David Teigland <teigland at redhat.com>
-
- Look in cluster.conf dlm section for protocol, timewarn, and log_debug settings and apply them to kernel if found.
-
-2007-05-04 Wendy Cheng <wcheng at redhat.com>
-
- Temporarily disable GFS natvie AIO support since it currently breaks vector read-write (used by user mode application system call and NFSD).
- Will come back to fix this soon. Right now, application is expected to
- use posix AIO AIO call (done by libc AIO emulation).
-
-2007-05-04 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 229484: gfs_fsck not good at fixing corrupt directory entries
-
- Resolves: bz 238740: GFS fsck is has problems with resource groups
-
-2007-05-03 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Fix build system. Thanks to Alasdair for spotting the error
-
-2007-05-03 Lon Hohberger <lhh at redhat.com>
-
- Add test case from RHEL4 branch
-
- Fix corner case reported in #212121
-
-2007-05-03 Patrick Caulfield <pcaulfie at redhat.com>
-
- Change unsigned char* to char* for compatibility with openais trunk.
-
-2007-05-03 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Remove dead code
-
- Readd ipv6 support to ccs_tool update and add verbose option
-
-2007-05-02 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- pretty self explanatory, this code is not used anywhere. Get rid of it.
-
- When the project switched away from magma, we forgot to enable IPv6 for cluster_base_port. The patch fix that and add some checks that were marked as TODO in the code.
-
- both libccs and daemon were building and linking common/log.c. Make libccs sucks in log.o and make ccsd link against libccs. Also fix ccs top level makefile to build in proper order.
-
- allow to specify --fence_agents="list of fence agents" at configure time.
- default is to build all of them and add a little help section.
-
- The detection of available list is done by checking
- fence/agents/agent_name/Makefile presence.
-
- It also does another round of Makefile cleanup and fix the Makefiles for
- previously DISABLEDAGENTS.
-
-2007-05-02 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add const to libcman Thanks to Jim Meyering for the patch
-
-2007-05-01 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 223893: gfs2_fsck unable to fix damaged RGs and RG indexes.
-
-2007-05-01 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Fix gfs2 identity exit code path
-
-2007-04-30 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Remove unused vars
-
- Commit new build system as proposed and discussed on cluster-devel mailing list:
- https://www.redhat.com/archives/cluster-devel/2007-April/msg00139.html
-
- and following thread with acknoledge from other developers on IRC.
-
-2007-04-27 David Teigland <teigland at redhat.com>
-
- various changes
-
-2007-04-27 Lon Hohberger <lhh at redhat.com>
-
- Add patch from Simone Gotti to implement service freeze/unfreeze. Add simple buffer handling for later use.
-
- Re-fix #222484
-
-2007-04-27 Ryan McCabe <rmccabe at redhat.com>
-
- Work around network disruption caused by XenD's bridged networking (bz230783, bz231227).
-
-2007-04-27 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Fix build on parisc
-
-2007-04-26 Lon Hohberger <lhh at redhat.com>
-
- Fix #231521
-
-2007-04-26 David Teigland <teigland at redhat.com>
-
- change some mount error conditions to log_error() instead of log_debug() so they appear in syslog. Also set /proc/self/oom_adj.
-
- Check right away if the kernel has gfs/gfs2 support by looking in /sys/fs/. This results in a user-friendly error message instead of something like "gfs_controld error 19".
-
-2007-04-26 Fabio M. Di Nitto <fabbione at ubuntu.com>
-
- Use resrules-noccs in dtest build target
-
-2007-04-24 Robert Peterson <rpeterso at redhat.com>
-
- Horrible kludge to allow display/print of the rgs themselves (but not yet the bitmaps) for easier debugging of bz 223893. Example: gfs2_edit -p rgs /dev/trin_vg/trin_lv
-
-2007-04-23 David Teigland <teigland at redhat.com>
-
- Use realpath(3) to canonicalize path names for device and mount point. bz 237544
-
- Look for a protocol setting in cluster.conf dlm section, and set kernel accordingly if found. Also, set /proc/self/oom_adj (all daemons will get this).
-
-2007-04-19 Lon Hohberger <lhh at redhat.com>
-
- Fix bug 234589
-
- Apply patch from Simone Gotti to fix logging errors in clusterfs.sh
-
- Apply patch from Andrey Mirkin to fix 237144
-
- Cleanups to make the resource agents behave better (return OCF_NOT_RUNNING, for example)
-
-2007-04-18 Jonathan Brassow <jbrassow at redhat.com>
-
- Bug 236580: [HA LVM]: Bringing site back on-line after failure causes pr...
- Setup:
- - 2 interconnected sites
- - each site has a disk and a machine
- - LVM mirroring is used to mirror the disks from the sites
-
- When one site fails, the LVM happily moves over to the second site -
- removing the failed disk from the VG that was part of the failed
- site. However, when the failed site is restored and the service
- attempts to move back to the original machine, it fails because
- of the conflicts in LVM metadata on the disks.
-
- This fix allows the LV to be reactivated on the original node
- by filtering out the devices which have stale metadata (i.e
- the device that was removed during the failure).
-
-2007-04-18 Lon Hohberger <lhh at redhat.com>
-
- Fix dtest.c compile errors
-
- Add obvious requirement on shared resource case as suggested by Simone Gotti
-
- fix depends.h/depends.c
-
-2007-04-18 Patrick Caulfield <pcaulfie at redhat.com>
-
- Install udev rules file
-
-2007-04-12 Lon Hohberger <lhh at redhat.com>
-
- Fix watchdog race on rgmanager exit; BZ#236204, patch from Andrey Mirkin
-
-2007-04-05 Lon Hohberger <lhh at redhat.com>
-
- Make agents more OCF (Open Cluster Famework) compliant
-
-2007-04-04 Abhijith Das <adas at redhat.com>
-
- fix for bz 225199 - Same as GFS1 fix in RHEL4 (bz 210362). We don't run throug the entire gfs_quota sparse file to do a list operation anymore. We get the layout of the gfs_quota file on disk and only read quota information off the data blocks that are actually in use. Also added functionality to GFS_IOCTL_SUPER to provide the metadata of the hidden quota file.
-
-2007-04-04 Lon Hohberger <lhh at redhat.com>
-
- allow ocfs[2] to work with the clusterfs resource agent. Also, commit patch which corrects interval processing for status operations
-
-2007-04-04 Ryan McCabe <rmccabe at redhat.com>
-
- Make power on work correctly for RIBCL version 2.22 on both iLO2 and iLO: for the former, HOLD_PWR_BTN is used to both power the machine on and off; when the power is off, PRESS_PWR_BUTTON has no effect. For the latter, HOLD_PWR_BUTTON is used to power the machine off, and PRESS_PWR_BUTTON is used to power the machine on; when the power is off, HOLD_PWR_BUTTON has no effect.
-
-2007-04-03 Lon Hohberger <lhh at redhat.com>
-
- Kill VM machine immediately; patch from Jeroen van den Horn
-
-2007-04-03 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: Bugzilla Bug 235061: gfs_fsck: Bad programmer! You forgot to catch the ÿ flag.
-
- Resolves: Bugzilla Bug 235060: gfs_fsck: Bad programmer! You forgot to catch the ÿ flag.
-
-2007-03-29 Robert Peterson <rpeterso at redhat.com>
-
- Jump from RG index was broken.
-
-2007-03-28 Lon Hohberger <lhh at redhat.com>
-
- Fix SPARC / HPPA build; patch from Fabio M. Di Nitto
-
-2007-03-28 Patrick Caulfield <pcaulfie at redhat.com>
-
- Remove udev file from here as it is confusing. The real one is in ../scripts
-
- Newer versions of udev prefer == to =
-
-2007-03-27 Lon Hohberger <lhh at redhat.com>
-
- Merge patch from Crosswalk team Team: Leonard Maiorani, Scott Cannata, Henry Harris
- * Always check malloc() return codes
- * Fix errant clu_unlock() calls in vft.c in cases where clu_lock() failed
- * Add ability to wrap pthread_mutex / pthread_rwlock calls for better
- stability
- * Fix improper pthread_mutex_destroy() semantics
-
-2007-03-27 David Teigland <teigland at redhat.com>
-
- latest version, "stress" test running correctly
-
-2007-03-27 Patrick Caulfield <pcaulfie at redhat.com>
-
- Actually, MAX_INT is a bit of a bad idea under this new system.
-
- Fix bug where we could free an lksb while dlm_lock is still using it.
-
-2007-03-26 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: Bugzilla Bug 233083: Wrong link command in gfs2-utils mkfs/Makefile (with solution).
-
- Resolves: Bugzilla Bug 232124: gfs2_fsck will create multiple lost+found directories.
-
- Resolves: Bugzilla Bug 232019: gfs2_fsck doesn't fix an ea problem.
-
-2007-03-23 Lon Hohberger <lhh at redhat.com>
-
- Remove dead code; fix build_tree loop
-
- Merge ordering patch from RHEL4 branch; update automated test cases
-
- Use more strict build options
-
-2007-03-20 Lon Hohberger <lhh at redhat.com>
-
- Fix multimaster bug: ensure timings are accurate and provide multi-master conflict resolution
-
- Fix clean target; patch from Fabio M. Di Nitto
-
- Force release of lockspace; patch from Patrick Caulfield
-
- Apply build cleanup patch from Fabio M. Di Nitto
-
-2007-03-15 Patrick Caulfield <pcaulfie at redhat.com>
-
- If the machine is multi-homed, then using a truncated name in uname but not in cluster.conf would fail to match them up.
-
- Support IP(v4) addresses in cluster.conf per bz#232068
-
-2007-03-10 Lon Hohberger <lhh at redhat.com>
-
- Strings cleanup. Enable vm.sh live migration.
-
- Fix help message
-
-2007-03-08 Ryan McCabe <rmccabe at redhat.com>
-
- Add 'M' to the getopt string to keep clusvcadm from complaining that M is an invalid option.
-
-2007-03-07 Lon Hohberger <lhh at redhat.com>
-
- Fix 213241
-
-2007-03-06 Ryan O'Hara <rohara at redhat.com>
-
- Fix help message to refer to script as 'fence_scsi_test'.
-
-2007-03-06 Lon Hohberger <lhh at redhat.com>
-
- Add open failure message
-
- Fix missing newline in debug message
-
- Resolves: 231151 Enable auto-fallback to no-authentication for fence_xvm if fence_xvm.key does not exist.
-
-2007-02-28 Robert Peterson <rpeterso at redhat.com>
-
- Made hex editing a lot easier (for bz 229484). Fixed several bugs regarding printing. Added ability to print/view gfs1 journal index.
-
-2007-02-27 David Teigland <teigland at redhat.com>
-
- un-comment-out gfs-kernel and gnbd-kernel since they now build on upstream kernel
-
- updates
-
- lots of changes, biggest is new "stress" test
-
-2007-02-27 Stanko Kupcevic <kupcevic at redhat.com>
-
- Fix for bz230134 (can't fence port 1:1 with fence_apc)
-
-2007-02-26 Robert Peterson <rpeterso at redhat.com>
-
- Resolves bz: 229222: gfs2_fsck stuck in infinite loop
-
-2007-02-22 Lon Hohberger <lhh at redhat.com>
-
- Make status checks happen at 'start' time (parent-before-child) instead of 'stop' time (parent-after-child).
-
-2007-02-22 David Teigland <teigland at redhat.com>
-
- remove the self paramter (sync up with RHEL5 branch)
-
-2007-02-22 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 229601: gfs_tool fails to report counters
-
-2007-02-21 Lon Hohberger <lhh at redhat.com>
-
- Fix anonuid/anongid parsing in nfsclient.sh
-
- Resolves: 222445 * Only let one status queue thread spawn at a time
- Other:
- * Misc tweaks to alloc.c for debugging
-
- Resolves: 229338 * Makes zero-heuristic mode work (#229338)
- General (small) fixes:
- * Add time stamp to status file
- * Hush stdout/stderr from init script
- * Give lots of information in status file if debug mode is enabled
-
- Fixes for clusters with long failover times (e.g. 2+ minutes):
- * Enable status file generation during initialization loop
- * Allow termination (e.g. service qdiskd stop) during initialization loop
- * Add tunables for clusters with long failure detection times (e.g. 2+ minutes)
-
- Add example test configuration for dtest
-
- Remove ancient / unused script
-
- Check in missing header
-
-2007-02-20 Lon Hohberger <lhh at redhat.com>
-
- Add missing comment
-
- Initial checkin of simple dependency engine
-
- Fix 229254 - extraneous man pages, 228823 - allow disable of services stuck in 'stopping' state
-
-2007-02-20 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 229220: gfs_fsck stuck in infinite loop
-
-2007-02-19 Ryan McCabe <rmccabe at redhat.com>
-
- Support power on/reboot for iLO2
-
-2007-02-19 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add -c clustername to help output.
-
- Add delay switch
-
- If exec fails, then tell the parent process.
-
-2007-02-15 Lon Hohberger <lhh at redhat.com>
-
- Add LVM failover agent; by Jon Brassow
-
-2007-02-15 Ryan McCabe <rmccabe at redhat.com>
-
- - Document the -S/passwd_script fence params. - Update the copyright notices.
-
-2007-02-15 Lon Hohberger <lhh at redhat.com>
-
- Fix missing copytobin target for RHEL4 branch
-
-2007-02-14 Lon Hohberger <lhh at redhat.com>
-
- Add member_util.sh to installation
-
- Add member_util.sh functions
-
- Add RA installs to trunk; Make sure utility stuff is installed in the right place
-
-2007-02-14 Ryan O'Hara <rohara at redhat.com>
-
- Ignore EPIPE error when sending response. This can happen is, for example, rgmanager makes a request, ccs receives/processes the request, but rgmanager dies before ccs can send the response. Also added retry if we catch EINTR during write.
-
-2007-02-14 Lon Hohberger <lhh at redhat.com>
-
- Make service.sh understand lvm RA type
-
-2007-02-14 Stanko Kupcevic <kupcevic at redhat.com>
-
- Support "passwd_script" parameter in python fence agents. If both "passwd" and "passwd_script" parameters are specified, "passwd_script" will be used first (if it fails, fencing will be attempted using "passwd" parameter).
-
-2007-02-14 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't report 0 exit status as a failure.
-
-2007-02-14 Stanko Kupcevic <kupcevic at redhat.com>
-
- fence_apc_snmp ignores "port" parameter
-
-2007-02-14 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add man page info for ccs_tool addnodeids
-
-2007-02-13 Ryan McCabe <rmccabe at redhat.com>
-
- Support the "passwd_script" parameter in the C fence agents.
-
-2007-02-13 Lon Hohberger <lhh at redhat.com>
-
- Remove fence_manual; only provide manual-failure override
-
- Apply fixes from RHEL4 branch
-
-2007-02-13 Robert Peterson <rpeterso at redhat.com>
-
- Misc improvements. Better scrolling. You can now scroll through the rindex. The superblock now has a pseudo-extended display. Fixed the file offset calculations for indirect pointers. It still has some bugs but it's better than it was.
-
-2007-02-12 Ryan McCabe <rmccabe at redhat.com>
-
- Update the perl fence agents to take the additional command line option -S <path> or stdin param passwd_script=<path>
-
-2007-02-12 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 221743: gfs2_fsck errors still
-
- Resolves: bz 222308: mkfs and journal addition for GFS2 should produce contiguous journals.
-
-2007-02-09 David Teigland <teigland at redhat.com>
-
- clear configfs stuff if we get SIGTERM, this is a convenience if you want to kill dlm_controld and remove the dlm module without leaving the cluster. Otherwise you have to manually clear configfs dirs.
-
- If the only two groups were two dlm lockspaces, then during recovery, the first would detect the all_nodes_all_stopped condition and move on to the starting state, and the second would never get a chance to detect the all_nodes_all_stopped state since the event state of the first was no longer FAIL_ALL_STOPPED. Use a separate flag to indicate that the all stopped state has been reached instead of relying on the event state.
-
-2007-02-08 Robert Peterson <rpeterso at redhat.com>
-
- Fixed some bugs and made some improvements. When displaying indirect blocks, it now gives the data offset. Also added page-up/page-down/home/end navigation to block list display.
-
-2007-02-06 Lon Hohberger <lhh at redhat.com>
-
- Don't query rgmanager if the user only wants a node state
-
-2007-02-02 Robert Peterson <rpeterso at redhat.com>
-
- Misc updates to bring gfs-kernel up to the 2.6.20-rc7 and similar kernels. Also fixed some minor typos.
-
-2007-02-01 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add threads example
-
-2007-01-31 David Teigland <teigland at redhat.com>
-
- join lockspace, optionally sleep, leave the lockspace. useful for testing, also useful to clear/release a lockspace from any random process that exited without releasing its lockspace
-
-2007-01-31 James Parsons <jparsons at redhat.com>
-
- New apc agent written in python that supports named outlets and outlet groups, minus perl pain. Addresses bz172179 and bz134489. yee haw
-
- fix for bz220946
-
- fix for bz205457
-
-2007-01-31 David Teigland <teigland at redhat.com>
-
- test program like gfs's 'alternate' but using an lvb instead of a file. nodes take turns incrementing the counter in the lvb
-
-2007-01-31 Patrick Caulfield <pcaulfie at redhat.com>
-
- Read the LVB every time, rather than not at all.
-
-2007-01-29 Ryan O'Hara <rohara at redhat.com>
-
- If no password is specified, pass a "-P ''" to the ipmitool to prevent it from prompting for a password.
-
-2007-01-29 Lon Hohberger <lhh at redhat.com>
-
- Add error reporting if msg_open fails; patch from Josef Whiter
-
-2007-01-26 Lon Hohberger <lhh at redhat.com>
-
- Fix 223519
-
- Port fix for logging of errors in config from RHEL5 branch
-
- Add list_prepend macro
-
- Add override for action timings
-
- Clean up test cases
-
- merge fixes from RHEL5 branch
-
- Fix #222484
-
-2007-01-26 Ryan O'Hara <rohara at redhat.com>
-
- file scsi_watchdog.conf was initially added on branch RHEL4.
-
- file scsi_watchdog was initially added on branch RHEL4.
-
- file scsi_reserve.sysconfig was initially added on branch RHEL4.
-
-2007-01-26 Lon Hohberger <lhh at redhat.com>
-
- Patch from Fabio Massimo Di Nitto - Fix portability of getuptime function
-
-2007-01-24 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 222299: gfs knows of directories which it chooses not to display
-
-2007-01-23 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 222759: gfs_mkfs doesn't zero data after gfs superblock
-
- Resolves: bz 223500: gfs2_fsck runs slower than previous version
-
- Resolves: bz 223843 GFS2: gfs2_fsck segfaulting on corrupt extended attributes
-
- Resolves: bz 223506: gfs2_fsck: fatal: invalid metadata block This is a crosswrite from gfs1. 1. Fix a memory leak in pass1b. 2. Improve performance of pass1b by combining loops through fs. 3. Give an error message and abort if file system > 16TB and node architecture is 32-bits. 4. Give users an "Abort" "Continue" and "Skip" if they interrupt with ctrl-c. Also, report progress for that pass on interrupt. 5. Added more "percent complete" messages for other passes.
- See bz comments for more details.
-
-2007-01-23 Lon Hohberger <lhh at redhat.com>
-
- Use /proc/uptime by default instead of gettimeofday(2) for internal timings to avoid problems when the clock is reset by NTP
-
-2007-01-23 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 222933: regression: fence_tool no longer times out after 300 seconds
-
-2007-01-23 Lon Hohberger <lhh at redhat.com>
-
- Simple manual override for fenced & example replacement for fence_ack_manual
-
-2007-01-22 Lon Hohberger <lhh at redhat.com>
-
- Resolves bugzillas: #213533, #216092, #220211, #223002, #223234/#223240
- Detailed comments:
-
- * Lock in memory to prevent being swapped out
- * Turn on RR scheduling for main + score threads
- * Let qdiskd wait for CMAN to start
- * Add option to qdiskd to stop CMAN if qdisk device is not available
- * Make qdisk interval timings more accurate
- * Add option to reboot node if qdiskd detects internal hang > failure time (e.g. interval*tko, in seconds)
- * Add per-heuristic tko counts for unreliable heuristics (e.g. ping packets)
- * Remove nodes from quorate mask immediately on eviction
- * Update man pages with better examples
- * Don't let >1 instance of qdiskd be started
- * Clarify logging output.
- * Improve data in status_file.
- * Allow qdiskd to run with no defined heuristics (master-always-wins mode).
- * Make fencing of nodes optional (default = on).
- * Make sure CMAN is running before we try to talk to it at each point.
-
-2007-01-19 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 222871 gfs_fsck runs slower than previous versions
-
-2007-01-17 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 222743: gfs_grow gets the rgindex out of order.
-
-2007-01-17 Lon Hohberger <lhh at redhat.com>
-
- Fix #222961 - required for Conga to work.
-
-2007-01-17 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix typo. thanks Bob.
-
- If we get killed by another node then print the reason in English rather than just a number.
-
-2007-01-16 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 222747: Remove references to lock_gulm from cluster man pages
-
-2007-01-16 Lon Hohberger <lhh at redhat.com>
-
- Resolves: #222485; patch from Simone Gotti Makes relocation work correctly.
-
- Apply patch from Simone Gotti; fixes #222744/#222838
-
-2007-01-16 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't return to 'cman_tool leave' until we are just about to quit. Otherwise there can be a delay between cman_tool thinking that we are down, and the node really being out of the cluster. see bz#222686
-
-2007-01-15 Lon Hohberger <lhh at redhat.com>
-
- Fix bug causing cluster.conf / rm log level to be ignored in resource agents
-
-2007-01-11 David Teigland <teigland at redhat.com>
-
- Move memset(0) into the for loop so we're clearing the data buffer each time through. We were seeing some bogus data from group_tool -v.
-
-2007-01-11 James Parsons <jparsons at redhat.com>
-
- bz222234
-
-2007-01-10 Lon Hohberger <lhh at redhat.com>
-
- Resolves: #221210 Allows fence_xvm to respond even if the virtual machine has never existed in the cluster.
-
-2007-01-09 David Teigland <teigland at redhat.com>
-
- add -K option to enable dlm kernel log_debug's (does nothing if /sys/kernel/config/dlm/cluster/log_debug doesn't exist)
-
-2007-01-09 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add flood program back.
-
- quorumdev_poll is in milliseconds, not seconds! Thanks to Simone Gotti
-
-2007-01-08 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't lose NUL on the end of the fence-agent. thanks to Simone Gotti <simone.gotti at email.it> for the patch
-
- If there are already queued messages for a client then don't send new ones out of order
-
-2007-01-06 Benjamin Marzinski <bmarzins at redhat.com>
-
- Get GNBD compiling with the latest upstream kernel.
-
-2007-01-05 David Teigland <teigland at redhat.com>
-
- groupd creates uint32 global id's for each group. It doesn't use them itself, but provides them to each registered app to use if it wants. (The dlm and gfs each use the global id in messages to distinguish between different lockspaces/fs's.) groupd's method of creating these gid's (local counter | local nodeid) can result in duplicate gid's in the cluster given a somewhat uncommon sequence of events. bz 221629
-
-2007-01-05 Patrick Caulfield <pcaulfie at redhat.com>
-
- Clear the node structure before calling cman_get_node(). Thanks to simone.gotti at email.it
-
- Send correct length of quorum device name sent to cman. Thanks to simone.gotti at email.it for the patch
-
-2007-01-04 David Teigland <teigland at redhat.com>
-
- added "flood n mode" function a while ago, doesn't equate to pjc's "flood" program even though that's what I was originally hoping to emulate
-
-2007-01-02 David Teigland <teigland at redhat.com>
-
- mount/umount modifications of /etc/mtab weren't smart enough to get straight two different fs's mounted on the same mountpoint bz 218560
-
-2007-01-02 Patrick Caulfield <pcaulfie at redhat.com>
-
- Give a better error if the cluster name is too long.
-
-2006-12-21 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 219876: mount.gfs hangs if there are insufficient journals configured in the filesystem
-
-2006-12-20 David Teigland <teigland at redhat.com>
-
- Support mounting a single fs on multiple mount points. bz 218560
-
-2006-12-19 David Teigland <teigland at redhat.com>
-
- Fixes related to the needs_recovery state and first-mounter recovery. Probably not perfect yet, but working in the tests I'm able to contrive. bz 218551
-
- When the first mounter is recovering all the journals, it should use TRY on the journal locks. There's one rare case where other mounters will exist who hold journal locks that we don't want to block on. That's when the other mounters are readonly, haven't been able to recover the fs after a node failure, and the next rw mounter is told to do first mounter recovery. The journals of these readonly nodes can be skipped when the pseudo-first mounter is going through all journals. Chang [...]
-
-2006-12-19 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 219878: gfs2 creation should default to 1 journal and lock_nolock
-
-2006-12-19 David Teigland <teigland at redhat.com>
-
- revert last checkin
-
-2006-12-19 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix bug where cman_dispatch(CMAN_DISPATCH_ONE) could dispatch several messages.
-
-2006-12-19 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz 218560: multiple mount points fail with gfs and gfs2
-
- Resolves: bz 219866: GFS init script - FATAL: Module lock_dlm is in use.
-
-2006-12-18 Lon Hohberger <lhh at redhat.com>
-
- Implement cap on max # of outstanding status check threads; fixes bugzilla #218697
-
-2006-12-18 Benjamin Marzinski <bmarzins at redhat.com>
-
- GNBD was hanging with the cfq scheduler, so I changed the default scheduler for all gnbd devices to the anticipatory scheduler.
-
-2006-12-18 Patrick Caulfield <pcaulfie at redhat.com>
-
- Increase token timeout to 10s as per bz#216954
-
-2006-12-15 Benjamin Marzinski <bmarzins at redhat.com>
-
- make it so that the -c and -[u|U] flags are mutually exclusive. Resolves bz 219413
-
-2006-12-15 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add cluster_id override field to cluster.conf, so that people can manually assign cluster IDs where the hash values for similar names clash
-
-2006-12-14 Lon Hohberger <lhh at redhat.com>
-
- Fix #216774, pass 3
-
- Fix #216774
-
-2006-12-14 David Teigland <teigland at redhat.com>
-
- Switch from CMAN_DISPATCH_ONE loop to CMAN_DISPATCH_ALL to resolve delayed cman shutdown callbacks. bz 219385
-
-2006-12-14 Lon Hohberger <lhh at redhat.com>
-
- Fix #216774; missed rg_thread.c
-
-2006-12-14 David Teigland <teigland at redhat.com>
-
- Switch from CMAN_DISPATCH_ONE loop to CMAN_DISPATCH_ALL to resolve delayed cman shutdown callbacks. bz 219385
-
-2006-12-13 David Teigland <teigland at redhat.com>
-
- groupd's function that returns info for group status queries was mistakenly setting the "member" status to 0 when a node was leaving. This led fence_tool to believe that the local node was no longer a member (i.e. had finished leaving) when in fact the leave wasn't complete yet. bz 219385
-
-2006-12-13 Lon Hohberger <lhh at redhat.com>
-
- Fix #211468 - clustat always returns 0, but should give a nonzero code for non-running services.
-
- Fix segfault in clustat if node is not a cluster member
-
-2006-12-13 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix typo that could affect shutdown. see bz#219385
-
-2006-12-12 David Teigland <teigland at redhat.com>
-
- add lock_flood/unlock_flood/unlock_flood-exit commands to test doing large volumes of locks/unlocks
-
-2006-12-08 Abhijith Das <adas at redhat.com>
-
- don't fail if unmounting configfs fails
-
-2006-12-08 David Teigland <teigland at redhat.com>
-
- tidy up some prints
-
-2006-12-07 David Teigland <teigland at redhat.com>
-
- very useful testing program I wrote a long time ago
-
-2006-12-07 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix minor bug where cman_tool join didn't spot that aisexec had started correctly or crashed.
- This means we can up the timer for allowing aisexec to start with no ill
- effects. see bz#218688
-
-2006-12-05 David Teigland <teigland at redhat.com>
-
- Call into the lock module to do a withdraw instead of just calling BUG. bz 215962
-
- When lockfs is called from the vfs (due to a dm suspend), don't try to do the lockfs if the fs is being shut down (due to a withdraw). bz 215962
-
- Pass gfs_controld the device being mounted, it'll use this if it needs to withdraw the fs. bz 215962
-
- Before doing the mount-group portion of withdraw, fork off a dmsetup to suspend the fs device. This means gfs doesn't need to call dm_suspend() in the kernel before calling out to us. The suspend waits for all outstanding i/o to return on the device which is necessary prior to telling other nodes to do recovery. (Later we should probably swap in an error table and resume the device.) bz 215962
-
- change the default plock rate limit from 10 to 100 bz 216052
-
-2006-12-04 Lon Hohberger <lhh at redhat.com>
-
- Fix build error
-
-2006-12-01 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz218134: GFS & GFS2: umount while busy gives bogus error message.
-
-2006-12-01 Lon Hohberger <lhh at redhat.com>
-
- Handle 0.1.9 case of libvirt returning a virDomainPtr + state for a VM that doesn't exist (vm state == VIR_DOMAIN_SHUTOFF)
-
-2006-12-01 Abhijith Das <adas at redhat.com>
-
- bz 190196. gfs2_quota. Doesn't use sysfs anymore. Uses the gfs2meta filesystem instead.
-
-2006-12-01 David Teigland <teigland at redhat.com>
-
- Be more intelligent about handling recovery sets so we can deal with cases where a node fails, rejoins, then fails again before recovery has completed for the first failure. Also handles case where the groupd process exits without the node going down. If that happens, we want to kill the node (via cman) if the node was in any groups and ignore it otherwise.
-
- group_tool dump doesn't handle partial reads/writes, now we always dump entire fixed size debug buffer bz 214540
-
-2006-12-01 Patrick Caulfield <pcaulfie at redhat.com>
-
- That 'if' really should have been a 'while'. If anyone can remember which bug this was supposed to fix, please pipe up :)
-
-2006-12-01 Lon Hohberger <lhh at redhat.com>
-
- Fix bug where fence agents were getting info up to groupd
-
-2006-11-30 Lon Hohberger <lhh at redhat.com>
-
- Fix bug reported by Fabio M. Di Nitto - duplicate definition of assign_noccs
-
-2006-11-30 David Teigland <teigland at redhat.com>
-
- From: Steven Dake We dispatch in the dispatch handler now instead of saving the data. Also we use dispatch all which will basically try to dispatch all messages possible in one go instead of only dispatching on each loop through poll.
-
-2006-11-30 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz217798: Need to port Resource Group optimization from gfs1 to gfs2
-
-2006-11-30 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't truncate the node name when we check for it unqualified. bz#217724
-
-2006-11-29 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz213763: mkdir takes more time on larger file systems. Made gfs_mkfs use RG sizes based on size of file system to maximize performance.
-
- Resolves: bz217436: Several updates needed to cluster.conf man page. 1. Removed references to gulm. 2. Other misc changes.
-
- Resolves: bz217436: Several updates needed to cluster.conf man page. 1. Added required nodeid="x" to cluster.conf example. 2. Added <cman/> tag to cluster.conf example. 3. Added section on cluster.conf validation (Credit Jim Parsons) 4. Fixed spelling and grammar problems.
-
-2006-11-28 David Teigland <teigland at redhat.com>
-
- the fix yesterday to prevent a segfault when mount failed mistakenly also changed the exit point from the function causing the error to not be written back to mount.gfs
-
-2006-11-28 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz216902: mkfs.gfs2 allows non-4K block size. The executive decision was made to remove the -b option in mkfs.gfs2 until we can get all of this sorted out with the gfs2 kernel.
-
- Resolves: bz217460: fence_tool man page updates needed. Thanks go to Fabio Massimo Di Nitto for contributing this.
-
-2006-11-28 James Parsons <jparsons at redhat.com>
-
- file fence_baytech.py was initially added on branch RHEL4.
-
-2006-11-28 Patrick Caulfield <pcaulfie at redhat.com>
-
- Tell cman when the config file has been updated
-
-2006-11-27 David Teigland <teigland at redhat.com>
-
- if mount fails, don't try to save the mg info for the new group since there won't be any mg and we'll segfault
-
-2006-11-27 Ryan O'Hara <rohara at redhat.com>
-
- Fix comment. Fix exit status be rval.
-
-2006-11-27 Lon Hohberger <lhh at redhat.com>
-
- Fix #213878 - segfault in rg_thread.c due to improper loop semantics
-
-2006-11-27 Wendy Cheng <wcheng at redhat.com>
-
- bugzilla : 217374 - temporarily disable GFS1 withdraw until bz215962 is ready.
-
-2006-11-27 Ryan McCabe <rmccabe at redhat.com>
-
- Add DRAC5 and DRAC4/I support Related: #211836, #211918
-
-2006-11-22 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz216898 mkfs.gfs2 needs to zero the first 16 blocks of file system
-
-2006-11-21 David Teigland <teigland at redhat.com>
-
- handle errors or short reads when reading /dev/misc/lock_dlm_plock
-
-2006-11-21 Lon Hohberger <lhh at redhat.com>
-
- Fix #213218
-
-2006-11-20 David Teigland <teigland at redhat.com>
-
- use timersub() macro to subtract timevals instead of coding it
-
- fix a couple of problems if openais enables flow control: - the poll loop spins due to plocks being ready to process but being ignored due to the flow control; we need to remove the plock fd from the poll set when flow control is enabled (just like we do when the plock rate limiter is active) - we were not updating the flow control state from openais when flow control was enabled unless we received a cpg message; we need to update it periodically while blocked since we may not [...]
-
- The plock rate limiting code should use the full timeval to measure the 1 sec limit interval instead of just the rough difference in tv_sec values.
-
-2006-11-20 Robert Peterson <rpeterso at redhat.com>
-
- Fix another case where lf_dirent_format was not rewritten to disk after it was fixed.
-
-2006-11-17 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz208836 - fatal: invalid metadata block 1. Fix a memory leak in pass1b. 2. Improve performance of pass1b by combining loops through fs. 3. Give an error message and abort if file system > 16TB and node architecture is 32-bits. 4. Give users an "Abort" "Continue" and "Skip" if they interrupt with ctrl-c. Also, report progress for that pass on interrupt. 5. Added more "percent complete" messages for other passes.
- See bz comment #33 for more details.
-
-2006-11-17 David Teigland <teigland at redhat.com>
-
- if read() returns a non-EINTR error then abort
-
- if read() returns a non-EINTR error then shut down the client
-
-2006-11-17 Wendy Cheng <wcheng at redhat.com>
-
- Bugzilla 214274: Oops... only directIO has this issue - buffer IO should be fine. Revert buffer io changes.
-
-2006-11-17 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz215817 umount caused a 'filesystem consistency error' kernel BUG
-
-2006-11-17 Wendy Cheng <wcheng at redhat.com>
-
- Bugzilla 214274: GFS has been splitting large writes into smaller atomic transactions. This would generate multiple aio completion calls (one for each transaction) that falsely notify application about data completion. Problem is reported by QA team as data corruption.
-
-2006-11-16 Ryan O'Hara <rohara at redhat.com>
-
- Fix annoying whitespace inconsistency.
-
- Detect and fix potential endia problem in lf_dirent_format.
-
-2006-11-15 Lon Hohberger <lhh at redhat.com>
-
- Fix error reporting from cman if run while xend is not running.
-
-2006-11-15 David Teigland <teigland at redhat.com>
-
- fix sched_priority from sdake
-
- uncomment scheduler settings fix sched_priority from sdake
-
-2006-11-14 Robert Peterson <rpeterso at redhat.com>
-
- Resolves: bz211465 fsck errors on gfs2 volume
-
-2006-11-14 David Teigland <teigland at redhat.com>
-
- Default plock rate limit of 10 instead of 0.
-
- Add plock rate limit option -l <limit>. Current default is no limit (0). If a limit is set, gfs_controld will send no more than <limit> plock operations (multicast messages) every second.
- Given a limit of 10, one file system where plocks are used, and a program
- that does a tight loop of fcntl lock/unlock operations, the max number of
- loop iterations in 1 second would be 5. If eight nodes were all doing
- this there would be 80 total network multicasts every second from all
- nodes in the cluster.
-
- We also record the volume of plock messages accepted locally and received
- from the network in the debug log. A log entry is written for every
- 1000 locally accepted plock operations and for every 1000 operations
- received from the network.
-
-2006-11-14 Robert Peterson <rpeterso at redhat.com>
-
- Ability for gfs2_edit to handle gfs1 indirect metapointers.
-
-2006-11-13 Ryan O'Hara <rohara at redhat.com>
-
- Include sd_freeze_count in counters output. This will allow users to see the freeze count via gfs_tool counters.
-
-2006-11-13 Chris Feist <cfeist at redhat.com>
-
- Fixes to prevent compile time warnings/errors in brew.
-
- Need to include directory for ccs.h header file.
-
-2006-11-13 Lon Hohberger <lhh at redhat.com>
-
- Fix bugzilla #212474; fully integrates fence_xvmd with ccs & the cman init script
-
-2006-11-10 Benjamin Marzinski <bmarzins at redhat.com>
-
- fix for bz215095 & 215099.
- for 215099, gnbd now only handles signals in sock_xmit() when it is called by
- the gnbd_recvd process. Otherwise, it simply blocks the signals until it
- completes the IO. This keeps gnbd from sending partial requests to the
- server, which can lead to data corruption.
-
- for 215095, the gfs function clean_journal() now uses the noinline attriubute,
- gfs_find_jhead() only uses on struct gfs_log_header, and gfs_recover_journal() dynamically allocates its struct gfs_log_header, all to conserve stack space.
-
- In the gnbd function sock_xmit(), you no longer get the signal info, so
- gnbd_recvd cannot print which signal it received, but it saves over 120 bytes
- of stack space.
-
-2006-11-09 Robert Peterson <rpeterso at redhat.com>
-
- This is the fix for Bugzilla Bug 214524: group_tool dump can give short output.
-
- This is the fix for Bugzilla Bug 214625: Add group_tool log function to group_tool and groupd.
-
- This is the fix for Bugzilla Bug 214621: Allow gfs2_edit to view, print and edit gfs(1) file systems.
-
-2006-11-09 Patrick Caulfield <pcaulfie at redhat.com>
-
- Set join_timeout and consensus_timeout to higher defaults as per bz#214920
-
-2006-11-08 Robert Peterson <rpeterso at redhat.com>
-
- This is the fix for Bugzilla Bug 214513: gfs2_convert must reject file systems with block size != 4K.
-
-2006-11-08 Patrick Caulfield <pcaulfie at redhat.com>
-
- Always compile in debug logging - you never know when it might come in handy and it's disabled by default anyway.
-
-2006-11-06 Marek 'marx' Grac <mgrac at redhat.com>
-
- Bug #213524. Resource agent for named + patch for stopping applications
-
-2006-11-06 Patrick Caulfield <pcaulfie at redhat.com>
-
- if an AISONLY node dies, mark it DEAD bz#213747 comments 9-13 (ish)
-
-2006-11-03 Ryan O'Hara <rohara at redhat.com>
-
- Added fence_scsi_test to help test SCSI reservation capabilities.
-
-2006-11-03 Lon Hohberger <lhh at redhat.com>
-
- Fix bugzillas #212444, #212433
-
-2006-11-03 David Teigland <teigland at redhat.com>
-
- When a new master joins the mountgroup, it retrieves plocks from the ckpt created by the old master, then unlinks and closes the ckpt so it can create another new ckpt later.
- Bug found by sdake where the ckpt close following the unlink was
- being skipped because the ckpt handle wasn't being set.
-
-2006-11-03 Patrick Caulfield <pcaulfie at redhat.com>
-
- fix bz#213747 Basically we don't let a node join a cluster that already has "Disallowed" nodes in it as we don't consistently know the state of the cluster in that case (it could be two inquorate halves for example).
- Sorry, Steven, this is yet another instance where cman has to exit() the aisexec
- process for the greater good of the cluster.
-
- I've also enhanceed "cman_tool nodes" to show the disallowed nodes and a warning
- message that the cluster is in a bit of a mess.
-
-2006-11-01 Lon Hohberger <lhh at redhat.com>
-
- Apply patch to fix build on newer kernels from Fabio M. Di Nitto <fabbione at ubuntu.com>
-
-2006-10-31 Patrick Caulfield <pcaulfie at redhat.com>
-
- On Steven Dake's recommendation, also up the token_retransmit count to 20. and fix a couple of typos.
-
- Set the default token timeout to 5 seconds. It can still be overridden in cluster.conf if required.
-
-2006-10-30 Patrick Caulfield <pcaulfie at redhat.com>
-
- Lon's patch to user /etc/sysconfig/cman for customisation. bz#212393
-
-2006-10-27 Wendy Cheng <wcheng at redhat.com>
-
- Bugzilla 211622 - Root issue is found and fix. Backout the workaround.
-
-2006-10-26 Abhijith Das <adas at redhat.com>
-
- bz 211418. Modified gfs2_tool and gfs2_jadd to use the new inode flags in fs.h instead of deprecated iflags.h
-
-2006-10-25 Lon Hohberger <lhh at redhat.com>
-
- Update Changelog
-
- Fix #212074
-
-2006-10-25 Patrick Caulfield <pcaulfie at redhat.com>
-
- fix CMAN_DISPATCH_ALL. Patch from Mikhail A Zelikov which got inexplicably lost, sorry.
-
-2006-10-25 Benjamin Marzinski <bmarzins at redhat.com>
-
- This is a bugfix for bz #211923.
- When can't mount a filesystem because you already have it mounted, or some
- similar reason, you print out a helpful message, so the user can fix the
- problem.
-
-2006-10-24 David Teigland <teigland at redhat.com>
-
- recent commit fixing bz 210344 removed the memset so we're getting garbage back sometimes
-
- Clear out configfs dirs that we've created before exiting. Allows dlm kernel mod can be removed straight away now. bz 211924 (code setting scheduler priority also added but commented out)
-
- clean up gross code
-
-2006-10-24 Wendy Cheng <wcheng at redhat.com>
-
- Bugzilla 211622: GFS1 will asserts at xmote_bh() if DLM grants SHARED lock to direct IO's DEFERRED request. Add LM_FLAG_ANY to direct read to allow relaxed state and change direct write to use EXCLUSIVE lock.
-
-2006-10-24 Lon Hohberger <lhh at redhat.com>
-
- Fix #211701 (rgmanager + clustat hangs), #211933 (xenvm rename -> vm)
-
-2006-10-23 Benjamin Marzinski <bmarzins at redhat.com>
-
- Really gross hack!!! This is a workaround for one of the bugs the got lumped into 166701. It breaks POSIX behavior in a corner case to avoid crashing... It's icky.
- when NFS opens a file with O_CREAT, the kernel nfs daemon checks to see
- if the file exists. If it does, nfsd does the *right thing* (either opens the
- file, or if the file was opened with O_EXCL, returns an error). If the file
- doesn't exist, it passes the request down to the underlying file system.
- Unfortunately, since nfs *knows* that the file doesn't exist, it doesn't
- bother to pass a nameidata structure, which would include the intent
- information. However since gfs is a cluster file system, the file could have
- been created on another node after nfs checks for it. If this is the case,
- gfs needs the intent information to do the *right thing*. It panics when
- it finds a NULL pointer, instead of the nameidata. Now, instead of panicing,
- if gfs finds a NULL nameidata pointer. It assumes that the file was not
- created with O_EXCL.
-
- This assumption could be wrong, with the result that an application could
- thing that it has created a new file, when in fact, it has opened an existing
- one.
-
-2006-10-23 Abhijith Das <adas at redhat.com>
-
- Adding Josef's noquota mount option for GFS1 in RHEL5. Original bz 205285
-
-2006-10-23 David Teigland <teigland at redhat.com>
-
- Patch from Abhi to fix case where a node's mount is rejected by other group members causing gfs_controld on the mounter to leave the group immediately. It was sometimes leaving before its join was even finished which caused groupd to reject the leave, so we need to wait for the join to complete before doing the leave.
-
-2006-10-21 Robert Peterson <rpeterso at redhat.com>
-
- This is the fix for Bugzilla Bug 210344: group_tool does not handle short reads.
-
-2006-10-20 Lon Hohberger <lhh at redhat.com>
-
- Roll back patch to resrules.c
-
- Roll back patch to clusterfs.sh
-
- Fix 202637 - error reporting missing from some agents
-
- Compatibility fix for resource agents between linux-cluster and linux-ha
-
-2006-10-20 David Teigland <teigland at redhat.com>
-
- we weren't cleaning everything up for a client upon POLLUP
-
-2006-10-20 Robert Peterson <rpeterso at redhat.com>
-
- Fix for Bugzilla Bug 211405: If groupd segfaults, dump the most recent log information.
-
- This is the fix for Bugzilla Bug 210732: ccsd doesn't spot cluster going quorate. The fix was written by Patrick Caulfield, but I tested it and it now works properly. I'm doing the commit because Patrick is out today.
-
-2006-10-18 Robert Peterson <rpeterso at redhat.com>
-
- This is the fix for bugzilla bug 211337: must create core files for daemons on segfault.
-
-2006-10-17 Wendy Cheng <wcheng at redhat.com>
-
- Port RHEL4 GFS AIO (asynchronous IO) implementation into RHEL5/FC6 and community-version of GFS1.
-
-2006-10-17 Patrick Caulfield <pcaulfie at redhat.com>
-
- Get notifications BEFORE getting state otherwise we have a race condition. probably fixes bz#210732
-
-2006-10-16 Lon Hohberger <lhh at redhat.com>
-
- Updated xenvm resource agent
-
-2006-10-16 David Teigland <teigland at redhat.com>
-
- Recent changes to mount scenarios (mounts while another node is doing first mount recovery) added a couple places where we need to clear the "save_plocks" flag to allow a new mount to begin processing plock requests.
-
-2006-10-16 Patrick Caulfield <pcaulfie at redhat.com>
-
- 'while' should be an 'if'
-
-2006-10-16 David Teigland <teigland at redhat.com>
-
- typo, deleting "rs" instead of "re" when cleaning stuff up
-
- fix typo in debug message
-
- fix style badness
-
- A node that was just added would incorrectly conclude that the node after it needed to do first mounter recovery.
-
-2006-10-16 Lon Hohberger <lhh at redhat.com>
-
- Fix #209544 - umount failing on gfs/nfs services
-
-2006-10-16 Patrick Caulfield <pcaulfie at redhat.com>
-
- Sigh, got the condition back-to-front. This should fix the AISONLY status (again).
-
-2006-10-15 Wendy Cheng <wcheng at redhat.com>
-
- Just found 2.6.18 kernel has something called down_read_non_onwer for rwsemaphore. If we can implement a similar function that does something like "up_write_if_owner", then we can put i_alloc_sem back to correct state. Correct the comment and mark this possibility.
-
- Bugzilla 203170 - direct IO deadlock: We'll have the same deadlock as described in bugzilla 173912 without RHEL4 kernel DIO_CLUSTER_LOCKING flag. To work around this issue, the i_alloc_sem is dropped from GFS. We expect glock will be able to handle the local synchronization.
-
-2006-10-14 Robert Peterson <rpeterso at redhat.com>
-
- This is the fix for bugzilla bug 210369: acls are not enabled after remount. The problem was a combination of things, but mainly due to the gfs mount helper mount.gfs2 not passing the mount parameters on in the extras string during a remount. The mount helper was also incorrectly putting some messages into stdout.
-
-2006-10-14 Benjamin Marzinski <bmarzins at redhat.com>
-
- Make gnbd work with cman correctly. This sort of roughly falls under the heading of bz #210415
-
-2006-10-14 Robert Peterson <rpeterso at redhat.com>
-
- This is a fix for bugzilla bug 210300: Unknown mount option "users". The gfs and gfs2 mount helper (/sbin/mount.gfs2) was aborting if it saw mount options that are not part of mount.h (i.e. internal to mount and vfs). The fix is to add the missing options so the mount helper will recognize them properly.
-
-2006-10-13 Chris Feist <cfeist at redhat.com>
-
- We don't want to delete the scsi_reserve init script when doing a make clean.
-
-2006-10-13 David Teigland <teigland at redhat.com>
-
- Fix an effect of recovery mixed with joins where the node whose join event was interrupted by the recovery can sometimes not have its g->joining flag cleared which would cause a later unmount to hang.
-
- The corresponding changes to the gfs_controld changes in handling mixed mounts and recoveries and failed mounts. We now tell gfs_controld when our mount has completed and the result using the same connection that we created when requesting the mount.
-
- Handling a lot of hard situations in the areas of: - recoveries mixed with mounts in lots of different ways - mount failures while lots of nodes are mounting in parallel
- (Part of this is also an update to mount.gfs, both gfs_controld and
- mount.gfs need to be updated together.)
-
-2006-10-13 Robert Peterson <rpeterso at redhat.com>
-
- This is the fix for bugzilla bug 210587: Oops in gfs_get_dentry via NFS. The gfs file system, when called by NFS, was sometimes referencing the vestigial license file, causing the segfault.
-
-2006-10-13 David Teigland <teigland at redhat.com>
-
- replace spaces with tabs
-
-2006-10-13 Ryan O'Hara <rohara at redhat.com>
-
- Remove unnecessary chmod for scsi_reserve.
-
-2006-10-13 Robert Peterson <rpeterso at redhat.com>
-
- This fix is for bugzilla 210641: Race condition hang/failure between cman daemons and groupd. Added a retry with timeout to group_init and all its callers.
-
-2006-10-13 David Teigland <teigland at redhat.com>
-
- If cpg_join or cpg_leave are stuck in a retry loop, put an error message in syslog after ten seconds.
-
-2006-10-13 Robert Peterson <rpeterso at redhat.com>
-
- This is for bugzilla 210162: fence_tool needs -w and -t options to wait for group membership.
-
-2006-10-13 Lon Hohberger <lhh at redhat.com>
-
- Ancillary patch to fix 202492 and actually add back groupmember attr, not just rgmanager (per-node) attr
-
-2006-10-13 Ryan O'Hara <rohara at redhat.com>
-
- Add code to create initdir if it doesn't exist.
-
-2006-10-12 Chris Feist <cfeist at redhat.com>
-
- Added changes to support installing init scripts w/ brew build.
-
-2006-10-12 Ryan O'Hara <rohara at redhat.com>
-
- Remove scsi_reseve from "all". This will be handled by the agent make target.
-
- Add scsi_reserve init script to Makefile so that it gets installed.
-
-2006-10-12 David Teigland <teigland at redhat.com>
-
- Handle the case where we're the second node being added to the group and the only other member fails. We need to go ahead and process our join.
-
-2006-10-12 Benjamin Marzinski <bmarzins at redhat.com>
-
- Change the way gnbd notifies multipathd about device changes, to deal with the new udev.
-
-2006-10-10 Patrick Caulfield <pcaulfie at redhat.com>
-
- Avoid spurious messages. and also fix an odd node count when nodes rejoin.
-
-2006-10-10 Marek 'marx' Grac <mgrac at redhat.com>
-
- Script for parsing Tomcat's conf/server.xml
-
- Bug #204784. Adding Tomcat resource agent
-
-2006-10-09 David Teigland <teigland at redhat.com>
-
- if we get a plock request from the kernel when plocks are disabled, return -ENOSYS for the request
-
- add -p option to completely disable plocks/ckpts
-
-2006-10-09 Patrick Caulfield <pcaulfie at redhat.com>
-
- If there are disallowed (AISONLY) nodes in the cluster, then name & shame them.
-
- Don't fence a node if it has already been fenced. bz#204633
-
-2006-10-06 Lon Hohberger <lhh at redhat.com>
-
- Fixed 202492, not 202497...
-
- Fix #202497
-
-2006-10-06 David Teigland <teigland at redhat.com>
-
- This is a big batch of code that gets us further along the path to handling recoveries mixed with joins (gfs mounts). The test I've been using to work on this is inserting a BUG() at the start of gfs_lm_get_lock() on six of eight nodes and then mounting on all of them in parallel. We should end up with the two nodes without the BUG properly mounted and the six with the BUG properly recovered.
-
- - check cpg flow control status from openais when processing plocks - handle case where we're mounting and the only other mounted node fails -- we need to become the first mounter if we've not begun mount(2) yet - journal recovery requests need to be fed serially to gfs, we weren't doing that in the case where a gfs journal recovery was in progress when another node failed
-
- make the number of clients a global variable so it will be easier to add clients later
-
-2006-10-06 Chris Feist <cfeist at redhat.com>
-
- Update building for xvm fence agent to build cleanly in brew.
-
-2006-10-05 Lon Hohberger <lhh at redhat.com>
-
- Fix #208115
-
- Add --enable_xen configuration option (off by default), and make sure -V flag works for fence_xvm[d]
-
-2006-10-05 David Teigland <teigland at redhat.com>
-
- don't configure gfs-kernel or gnbd-kernel now that they're not built by default
-
- update
-
- gfs-kernel (gfs1) and gnbd-kernel are going to track the RHEL5 kernel in cvs head. We want the default top-level build of cvs head to work on upstream kernels, though, e.g. 2.6.19, for people who are trying out upstream gfs2/dlm.
- So, comment gfs-kernel and gnbd-kernel out of the top level makefile.
- Once we create a RHEL5 branch, we can uncomment them there (and
- perhaps remove gfs-kernel and gnbd-kernel from cvs head.)
-
-2006-10-05 Lon Hohberger <lhh at redhat.com>
-
- Implementation of client/server based Xen Virtual Machine (xvm) fencing. This allows fencing of a virtual machine from any other virtual machine in the cluster (regardless of the physical host) which shares the same private key, either based on UUID or Xen domain name. Please see README and TODO before posting feature requests.
-
-2006-10-05 Chris Feist <cfeist at redhat.com>
-
- - Added in fixes to make gfs-kmod compatible with the RHEL5 kernel - removed inode->i_blksize references - Using i_private instead of u.generic_ip in the inode struct
-
-2006-10-05 David Teigland <teigland at redhat.com>
-
- updates
-
-2006-10-05 Patrick Caulfield <pcaulfie at redhat.com>
-
- A bit of a hack to cope with the race condition where dlm_controld gets the groupd callback before the cman one and tries to start a DLM lockspace before all the node addresses are known.
- I think this will fix bz#207197
-
- Add some extra semantics to CMAN to cope with openAIS rejoins. Basically, this adds an extra state to a node: AISONLY which is only cleared when cman receives a valid TRANSITION message from the node.
- A TRANSITION message is deemed to be invalid if the join_time of the node
- has not been changed (this is the timestamp the daemon was started) and
- the node has since been down and is rejoining. cman_tool will show if this
- is the case for a cluster by displaying the DisallowedNodes flag in the
- "cman_tool status command".
-
- If there are disallowed nodes in the cluster then the "cman_tool expected"
- command is disabled until those nodes have been removed.
-
-2006-10-04 Robert Peterson <rpeterso at redhat.com>
-
- Add -w option back to fence_tool join in cman init script.
-
- Add the "-w" (wait) and "-t" (timeout) parameters back in to fence_tool.
-
-2006-10-04 Marek 'marx' Grac <mgrac at redhat.com>
-
- This patch pushes generated configuration files for service in /etc/cluster/ (RA_COMMON_conf_dir) where each service (samba, openldap, ...) has it's own directory. In this directory is another directory with instances (OCF_RESOURCE_INSTANCE).
- Our generated configuration files are not re-generated when user changes them, that' reason why there are in /etc and not in /var.
-
-2006-10-04 David Teigland <teigland at redhat.com>
-
- set the "member" field in the group_data struct that's returned when querying for group information
-
-2006-10-03 Lon Hohberger <lhh at redhat.com>
-
- Fix #208577
-
-2006-10-03 Ryan O'Hara <rohara at redhat.com>
-
- Added gfs_security_init to initialize SELinux xattrs for newly created inodes.
-
-2006-10-02 Ryan O'Hara <rohara at redhat.com>
-
- Add GFS_EATYPE_SECURITY as valid xattr type and increment GFS_EATYPE_LAST. Without this gfs_fsck will complain (and remove) SELinux xattrs.
-
-2006-10-02 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't even start up if the local host name resolves to 127.0.0.1
-
-2006-09-29 Marek 'marx' Grac <mgrac at redhat.com>
-
- Test if PID file of the application points to running PID. If not then this PID file is deleted and application can start.
-
- Some application needs time until they stop all theirs processes, so we have to wait a few moments until main/parent process is finished. This patch adds an option 'shutdown_wait' for each application's RA.
-
-2006-09-28 Lon Hohberger <lhh at redhat.com>
-
- Fix segfault due to missing param
-
-2006-09-28 David Teigland <teigland at redhat.com>
-
- put a message in syslog if we get a cpg error that we can't deal with
-
-2006-09-28 Abhijith Das <adas at redhat.com>
-
- memory violation
-
-2006-09-27 Lon Hohberger <lhh at redhat.com>
-
- Fix 202498
-
- Clean up build
-
- Apply patch from Fabio M. Di Nitto to fix clustat service name expansion bug
-
- Fix various bugs, incl. 208011, 203762
-
- Fix failed->disabled state transitions; #208011
-
-2006-09-27 Marek 'marx' Grac <mgrac at redhat.com>
-
- Add check if the instance of RA has parent (variable service_name)
-
- Adding Samba resource agent (tag <samba>). We already have resource agent for Samba but this is written in the same way as the other application's RA (mysql, apache, ...). Old-style RA stays available (tag <smb>) so it won't break backward compatibility.
-
- Adds new function (generate_name_for_pid_dir()). Minor update of messages texts.
-
-2006-09-26 David Teigland <teigland at redhat.com>
-
- Adding -vv to the groupd command line will result in a log_debug for every cpg send and every cpg recv.
-
- Add debugging in four areas to help us know more quickly when something might be wrong at the cpg level: - log if cpg flow control goes on - log when we're waiting to receive a cpg event for our own join - when we're in a FOO_STOP_WAIT or FOO_START_WAIT state, log how many more cpg messages we're waiting to receive before moving on to the next state - save the event id of the last cpg message we sent, and clear that value when we receive that message back (this value is printed to [...]
-
-2006-09-25 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add struct entry for .flow_control to keep latest openais happy.
-
-2006-09-22 Patrick Caulfield <pcaulfie at redhat.com>
-
- Cope with a node being fenced manually and then going offline (ie someone else fenced it).. Some further modifications to fenced can then prevent double-fencing with the following caveats:
- - the clocks on the nodes are reasonably in sync
- - the node goes down within two minutes of the fence message being received
-
- If there is any ambiguity then cman will mark the node as unfenced so that
- fenced can do the job anyway.
-
-2006-09-21 Benjamin Marzinski <bmarzins at redhat.com>
-
- Fix for bugzilla #207599. The individual gserv processes inherit the atexit callbacks from the main gnbd_serv process. One of those kills all the gserv processes. Now they don't do that.
-
-2006-09-21 Lon Hohberger <lhh at redhat.com>
-
- Apply resource-instance-name.patch
-
-2006-09-20 David Teigland <teigland at redhat.com>
-
- Get lm_interface.h from the kernel instead of keeping a duplicate copy here. Requires recent upstream gfs2 change that moves lm_interface.h from fs/gfs2/ to include/linux/
-
-2006-09-20 Robert Peterson <rpeterso at redhat.com>
-
- Addendum to bz 200883. If gfs2_fsck can't finish initialization, it was exiting but not fixing the lock protocol back for normal use.
-
- Addendum to bz 200883. If gfs_fsck can't finish initialization, it was exiting but not fixing the lock protocol back for normal use.
-
- This is a crosswrite from gfs1 for bugzilla bz 200883: gfs_fsck segfaults on very large file systems. The same problem existed and is now fixed in gfs2_fsck and libgfs2.
-
- This is the fix for bugzilla 200883: gfs_fsck segfaults. The problem was that gfs_fsck was running out of memory for in-core bitmaps when run on very large file systems. For example, 45T requires about 11GB of memory. This fix doesn't allow it to run, this just exits gracefully, tells them why, and how much additional memory is needed.
-
-2006-09-20 Marek 'marx' Grac <mgrac at redhat.com>
-
- After upgrade to 'unified names for PID files' we can clean code a bit.
-
- Adds possibility to add command line options to MySQL RA. Names of variable in RA's metadata are changed to unify style.
-
- Adds possibility to add command line options to Apache RA. Names of variable in RA's metadata are changed to unify style.
-
- Bug #204058. Adding resource agent for PostgreSQL 8
-
-2006-09-19 Jonathan Brassow <jbrassow at redhat.com>
-
- lsnodes -> lsnode typo.
-
-2006-09-18 Chris Feist <cfeist at redhat.com>
-
- - Fix for bz #206325, ccs should not be started with the '-X' option & return the socket file descriptor instead of '0' when returning from ccs_open.
-
-2006-09-18 Marek 'marx' Grac <mgrac at redhat.com>
-
- PID files are stored in common directory. Name of the PID file is generated from the OCF_RESOURCE_INSTANCE. Resource agents for Apache, MySQL and OpenLDAP are updated.
-
-2006-09-15 David Teigland <teigland at redhat.com>
-
- positive return code from recover_current_event() should just indicate that the event should be processed again, and not added to the return value of process_app() which causes the whole thing to be called in a loop
-
- have groupd set the scheduler to RR priority 2, same as gfs_controld
-
-2006-09-14 David Teigland <teigland at redhat.com>
-
- Fixes a really stupid bug checked in yesterday that causes groupd to seg fault due to referencing a pointer that's not been set yet.
-
- handle short/interrupted writes/reads
-
-2006-09-14 Benjamin Marzinski <bmarzins at redhat.com>
-
- file log.h was initially added on branch RHEL4.
-
- file log.c was initially added on branch RHEL4.
-
-2006-09-14 Marek 'marx' Grac <mgrac at redhat.com>
-
- typing error
-
- Simplifying scripts: The basic method of monitoring service is to check for PID file and test if we have such process. This function should be used by every RA for application.
-
-2006-09-14 Patrick Caulfield <pcaulfie at redhat.com>
-
- Cope with short writes to the cman socket. bz#206093
-
-2006-09-14 Marek 'marx' Grac <mgrac at redhat.com>
-
- Bug #204060. Adding OpenLDAP resource agent
-
-2006-09-13 David Teigland <teigland at redhat.com>
-
- update per the gfs2 upstream changes to the lock module interface: - remove sync_lvb - remove lm_lock_t, lm_lockspace_t, lm_fsdata_t typedefs
-
-2006-09-12 David Teigland <teigland at redhat.com>
-
- Use the event_nr arg provided in start_done to check if the start_done callback should be ignored; were ignoring the event_nr. The check of the current event state covered it, but ended up producing an unnecessary warning in syslog.
-
- undo junk mistakenly added by last commit
-
- remove stuff from dlm/nolock/harness since it all comes from upstream now
-
-2006-09-12 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix strdup braindamage that probably caused segfaults when nodes left the cluster.
- This is likely to be the cause of bz#206083
- (thanks to Steven Dake for most of the diagnostics on this).
-
-2006-09-09 David Teigland <teigland at redhat.com>
-
- use same retry delay on cpg sends as gfs_controld, usleep(1000) between each retry
-
- - minor change to the delay we add between each cpg_mcast retry - set scheduler to RR priority 2 for gfs_controld
-
-2006-09-07 David Teigland <teigland at redhat.com>
-
- handle short or interrupted reads/writes, an snprintf instead of sprintf, strtoul instead of atoi, handle an ENOMEM
-
- no void arg in dlm_get_fd prototype was causing warnings
-
-2006-09-06 James Parsons <jparsons at redhat.com>
-
- Support for DRAC ERA
-
-2006-09-01 Lon Hohberger <lhh at redhat.com>
-
- 2006-09-01 Lon Hohberger <lhh at redhat.com> * include/resgroup.h: Add proto for rg_strerror * include/vf.h: Add proto for vf_invalidate (flushes vf cache) * src/clulib/rg_strings.c: Add rg_strerror function, define human-readable strings for rgmanager error values * src/clulib/vft.c: Add vf_invalidate (separate from vf_shutdown) * src/daemons/groups.c: Fix obvious logic error * src/daemons/main.c: Fix rg_doall() message during los [...]
-
-2006-09-01 Patrick Caulfield <pcaulfie at redhat.com>
-
- Rename 'private' to 'privdata' so it doesn't upset C++
-
-2006-08-31 David Teigland <teigland at redhat.com>
-
- convert write(2) calls to use do_write() which handles EINTR and short writes
-
- When deciding whether we need to unlink the checkpoint and resend journals for a failed master node we weren't distinguishing between the master failing (where we need to do this stuff) and the master just leaving (where we don't).
-
- tidy up a couple style things
-
- when we set a recovery event back to the FAIL_BEGIN state, make sure that we process the event once before processing any new messages. this is probably a better fix for bz 202635 than I added previously where we accept messages more liberally i.e. in X_BEGIN states.
-
-2006-08-31 Robert Peterson <rpeterso at redhat.com>
-
- This is a fix for Bugzilla Bug 203916: groupd daemon segfault and mount hang when mounting five or more GFS file systems.
-
-2006-08-31 David Teigland <teigland at redhat.com>
-
- - break from snprintf loop when buffer is filled - handle some odd error cases like EINTR - handle short writes
-
-2006-08-31 Ryan O'Hara <rohara at redhat.com>
-
- ccsd is now fixed such that it will not daemonize until the socket is ready for communication. As a result, the sleep after starting ccsd is no longer needed.
-
- Moved code which signals parent (SIGTERM), which allows the parent process to continue and exit. This signal was occuring before ccsd had the sockets ready for communication, and as a result the cman init script would sometimes fail because the ccsd would daemonize before the socket was ready.
- This fix will not signal the parent until ccsd is ready (socket is created
- and ready; before select() loop).
-
-2006-08-31 Marek 'marx' Grac <mgrac at redhat.com>
-
- Minor changes.
-
- Bug #204057. Adding Apache resource agent and utility which parse httpd.conf.
-
- Bug #204054. Adding MySQL resource agents and utilities which will be common for other RA.
-
- Fix #203720. Do not run backup copies (ends with ~) of resource agents.
-
-2006-08-30 Abhijith Das <adas at redhat.com>
-
- fix for bz 190204. gfs2_jadd uses the gfs2meta filesystem to add journals to an existing gfs2 fs
-
-2006-08-30 Ryan O'Hara <rohara at redhat.com>
-
- Remove error handling for missing magma plugins.
-
-2006-08-28 Chris Feist <cfeist at redhat.com>
-
- Create symlinks for mount.gfs & umount.gfs.
-
- The gfs package should be installing the umount/mount.gfs links.
-
-2006-08-26 Abhijith Das <adas at redhat.com>
-
- fix for bz 203167 and bz 202984. stop_fence was commented out. Now we do stop_fence before doing a cman_tool leave.
-
-2006-08-24 Patrick Caulfield <pcaulfie at redhat.com>
-
- initialise confchg_callback
-
-2006-08-22 Chris Feist <cfeist at redhat.com>
-
- Don't force the owner to root (breaks rpm build).
-
- Added gfs_ondisk.h to allow builds outside of tree.
-
-2006-08-22 David Teigland <teigland at redhat.com>
-
- When we're in X_BEGIN state, accept "stopped" messages from other nodes. This applies to bz 202635. (There may be a better way to address this, e.g. forcing a new FAIL_BEGIN event to be processed before processing any messages)
-
-2006-08-21 Chris Feist <cfeist at redhat.com>
-
- - Install the init script in the correct place. - Change includes for gfs_ondisk.h & gfs_ioctl.h.
-
- Copied gfs_ondisk.h from gfs-kernel to allow builds to succeed.
-
-2006-08-21 David Teigland <teigland at redhat.com>
-
- expand the number of cases where we don't tell gfs-kernel to do recovery because it won't be able to -- esp cases related to a mount in progress but not yet far enough for gfs to be able to do journal recovery
-
-2006-08-21 Robert Peterson <rpeterso at redhat.com>
-
- Get gfs_ondisk.h from local includes, not kernel includes.
-
-2006-08-21 David Teigland <teigland at redhat.com>
-
- - the check for us becoming the new low nodeid after the previous one failed and unlinking the ckpt wasn't adequately checking for the old low node having failed - rename low_finished_nodeid to master_nodeid and clarify some of the code using this since it was confusing and misleading
-
-2006-08-21 Lon Hohberger <lhh at redhat.com>
-
- 2006-08-21 Lon Hohberger <lhh at redhat.com> * src/daemons/main.c: Fix #202500 - simultaneous starts confuse rgmanager. This happened due to the fact that rgmanager was not correctly determining port listening status of other nodes on the first pass, and subsequent attempts to determine status of other nodes were not tried.
-
-2006-08-18 Lon Hohberger <lhh at redhat.com>
-
- Fix 200776 - mixed up default log level constants
-
-2006-08-18 David Teigland <teigland at redhat.com>
-
- when the low nodeid fails, the checkpoint needs to be unlinked, otherwise creating the ckpt will fail down the road when another node mounts
-
-2006-08-18 Lon Hohberger <lhh at redhat.com>
-
- 2006-08-18 Lon Hohberger <lhh at redhat.com> * include/resgroup.h: Change ordering and add magic field to rgmanager state field (warning: breaks compatibility from 08/08 CVS!) * src/clulib/ckpt_state.c, src/daemons/rg_state.c: Fix bug preventing correct operation of ckpt operation after initial boot. Get rid of debug info. * src/daemons/groups,c, main.c: Fix #202499 - shutdown while handling transitions sometimes allows services to restart (due to not locking RGs locally) * src [...]
-
-2006-08-17 David Teigland <teigland at redhat.com>
-
- change debug messages related to storing/retrieving plocks to/from checkpoints to see more details about the ckpt
-
-2006-08-17 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix a bug in the demo prog. no point in setting a bad example (again)
-
- Add a confchg callback to libcman, similar to the openAIS ones. this gives a race-free notification of cluster change deltas and will probably simplify client code hugely. (or it would if most of it hadn't already been written!)
-
-2006-08-16 David Teigland <teigland at redhat.com>
-
- after unlinking a ckpt, don't try to close it if we don't have it open, (no big problem, the close would just fail) and go back to syslogging ckpt close errors
-
-2006-08-16 James Parsons <jparsons at redhat.com>
-
- Ignore unused args to stdin
-
-2006-08-16 David Teigland <teigland at redhat.com>
-
- don't barf on unknown option arg
-
-2006-08-16 James Parsons <jparsons at redhat.com>
-
- ignored unused args from stdin
-
-2006-08-16 David Teigland <teigland at redhat.com>
-
- change log_plock() to log_group() for packing/unpacking plocks in checkpoint
-
-2006-08-16 Robert Peterson <rpeterso at redhat.com>
-
- Fixed segfault in gfs_controld.
-
-2006-08-15 David Teigland <teigland at redhat.com>
-
- errors opening sysfs files are normal/expected in many cases, so don't complain in syslog about it
-
- don't barf on extra args
-
- don't barf on unused args
-
- daemons that depend on groupd (fenced, dlm_controld, gfs_controld) should log and error and exit if groupd dies
-
-2006-08-15 Patrick Caulfield <pcaulfie at redhat.com>
-
- "group" should be "amf"
-
- At startup, check that ALL nodes in CCS have nodeids assigned. If not, then refuse to start.
-
-2006-08-14 David Teigland <teigland at redhat.com>
-
- Code that starts groups in order of level during recovery wasn't working right in the case where a node fails while mounting, i.e. node fails after it's joined the level2 mountgroup but before it joins the level1 lockspace. Code now checks that all lower levels are recovered instead of just checking that level-1 is recovered.
-
- remove a couple log_error's
-
- show all options in help output
-
- There's been a relatively unusual problem explained in the comments that I'd been putting off fixing for lack of a nice solution. Turns out this problem could crop up more often than hoped, so have had to fix it.
- 1) mount.gfs asks gfs_controld to join mount group
- 2) gfs_controld does and notifies mount.gfs to go ahead with mount(2)
- 3) gfs_controld gets a stop callback for the group due to another node
- mounting
- 4) gfs_controld needs to wait for the kernel mount to complete before it
- can stop/suspend the mount group (through sysfs)
- 5) mount(2) fails in the kernel for whatever reason
- 6) mount.gfs tells gfs_controld the kernel mount failed
-
- gfs_controld is waiting for the kernel mount to complete outside its
- normal poll loop, though, so it won't ever get the message in step 6, and
- will wait forever for the failed mount to actually complete.
-
- Added a pipe between mount.gfs and gfs_controld that mount.gfs just uses
- to send a failed mount message. gfs_controld watches the pipe for this
- error message while waiting for the kernel mount. mount.gfs uses unix
- socket ancilliary data to send an fd to gfs_controld.
-
-2006-08-14 Robert Peterson <rpeterso at redhat.com>
-
- Fixed segfault converting bitmaps during inode conversion.
-
-2006-08-12 Robert Peterson <rpeterso at redhat.com>
-
- Reset other inode bits when temporarily setting S_IFDIR bit.
-
-2006-08-11 David Teigland <teigland at redhat.com>
-
- report mount failure debug message earlier
-
-2006-08-11 Robert Peterson <rpeterso at redhat.com>
-
- This change is for Makefile reform allowing a simple "make" command to recompile the entire cluster suite:
- 1. All Makefiles have been changed to get rid of references
- to "copytobin" and the bin directory. This will
- eliminate discrepancies between "bin" versions and
- installed versions of the programs.
- 2. The cman and group configure files have been modified
- to allow linking properly to /usr/lib64 on x86_64
- systems without specifying libdir.
- 3. Fixed several problems relating to "make install"
- not recompiling modified code.
- 4. Fixed some dependency problems with gfs and gfs2 tools
- that linked against libgfs and libgfs2 respectively.
- 5. All Makefiles have been updated to use "make -C <dir>"
- rather than "cd <dir> ; make" so that compile errors
- won't charge ahead without stopping you.
- 6. Deleted references to obsolete iddev library.
- 7. Got rid of more "linux" symlinks for includes.
- 8. Misc minor Makefile cleanup.
-
-2006-08-11 Lon Hohberger <lhh at redhat.com>
-
- Apply Navid's patch to -head
-
-2006-08-11 Robert Peterson <rpeterso at redhat.com>
-
- Get rid of symlink "linux" for referencing includes and use the correct lm_interface.h.
-
-2006-08-11 Patrick Caulfield <pcaulfie at redhat.com>
-
- Create a pipe between cman_tool and the cman daemon so that it can communicate back any failures that occur during initialisation.
- This should help debug any problems people have with cman appearing
- to die straight after startup.
-
- Set a good example by checking return values.
-
- We don't really need to include signal.h twice :)
-
-2006-08-10 Robert Peterson <rpeterso at redhat.com>
-
- Make block_list use a consistent set of values rather than enum values in one place and #defines in another, and trying to keep them in sync.
-
- Fix include gfs_ondisk.h to be located in gfs kernel source rather than in the kernel includes.
-
- Fix minor compile problem due to missing include.
-
-2006-08-10 David Teigland <teigland at redhat.com>
-
- log_debug() when we receive a withdraw message
-
-2006-08-10 Robert Peterson <rpeterso at redhat.com>
-
- Mounting was mistakenly allowed with too few journals.
-
-2006-08-09 Lon Hohberger <lhh at redhat.com>
-
- Fix relocation & transition handling
-
-2006-08-09 Robert Peterson <rpeterso at redhat.com>
-
- Fix compile error with vmalloc.
-
- Hex values were not shown or printed correctly on x86_64.
-
-2006-08-09 David Teigland <teigland at redhat.com>
-
- don't send plock debugging to stdout with -D, use -P to get that now
-
-2006-08-09 James Parsons <jparsons at redhat.com>
-
- addresses bz193065
-
- Removed BULL refs from man page
-
-2006-08-09 Patrick Caulfield <pcaulfie at redhat.com>
-
- Some systems need #include <signal.h> and who are we to deny them ?
-
-2006-08-08 David Teigland <teigland at redhat.com>
-
- The idea to have the last node that did the checkpoint try to reuse it even if it wasn't the low nodeid any more doesn't work because the new mounter tries to read the ckpt when it gets the journals message from the low nodeid before the ckpt is written from the other node. Now, the low nodeid is always the one to create a ckpt for a new mounter which means a node saving the last ckpt needs to unlink it when it sees a new low nodeid join the group.
-
-2006-08-08 Benjamin Marzinski <bmarzins at redhat.com>
-
- setting multiple locations for gnbd_get_uid to check for scsi_id, and updating the man page. Patches from Fabio
-
- pull devfs stuff out of gnbd.
-
-2006-08-08 David Teigland <teigland at redhat.com>
-
- if a node has a saved ckpt when it unmounts, it needs to unlink it so another node can create a new ckpt for the next mounter
-
- use the correct (global) handle when unlinking a checkpoint
-
-2006-08-08 Lon Hohberger <lhh at redhat.com>
-
- Fix parameter ordering for calling cman_send_data_unlocked
-
- * src/clulib/ckpt_state.c: Preliminary implementation of replacement for VF using AIS CKPT B.02.01 (w/ built-in test program) * include/cman-private.h: Clean up APIs (cman APIs return cman_handle_t, which is void*, should be using void ** all over) * include/message.h: Bump context count to 128, add destination node ID in header of packets. * src/clulib/alloc.c: If we alloc the same size, return the same block * src [...]
-
-2006-08-07 David Teigland <teigland at redhat.com>
-
- free all plock state for an fs when it's unmounted
-
- update lm_interface.h from version in git tree
-
-2006-08-04 David Teigland <teigland at redhat.com>
-
- Some basic stuff that I hadn't realized I'd not done back when first writing this: - purge plocks of failed nodes - implement get - write results back to processes waiting in the kernel
-
- bring lm_interface.h in sync with the version in gfs2
-
-2006-08-04 Abhijith Das <adas at redhat.com>
-
- Continuing work on bz 195591. awk matching string for gfs and gfs2 was not right. Was causing the init scripts to go into a loop when both gfs and gfs2 fs were mounted
-
-2006-08-04 Chris Feist <cfeist at redhat.com>
-
- Reverted changes to fix 64 bit arch building.
-
-2006-08-03 Robert Peterson <rpeterso at redhat.com>
-
- Got rid of iddev references.
-
- The gfs2 userland tools weren't compiling when cluster configure was used because the gfs2kincdir was being overridden.
-
-2006-08-02 David Teigland <teigland at redhat.com>
-
- - complain and ignore checkpoint sections with a bad size - do checkpoint for new nodes if low node in charge of that failed
-
- before freeing a group struct, sanity check it's not referenced in any recovery sets
-
- do byte-swapping
-
- - checkpoint usage for plocks is getting closer, basic writing/reading of plock state to/from ckpt's works, but unlinking ckpt's and clearing open ckpt's from processes that exit don't appear to be working right in openais
-
-2006-08-02 Lon Hohberger <lhh at redhat.com>
-
- fix 200449 - status checks wrong
-
-2006-08-02 Robert Peterson <rpeterso at redhat.com>
-
- This is a fix for bugzilla bz 164499 (Unable to mount loopback images from mounted GFS partition). The previous fix had a problem where any writes to files in the file system would cause the problem to reappear. For more details see: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=164499
-
- Fix compilation problems on x86_64 (link against /usr/lib or /usr/lib64 depending on archetecture).
-
-2006-08-02 Patrick Caulfield <pcaulfie at redhat.com>
-
- if we can't get the latest config from CCS, poll it until we do.
-
-2006-08-02 Wendy Cheng <wcheng at redhat.com>
-
- Bugzilla 199984: Increasing gt_statfs_slots tunable could significantly boost gfs "df" performance; e.g. set it to 128 from current default (64) could cut the "df" wall time in half with larger filesystem size. However, the kmalloc call within stat_gfs_async() has the possibility to fail due to increased gt_statfs_slots. There is really no need for this array to be on a piece of contiguous memory. Switch to vmalloc().
-
-2006-08-01 Robert Peterson <rpeterso at redhat.com>
-
- Add useradd for ais user, added instructions for gfs (1).
-
-2006-07-31 David Teigland <teigland at redhat.com>
-
- 'group_tool dump plocks <fsname>' can now be used to display all plocks held in the fs
-
- - use nodeid and owner when checking the owner of a plock instead of just pid - this requires the recent addition of an owner field to the struct in the lock_dlm_plock.h kernel header - add ability to dump all the plocks to a client (group_tool) to display - add new code that uses the SA CKPT service to synchronize all the plock state for the group to a new node that joins the group, this is currently disabled until it's been tested and debugged
-
-2006-07-28 Robert Peterson <rpeterso at redhat.com>
-
- OpenAIS builds for /usr/lib64/openais on x86_64 machines. We need to link against what it uses.
-
-2006-07-28 David Teigland <teigland at redhat.com>
-
- Update the cman member list every time we call is_member(). When called from the fence delay loop, we're not processing callbacks so our member list won't be updated as a result of a cman callback.
-
-2006-07-28 Robert Peterson <rpeterso at redhat.com>
-
- 1. Allow SIGINT signals so that gdb can break into hung mounts. 2. Remove multiple trailing slashes for directory and mount point. 3. Accept the -f option on umount that's sent to us during shutdown.
-
-2006-07-27 Ryan O'Hara <rohara at redhat.com>
-
- Early version of a script to help users determine if a logical volume might be in use by another node. Useful to avoid doing a mkfs or fsck on a mounted filesystem.
-
-2006-07-25 Robert Peterson <rpeterso at redhat.com>
-
- Switch was specified incorrectly for apc power switch.
-
-2006-07-25 David Teigland <teigland at redhat.com>
-
- 'group_tool dump fence' will dump fenced's debug buffer
-
- keep 1MB circular buffer of debug messages that can be sent to a connected client
-
- From: fabbione at ubuntu.com
- This one was a nasty bug that was causing several issues.
-
- For example:
-
- mount -t gfs /dev/foo /mnt -> ok
- mount -t gfs /dev/foo /mnt/ -> nok failing with:
- can't find /proc/mounts entry for directory /mnt/
-
- (caused by read_proc_mounts in util.c when comparing with /proc/mounts
- that does not reference the trailing /).
-
- Other bugs are also fixed by making mo->dir consistent.
-
- mount -t gfs /dev/foo /mnt -> ok
- umount /mnt/ -> nok:
- /sbin/umount.gfs: lock_dlm_leave: gfs_controld leave error: -1
-
- because the mo->dir is also registered in lock_dlm daemon.
-
- This was causing a severe inconsistence that was blocking
- mounting/umounting
- or other volumes/devices.
-
-2006-07-24 Ryan O'Hara <rohara at redhat.com>
-
- Fixed typo. "ccstool" should be "ccs_tool".
-
-2006-07-24 David Teigland <teigland at redhat.com>
-
- remove duplicate \n from a couple log_debug/log_error
-
- have gfs2/Makefile install/uninstall mount and umount binaries itself rather than going through copytobin and having bin/Makefile install them (plan to remove copytobin from other dirs too)
-
-2006-07-21 Robert Peterson <rpeterso at redhat.com>
-
- Moved cman_tool from /sbin to /usr/sbin
-
-2006-07-21 Lon Hohberger <lhh at redhat.com>
-
- Add man pages for qdisk
-
-2006-07-21 Patrick Caulfield <pcaulfie at redhat.com>
-
- Update to use new openAIS totemip & totempg APIs. Needs the Openais that's probably going to be released later today ;-)
-
-2006-07-21 Abhijith Das <adas at redhat.com>
-
- gfs2 doesn't allow gfs2meta and gfs2 filesystems to run parallely. gfs2_jadd umounts gfs2 and mounts gfs2meta to do its thing. Removed test mode. little-endian to big-endian change on disk-hash.
-
-2006-07-20 Robert Peterson <rpeterso at redhat.com>
-
- Service stop was killing daemons, which hung system at umount time. Also, service status would hang when cluster was down.
-
-2006-07-20 David Teigland <teigland at redhat.com>
-
- if mount.gfs is unmounting/leaving the group because the kernel mount failed, then don't wait for the kernel mount to complete before doing the leave
-
- when a kernel mount fails and we leave the mountgroup, we need to pass an error value with the unmount/leave so gfs_controld will know to not wait for the kernel mount to complete before doing the leave
-
- use cmanincdir when building gnbd
-
- uncomment bullpap and ipmilan add copytobin for rsa & rsb (we should probably add explanation for why certain agents are commented out)
-
-2006-07-19 David Teigland <teigland at redhat.com>
-
- needed _safe version of list_for_each_entry when moving entries
-
-2006-07-19 Lon Hohberger <lhh at redhat.com>
-
- Fix typo in Makefile
-
- Add preliminary live-migration support (e.g. for Xen for FC6
-
-2006-07-19 David Teigland <teigland at redhat.com>
-
- some trailing )'s were left out
-
- set cmanlibdir for group
-
- do distclean
-
- do distclean in group/
-
- Use system includes instead of including from configured kernel_src. (People building the tree on old distros may need to copy some headers into /usr/include/linux/)
-
-2006-07-19 Robert Peterson <rpeterso at redhat.com>
-
- Patch from Fabio Di Nitto: Make sure to clean up *.d files and remove gfs_fsck binary in make clean.
-
- Remove iddev from configure script.
-
-2006-07-19 Patrick Caulfield <pcaulfie at redhat.com>
-
- for RRP use "active" rather than "passive" on Steve's advice.
-
-2006-07-18 Robert Peterson <rpeterso at redhat.com>
-
- Rename req_lock to gfs_req_lock to avoid duplicate symbols.
-
- Add /proc/fs/gfs support back in.
-
- Accomodate changes Steve Whitehouse made to gfs2's dinode structure.
-
-2006-07-17 Ryan O'Hara <rohara at redhat.com>
-
- Added support for SELinux extended attribute types.
-
-2006-07-17 David Teigland <teigland at redhat.com>
-
- fix up debug logging
-
-2006-07-17 Ryan O'Hara <rohara at redhat.com>
-
- Remove extra argument from log_debug call.
-
-2006-07-14 David Teigland <teigland at redhat.com>
-
- node A may get a start cb and send a started message, and node B may receive the started message before it gets its own start cb; node B shouldn't ignore the started message from A.
-
-2006-07-14 Robert Peterson <rpeterso at redhat.com>
-
- Fix divide by zero because superblock constants were not correctly set.
-
- Split read_sb into read_sb and compute_constants like libgfs2. That enables programs that do not read the superblock (like mkfs) to get the constants they need.
-
-2006-07-14 David Teigland <teigland at redhat.com>
-
- add option to dump debug messages from gfs_controld using 'group_tool dump gfs', 'group_tool dump' still dumps debug messages from groupd.
-
- keep a 1MB circular buffer of debug messages, they can be dumped out by running 'group_tool dump gfs'
-
-2006-07-14 Robert Peterson <rpeterso at redhat.com>
-
- This is a bug fix for bz 164499. It allows loopback-mounted files within a gfs file system.
-
-2006-07-14 David Teigland <teigland at redhat.com>
-
- remove duplicate line
-
- add libgfs
-
-2006-07-14 Robert Peterson <rpeterso at redhat.com>
-
- A printf to stdout was getting redirected to the daemon's socket causing the daemon to log strange errors and mount hangs.
-
-2006-07-13 David Teigland <teigland at redhat.com>
-
- - memset to 0 arrays of arg pointers - tighten up the splitting of strings into arg arrays - reduce the size of the arg pointer arrays since we now know the max number of args we're splitting out
-
-2006-07-13 Robert Peterson <rpeterso at redhat.com>
-
- Remove gulm, dlm and nolock from Makefile. gfs1 will now use the dlm and nolock from gfs2. The gulm locking protocol is going away.
-
-2006-07-13 David Teigland <teigland at redhat.com>
-
- debug print of the full uevent string from the kernel
-
- fix dump len so we don't complain
-
- fix up group_tool dump which was broken
-
- no more dlm_device module
-
-2006-07-13 Ryan O'Hara <rohara at redhat.com>
-
- Moved from fence/scripts directory.
-
- Move scsi_reserve init script to fencing agent directory.
-
-2006-07-12 Ryan O'Hara <rohara at redhat.com>
-
- fence_scsi agent should use "self" rather than try to determine node node.
-
-2006-07-12 Stanko Kupcevic <kupcevic at redhat.com>
-
- "clumon moved under Conga project" message
-
-2006-07-12 Lon Hohberger <lhh at redhat.com>
-
- *** empty log message ***
-
-2006-07-12 Ryan O'Hara <rohara at redhat.com>
-
- Added success and failure commands in start/stop.
- scsi_reserve start - success if we can register with a device.
- scsi_reserve stop - success if wa can unregister with a device.
-
- Note that we always try to create a reservation for a device in start,
- but we do not care about success/failure. If it fails, it is probably
- because a reservation already exists.
-
-2006-07-12 Lon Hohberger <lhh at redhat.com>
-
- Fix licensing information in resources
-
- Add missing xenvm.sh resource
-
- Fix #198406 - lack of ipv6 support in clufindhostname.c
-
- Patch for in-tree builds from Fabio M. Di Nitto. <fabbione at ubuntu.com>
-
- Fix missing/non-updated #includes
-
-2006-07-12 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't lose the end of a lock name
-
-2006-07-12 Lon Hohberger <lhh at redhat.com>
-
- - Make rgmanager actually do things. - Finish port of rgmanager to CMAN messaging. - Add feature to wait for nodes to be fenced prior to handling a node-down event. - Add direct DLM lock support. - Fix local communication. - Optimize VF data distribution algorithm to use CMAN/Totem's broadcast mode; this should make rgmanager much more scalable. - Add multiplexing for CMAN communications so threads can have pseudo private channels over the One CMAN socket. - Add service->service depende [...]
-
-2006-07-11 Robert Peterson <rpeterso at redhat.com>
-
- Changes necessary due to removal of iddev parts (replaced by libvolume_id)
-
- Reverse previous decision on locking.c. Removed unwanted sysfs groups. Removed some debug code.
-
-2006-07-11 Ryan O'Hara <rohara at redhat.com>
-
- Updated copywrite and fixed title.
-
-2006-07-11 Robert Peterson <rpeterso at redhat.com>
-
- Re-add locking.c with its redundant gfs_mount_lockproto and gfs_unmount_lockproto routines because calling the gfs2 equivalents (and the externalizing of them) would probably not be acceptable to the upstream community.
-
-2006-07-11 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't copy the agent name if it's NULL. Make the requred size of the agent string clear.
-
-2006-07-11 Robert Peterson <rpeterso at redhat.com>
-
- Changes necessary due to removal of iddev parts (replaced by libvolume_id)
-
- Changes necessary due to removal of iddev parts (replaced by libvolume_id) Also incorporated libgfs for common functions.
-
- Changes necessary due to removal of iddev parts (replaced by libvolume_id). Also incorporated libgfs for common functions.
-
- New ncurses-based gfs_edit synced from RHEL4 and STABLE branches.
-
- Change gfs to work with new locking infrastructure. Also, changes crosswritten from STABLE, and removed undesired debug code.
-
-2006-07-11 Abhijith Das <adas at redhat.com>
-
- Removed reference to lock_gulm from the script. Works fine as is.
-
- Initial commit of gfs2_jadd. Doesn't work fully. Needs to be tested with GFS2 filesystem.
-
-2006-07-11 Ryan O'Hara <rohara at redhat.com>
-
- Initial version of the fence_scsi man page.
-
-2006-07-11 Abhijith Das <adas at redhat.com>
-
- gfs2 init script. Minor changes. Works just fine
-
-2006-07-10 Ryan O'Hara <rohara at redhat.com>
-
- Name of node to be fenced is passed via "nodename=" parameter.
-
-2006-07-10 Chris Feist <cfeist at redhat.com>
-
- Added -lpthread to LDFLAGS to fix bz #198187 (Unresolved symbols w/ ldd -r)
-
-2006-07-10 Ryan O'Hara <rohara at redhat.com>
-
- Added "self" parameter to dispatch_fence_agent. Added "-s" option as way to pass name of current node.
- This is needed for SCSI persistent reservation (fence_scsi).
-
- Added "self" parament to dispatch_fence_agent.
- Needed for SCSI persistent reservation (fence_scsi).
-
- Added "self" parameter as a way to pass our_name to the agent.
- This is needed for SCSI persistent reservation (fence_scsi).
-
-2006-07-10 David Teigland <teigland at redhat.com>
-
- set DESTDIR when installing openais
-
-2006-07-07 David Teigland <teigland at redhat.com>
-
- dispatch_fence_agent() was prototyped and called with an extra arg that doesn't exist in the real function
-
-2006-07-07 Chris Feist <cfeist at redhat.com>
-
- Fixed building for x86_64.
-
- Makefile fixes to assist with rpm building.
-
-2006-07-07 David Teigland <teigland at redhat.com>
-
- complain and ignore a cpg confchg reason we don't understand
-
-2006-07-07 Patrick Caulfield <pcaulfie at redhat.com>
-
- Make sure we ${libexecdir}/lcrso - packagers need it.
-
- Make SBINDIR default to /usr/sbin so we can find aisexec
-
-2006-07-06 Ryan O'Hara <rohara at redhat.com>
-
- Fix stdin parameter parsing to handle 'name=value' correctly.
-
- Added extra output when verbose option is given. Fixed code to close stdin, stdout, stderr after open3 call.
-
- Added parameters for chkconfig.
- Script will be started for levels 3, 4, and 5.
- Start priority is 25.
- Stop priority is 75.
-
-2006-07-03 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't force unwanted flags on people. honour DEBUG=y
-
- Count votes correctly - buy not shadowing variables, sigh. Also fail to start if the nodeid is not set.
-
- gah! forgot to remove the /cman off the end of SBINDIR
-
- Run aisexec from SBINDIR
-
-2006-06-30 David Teigland <teigland at redhat.com>
-
- put back old check that previous commit avoided
-
- steps to download/build/install openais and libvolume_id tarballs
-
- build against installed cman lib and header
-
- build against installed headers and libs for cman and openais
-
- to be consistent, <libcman.h> instead of "libcman.h"
-
- - build against installed openais/cman headers and libs - if a cman node fails that isn't in the groupd cpg, don't wait on a cpg update for it
-
- gfs_controld_connect error values are < 0, not 0
-
-2006-06-30 Patrick Caulfield <pcaulfie at redhat.com>
-
- Build using installed openais
-
-2006-06-30 James Parsons <jparsons at redhat.com>
-
- remove this file in preference for the version with filetype extension, like other agents. The Makefile generates the version for the sbin dir without extension.
-
-2006-06-29 James Parsons <jparsons at redhat.com>
-
- Added new fence_scsi agent support
-
- Added support for new fence_scsi agent
-
- Makefile and cool new scsi agent renamed to match convention.
-
-2006-06-29 Ryan O'Hara <rohara at redhat.com>
-
- Fix perl cmd declaration that caused sg_persist to fail.
-
-2006-06-29 Abhijith Das <adas at redhat.com>
-
- modprobing lock_dlm before starting gfs_controld, removed init.d make targets for ccs and fence
-
-2006-06-29 Ryan O'Hara <rohara at redhat.com>
-
- Initial check-in of SCSI persistent reservation init script.
-
- Initial check-in of SCSI persistent reservation fence agent.
-
-2006-06-29 David Teigland <teigland at redhat.com>
-
- - extra checking and debugging when events get backlogged - prevent joins while we're still leaving and leaves while we're still joining
-
-2006-06-28 Abhijith Das <adas at redhat.com>
-
- Removed ccsd and fenced init scripts. Their functionality is replaced by the cman init script
-
- Single init script to start up cluster: Covers loading of modules, starting ccsd, cman and fencing, and starting daemons. Replaces ccsd, cman and fenced init scripts
-
-2006-06-28 David Teigland <teigland at redhat.com>
-
- fix compiler warnings
-
- fix makefile From: fabbione at ubuntu.com (Fabio M. Di Nitto)
-
- Fix install From: fabbione at ubuntu.com (Fabio M. Di Nitto)
-
-2006-06-28 Jonathan Brassow <jbrassow at redhat.com>
-
- - cmirror is not ready to compile in HEAD
-
-2006-06-28 Robert Peterson <rpeterso at redhat.com>
-
- Include man pages for convert, fsck, etc., in Makefile.
-
- Clean up .d files on Make clean rather than distclean
-
-2006-06-27 Robert Peterson <rpeterso at redhat.com>
-
- Switch to libvolume_id method of determining pre-existing file systems.
-
-2006-06-27 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix build error. Thanks Lon.
-
-2006-06-26 David Teigland <teigland at redhat.com>
-
- posix_test_lock() args updated for 2.6.17
-
-2006-06-26 Jonathan Brassow <jbrassow at redhat.com>
-
- - filling out client side logging implementation (patches sent previously)
- Work remaining:
- 1) client (kernel) side netlink implementation
- 2) server implementation
-
-2006-06-26 Benjamin Marzinski <bmarzins at redhat.com>
-
- fixing dm-multipath support for GNBD
-
- libsysfs is deprecated. Stop using it.
-
-2006-06-23 Lon Hohberger <lhh at redhat.com>
-
- Fix includes for build on ia64
-
- Implements 'label' support for qdisk. Uses /proc/partitions for device info & scans devices for signatures. Useful in environments where a device is present but maybe numbered differently on different nodes depending on the host/SAN configuration.
- Also adds initialization utility which must be run before qdiskd will
- use a given partition.
-
-2006-06-23 David Teigland <teigland at redhat.com>
-
- retry cpg_join and cpg_leave if error is TRY_AGAIN
-
-2006-06-22 David Teigland <teigland at redhat.com>
-
- don't process new join/leave events without quorum
-
- remove debug printf
-
- now that we copy out app member list for viewing, set the member count to that total instead of cpg member list total
-
- improvements to debug messages
-
-2006-06-22 Patrick Caulfield <pcaulfie at redhat.com>
-
- Update to OpenAIS with patch for CPG alignment bug
-
-2006-06-21 David Teigland <teigland at redhat.com>
-
- add standard script
-
- need to include ../make/defines.mk to get {sbindir} definition this added -Wall which I didn't notice was missing before, so this uncovered a bunch of warnings that are now fixed
-
- Don't finalize/terminate a local group leave until we see that all remaining group members have stopped.
-
-2006-06-21 Patrick Caulfield <pcaulfie at redhat.com>
-
- Pull latest openAIS
-
-2006-06-21 Jonathan Brassow <jbrassow at redhat.com>
-
- - This is the beginning of the cluster mirror log rewrite. The purpose is to work with the new CMAN/OpenAIS framework. The server moves to user-space.
- Will post description and RFC to cluster-devel.
-
-2006-06-20 David Teigland <teigland at redhat.com>
-
- openlog("groupd", LOG_PID, LOG_DAEMON) for syslog entries
-
- - sort out which messages should be log_debug/log_group vs log_print/log_error - put log_print/log_error messages in syslog
-
-2006-06-20 Robert Peterson <rpeterso at redhat.com>
-
- Fixed bugs regarding acls and eattrs. Also crosswrote some fixes from gfs1 regarding eattrs.
-
-2006-06-20 David Teigland <teigland at redhat.com>
-
- don't skip fencing a node unless it's both a cman member and has fully started groupd
-
- - keep cman member list updated by using cman callbacks instead of polling cman for the latest list every time we're interested - only bypass fencing of a node if it's both a cman member and in the groupd cpg (has started groupd past the point of checking for residual gfs/dlm state)
-
- Moving the cluster infrastructure to userland introduced a new problem that we didn't need to worry about before. All cluster state now exists in userland processes which can go away and then come back like new, i.e. unaware of the previous state.
- Typically, when the userland cluster infrastructure on a node
- "disappears", another node recognizes this as a node failure and recovers.
- There's no problem there. The problem is when the cluster infrastructure
- disappears on all the cluster nodes and then comes back. The
- infrastructure that disappeared may have abandoned control of gfs/dlm
- instances in the kernel. When the infrastructure comes back, it's like a
- brand new cluster, it knows nothing about the residual, uncontrolled
- instances of gfs/dlm. New nodes would use gfs/dlm in this new cluster
- independently of the unknown gfs/dlm users from before and there'd be
- immediate corruption [1].
-
- Eventually, the infrastructure may be able to reconstruct the global state
- of abandoned instances of gfs/dlm when it comes back and reassert control
- of them, but that's not realistic any time soon. For now, the
- infrastructure needs to recognize nodes with residual gfs/dlm state as
- failed nodes that need recovery (starting with fencing). That recognition
- and recovery now happens as part of the startup initialization, before new
- instances of gfs/dlm are created [2].
-
- [1] This is trivial to demonstrate:
- - start up a cluster on nodes A,B,C
- - mount gfs on nodes A,B
- - run 'cman_tool leave force' on A,B,C
- - start up the cluster again on A,B,C
- - mount gfs on node C
- - nodes A,B are now using gfs independently of node C
-
- [2] The previous example now works like this:
- - start up a cluster on nodes A,B,C
- - mount gfs on nodes A,B
- - run 'cman_tool leave force' on A,B,C
- - start up the cluster again on A,B,C
- i) when groupd starts on A,B, it recognizes the uncontrolled instance
- of gfs, kills cman locally and fences the local node [3]
- ii) when C runs fence_tool join, a new fence domain is started which
- fences nodes with an unknown state, which are A and B
- - mount gfs on node C
-
- [3] This self-fencing does nothing for node C which still needs to fence
- both A and B itself. If A fences itself before C fences it, A will be
- fenced twice. This self-fencing step is optional, but it can be
- convenient when 1) all the nodes restarting the infrastructure find
- residual gfs/dlm instances and 2) reboot fencing is used. The anticipated
- situation is one where everyone has residual state so no one can start up
- to fence anyone else; all are stuck. But, they all fence themselves,
- reboot and resolve everything.
-
- There's a different approach we could take that would be more convenient
- when not all cluster nodes are likely to be mounting gfs or SAN fencing is
- used. In this case, a node that finds residual gfs/dlm instances would
- remain a cman member and not fence itself. This would contribute quorum
- to help another node without residual state start up and fence it.
-
- The solution to this confusing situation is simple:
- - groupd now checks for residual gfs/dlm kernel state when it starts up
- and if it finds any it kills cman and exec's fence_node <myname>.
- - fenced can't bypass fencing of a node unless the node is both a cman
- member and has fully started groupd (a node may need fencing if it's
- joined the cluster but groupd isn't starting).
- - the same consideration in fence_manual as fenced
-
-2006-06-20 Patrick Caulfield <pcaulfie at redhat.com>
-
- Make it clear that admin sockets can't receive callbacks either.
-
-2006-06-19 Robert Peterson <rpeterso at redhat.com>
-
- Fixed problems printing stuffed directories like master and jindex. Also enhanced the jump 'j' command capabilities to jump based on highlighted directory entries. Also made it remember display mode and highlighted entry when jumping from structure to structure.
-
- Converted file systems had no journals.
-
- Changes to lock protocol were not saved. Also removed some vestigial stubs from libgfs2.h.
-
-2006-06-19 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add missing include.
-
-2006-06-17 Wendy Cheng <wcheng at redhat.com>
-
- Sync with base kernel data structure changes: 1. i_sem (in struct inode) is replaced by i_mutex. 2. s_old_blocksize (in struct super_block) no longer exists.
- Thank to Mathieu Avila <mathieu.avila at seanodes.com> pointed this out.
-
-2006-06-16 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add include so we get a prototype for syscall()
-
-2006-06-15 David Teigland <teigland at redhat.com>
-
- remaining withdraw bits now in recover.c
-
- Complete the code to support withdraw, not yet tested. This also switches from using dlm locks for withdraw notifications to simply using messages. The way the daemon now works allows a much simpler approach to withdraw than what we had before where we needed the dlm locks. Setting up a dlm lockspace for the daemon was also an annoyingly heavy-weight step and the dlm kernel state of the daemon made cleaning up from crashes difficult.
-
-2006-06-15 Robert Peterson <rpeterso at redhat.com>
-
- Fixed a bug where changes to the root inode are not written to disk. Also, added logging changes for bz 156009.
-
- Added some error reporting back in when checking for gfs2 file systems.
-
-2006-06-15 Abhijith Das <adas at redhat.com>
-
- Edited Makefile to look more like other makefiles, dependent on objects rather than sources, etc. Removed reference to asm/page.h (for PAGE_SIZE) from util.c. Wasn't compiling on x86_64. Instead made PAGE_SIZE a #define
-
-2006-06-15 David Teigland <teigland at redhat.com>
-
- Significant reworking of how mounts are processed. The previous approach couldn't deal with certain node failures that occured while processing a new mounter. In this new approach, processing a mounter is largely independent of processing node failures. Nodes failing while processing a mounter hasn't actually been tested yet, so there are sure to be details to fix.
-
-2006-06-15 Patrick Caulfield <pcaulfie at redhat.com>
-
- Build against installed headers rather the ./configured kernel source.
-
-2006-06-14 David Teigland <teigland at redhat.com>
-
- for group_tool query, fill in members list from app perspective, not cpg perspective
-
-2006-06-14 Chris Feist <cfeist at redhat.com>
-
- Fix configure script so we don't try to pass ccsincdir & ccslib dir to rgmanager.
-
-2006-06-14 David Teigland <teigland at redhat.com>
-
- change log_error to log_debug for non-error
-
- update some of the build steps
-
-2006-06-14 Robert Peterson <rpeterso at redhat.com>
-
- This addresses bugzilla bug #156009 - gfs fsck needs a good review of logging. I improved logging and added some "warm fuzzy" feel-good messages to let the users know it's not hung.
-
-2006-06-14 David Teigland <teigland at redhat.com>
-
- don't syslog non-errors
-
-2006-06-14 Robert Peterson <rpeterso at redhat.com>
-
- Remove obsolete references to unlinked_tag.
-
-2006-06-13 Lon Hohberger <lhh at redhat.com>
-
- Include missing .c files in src/clulib; remove defunct src/daemons/members.c
-
- Patch from Fabio Massimo Di Nitto: Fix includes
-
-2006-06-13 Robert Peterson <rpeterso at redhat.com>
-
- Improvements to Makefile, renamed gfs2_mkfs man page to mkfs.gfs2.8
-
-2006-06-13 Chris Feist <cfeist at redhat.com>
-
- Not necessary to specify /sbin.
-
- Install files in the correct location.
-
-2006-06-13 Robert Peterson <rpeterso at redhat.com>
-
- Fix typo in Makefile
-
-2006-06-12 Chris Feist <cfeist at redhat.com>
-
- Use ccslibdir instead of libdir to find ccs libraries.
-
- Assign ccslibdir to the appropriate variable in the configure script.
-
-2006-06-12 Robert Peterson <rpeterso at redhat.com>
-
- Add gfs2_fsck to Makefile
-
-2006-06-12 Chris Feist <cfeist at redhat.com>
-
- Remove references to magmalibdir & magmaincdir.
-
-2006-06-12 Robert Peterson <rpeterso at redhat.com>
-
- Change copyright to 2006
-
- Fixed a bug when printing stuffed directories. For example, gfs2_edit -p masterdir was not working properly.
-
- Made all block numbers show in decimal and hex. Minor bug fixes. Moved some functions to libgfs2.
-
- Got rid of dependency on libgfs. Every is now done with libgfs2 functions. Also did some cleanup and bug fixes.
-
- Moved functions from fsck to libgfs2, added functions to make gfs2_convert not use libgfs.
-
- Added gfs2_fsck, added gfs2_convert, renamed gfs2_mkfs to mkfs.gfs2
-
-2006-06-12 Alasdair G. Kergon <agk at redhat.com>
-
- test checkin
-
- test checkin
-
-2006-06-12 David Teigland <teigland at redhat.com>
-
- run configure in group/
-
- remove lock_dlm/ files, moved to group/gfs_controld/
-
- remove daemon/ files, now in group/dlm_controld remove dlm_tool/ files, not used
-
-2006-06-12 Chris Feist <cfeist at redhat.com>
-
- Initscripts should be installed in /etc/rc.d/init.d
-
- Fixed install script to install appropriate binaries.
-
-2006-06-12 Patrick Caulfield <pcaulfie at redhat.com>
-
- Remove dlm32 as all the 32/64 conversions are done in the kernel now. You need the latest GIT kernel for this to work...
-
-2006-06-10 Chris Feist <cfeist at redhat.com>
-
- - We don't use the copytobin target in libgfs2 - Added the copytobin target in convert and mkfs - Disabled copytobin target in quota
-
-2006-06-09 Chris Feist <cfeist at redhat.com>
-
- Modified makefile to use instead of hardcoded directory.
-
-2006-06-09 David Teigland <teigland at redhat.com>
-
- move dlm/daemon/ to group/dlm_controld/ move gfs/lock_dlm/daemon/ to group/gfs_controld/
-
-2006-06-09 Chris Feist <cfeist at redhat.com>
-
- Temporarily disable quota build until functioning w/ gfs2.
-
- Updated include to properly find gfs_ondisk.h.
-
-2006-06-09 Abhijith Das <adas at redhat.com>
-
- Removed usage of IFLAG_INHERITDIRECTIO and IFLAG_INHERITJDATA flags, because they were removed from linux/iflags.h
-
-2006-06-09 David Teigland <teigland at redhat.com>
-
- there is no dlm_tool any more
-
- - get NETLINK_KOBJECT_UEVENT definition from kernel's netlink.h - needed to include "netlink.h" instead of <linux/netlink.h> to get the most recent one
-
- - get kernel types like __be64 and __u64 (used in gfs2_ondisk.h) by including linux/types.h - have makefile -I../../gfs-kernel/src/gfs and source file include "gfs_ondisk.h"
-
-2006-06-08 Robert Peterson <rpeterso at redhat.com>
-
- Misc bug fixes. For example, it was not updating block free counts for fsck.
-
- Missed on initial check-in.
-
-2006-06-08 David Teigland <teigland at redhat.com>
-
- Set up a separate cpg for sending messages (e.g. for processing mount/unmount) instead of sending them through the cpg used to represent the mount group. Since we apply cpg changes to the mount group async, that cpg won't always contain all the nodes we need to process the mount/unmount. A mount from one node in parallel with unmount from another often won't work without this.
- Also fix the makefile to include headers from the kernel_src location.
-
-2006-06-06 Robert Peterson <rpeterso at redhat.com>
-
- Remove obsolete parts now in libgfs2.
-
- First working version that uses libgfs2. May still have problems.
-
- Fix several bugs and add changes necessary to match libgfs2.
-
- Ability to print directory details, minor libgfs2 changes.
-
- Prep for libvolume_id, minor changes due to libgfs2 changes.
-
- Several updates and bug fixes, mainly for gfs2_fsck.
-
-2006-06-06 Patrick Caulfield <pcaulfie at redhat.com>
-
- We need to build libccs -fPIC because it's included by cman which is a shared object.
-
-2006-06-05 Robert Peterson <rpeterso at redhat.com>
-
- Added refs to libgfs2, gfs2_convert, and gfs2_fsck.
-
-2006-06-02 Benjamin Marzinski <bmarzins at redhat.com>
-
- There. that should work better
-
- changed from MODULE_PARM to module_param
-
-2006-06-02 Lon Hohberger <lhh at redhat.com>
-
- Start of ripping out dependency on magma; builds but does not currently work
-
-2006-06-02 Benjamin Marzinski <bmarzins at redhat.com>
-
- more Makefile fixing
-
- updated man pages with UID information
-
-2006-05-31 Chris Feist <cfeist at redhat.com>
-
- Added ccsincdir and ccslibdir to facilitate building.
-
-2006-05-30 Patrick Caulfield <pcaulfie at redhat.com>
-
- Use new OpenAIS
-
-2006-05-26 David Teigland <teigland at redhat.com>
-
- when finishing an unmount for a node, we shouldn't be checking it's recovery status as if it had failed (instead of unmounting)
-
-2006-05-25 David Teigland <teigland at redhat.com>
-
- when unrecovered nodes are set to be recovered again after sequential node failures, we need to exclude nodes that are unmounting and don't need any recovery
-
- - re-enable the code that waits for the kernel mount in the finish() for a mountgroup join. should work better now with the recent lock_dlm kernel change - we were missing a clear_new() call in the case of a first mounter delaying its start_done() for a second mounter - we need to discard group messages on a node that's been added to the cpg group but not yet added (asynchronously) to the app group
-
- check that the specified mount type matches the actual fs type on disk (magic number alone no longer does this since 1&2 have same magic #)
-
- retry cpg_join() when it returns ERR_TRY_AGAIN
-
-2006-05-25 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't call a parameter 'time' as it confuses some compilers.
-
-2006-05-24 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't segv if the node has no "votes" property. bz#192136
-
- Align some message structures better
-
- Do the big-endian conversion so it actually works.
-
- Add missing swab_header().
-
-2006-05-22 Lon Hohberger <lhh at redhat.com>
-
- Fix build on 64-bit arches
-
-2006-05-22 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add support for OpenAIS RRP. altnames in ccs should now work
-
-2006-05-19 Patrick Caulfield <pcaulfie at redhat.com>
-
- Allow loggin facility to be configured.
-
-2006-05-19 Lon Hohberger <lhh at redhat.com>
-
- Add simple scoring/disk-based quorum daemon
-
-2006-05-19 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix some stats as reported by cman_tool status
-
-2006-05-17 David Teigland <teigland at redhat.com>
-
- only print debugging info to stderr if -D was used -- this may have caused problems when not using -D since debug messages would probably go down some other fd. Also log errors to syslog.
-
- decrement the node count before printing debug info so we see the new value
-
- Changes to the way recovery events are handled when we're already in a recovery event. Multiple recovery events are now merged most of the time. Also fixes to the way groups depend on other levels for ordering of recoveries.
-
-2006-05-17 Abhijith Das <adas at redhat.com>
-
- bz 191222 : removed debug printk
-
-2006-05-16 Robert Peterson <rpeterso at redhat.com>
-
- Compile libgfs2 first. Removed obsolete gfs2_debug tool.
-
- Add convert tool and libgfs2.
-
-2006-05-16 Benjamin Marzinski <bmarzins at redhat.com>
-
- Make GNBD work with cman.
-
-2006-05-16 James Parsons <jparsons at redhat.com>
-
- file powernet369.mib was initially added on branch RHEL4.
-
- file fence_apc_snmp.py was initially added on branch RHEL4.
-
- file fence_apc_snmp was initially added on branch RHEL4.
-
- file README_SNMP was initially added on branch RHEL4.
-
- file Makefile was initially added on branch RHEL4.
-
-2006-05-16 Ryan McCabe <rmccabe at redhat.com>
-
- fence_apc_snmp support
-
-2006-05-16 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't busy-wait if a write fails.
-
- Make it background properly.
- Now there's no magma, there's no point in waiting for the cluster manager
- to connect, because ccsd needs to be started before the cman.
-
- Missing semicolon! oh dear.
-
- Don't let port number default to junk.
-
-2006-05-16 Abhijith Das <adas at redhat.com>
-
- bz191222 fix. When releasing a glock with GL_NOCACHE flag set, care was not taken to ensure that only one holder for the glock remained. This was corrupting the glock and preventing further access to the glock. FLOCKS use this GL_NOCACHE flag. See bugzilla for more information. This patch needs to go through a test cycle to ensure that it doesn't affect other code
-
-2006-05-15 David Teigland <teigland at redhat.com>
-
- when sending the results of local journal recoveries, we weren't selecting just the successful recoveries and were potentially writing off the end of the message buffer
-
-2006-05-15 Robert Peterson <rpeterso at redhat.com>
-
- Initial checkin.
-
- Incorporate libgfs2.
-
-2006-05-15 David Teigland <teigland at redhat.com>
-
- print out the buffer for debugging when we can't parse it
-
-2006-05-15 Robert Peterson <rpeterso at redhat.com>
-
- Initial checkin of libgfs2 and related.
-
- Remove automake-related files and redundant includes.
-
- Got rid of automake and added minor fixes.
-
- Initial checkin of libgfs.
-
-2006-05-15 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix key file override.
-
- Get rid of some redundant calls
-
- Be careful about returning junk as a node address.
-
- Tidy some of the inter-file communications.
-
-2006-05-13 David Teigland <teigland at redhat.com>
-
- When a node is joining a group, has been added to the cpg, but is still queued to be added to the app, and then fails, we just purge its join event for the app and shouldn't queue a recovery event for the app since it doesn't exist there yet.
-
- Handle case where none of the current members of the mountgroup can recover journals (they're readonly) and there are journals that need recovery. The next rw mounter is told to recover all journals, and after it's done it needs to unblock access to the fs on the other readonly mounters. (This was mistakenly included in last checkin, it's not been tested yet.)
-
-2006-05-12 David Teigland <teigland at redhat.com>
-
- Comment out code that waits for kernel mount, it's not working in some cases.
-
- - id's where being removed from a recovery event's extended list too early, so multinode recovery processing was getting stuck. - when an extended recovery event aborts another event, the extended nodes in the rev weren't being marked stopped in the first event
-
-2006-05-12 Patrick Caulfield <pcaulfie at redhat.com>
-
- Mention ccs_tool as a way of adding nodeids to a cluster.conf file.
-
-2006-05-11 Chris Feist <cfeist at redhat.com>
-
- Fixed fence so includes the proper directory for cman. Fixed rgmanager's clulib so it includes the proper ccs directory.
-
-2006-05-11 David Teigland <teigland at redhat.com>
-
- set stopped flag for rev->nodeid, not ev->nodeid
-
- When more than one node failed at once, creating an extended recovery event, we weren't updating both recovery sets (for both nodes) when we finished processing the event.
-
-2006-05-11 Robert Peterson <rpeterso at redhat.com>
-
- New and improved gfs2_edit tool based on ncurses. This replaces both gfs2_edit and gfs2_debug.
-
-2006-05-11 David Teigland <teigland at redhat.com>
-
- Fix some possible problems with overlapping recoveries, and cases where we could confuse a pending event for the recovery event in the checks that control whether recovery processing should wait.
-
-2006-05-11 Patrick Caulfield <pcaulfie at redhat.com>
-
- Remove redundant kernel examples. Make userland examples compile cleanly.
-
- Return all multicast addresses. Also return a list of (cman) ports being listened on. Display both in cman_tool.
-
- Make the examples compile and do something.
-
-2006-05-11 Ryan McCabe <rmccabe at redhat.com>
-
- Ignore outlet groups
-
-2006-05-10 Patrick Caulfield <pcaulfie at redhat.com>
-
- A rag bag of stuff:
- - Allow override keyfile on cmdline
- - more selective help (eg cman_tool join -h)
- - Show if fenced in cman_tool nodes
- - Show node addresses in can_tool nodes
- - If no multicast set then encode cluster ID in a multicast address
- to avoid clashes of clusters
- - add cman_get_node_addrs() to libcman (not fully implemented yet)
- - Some preparation for rrp in OpenAIS.
-
- Add facility to assign a multicast address to the cluster. This is (perhaps confusingly) part of the addnodeids subcommand which is really the V1->V2 upgrade command now.
-
- Don't go into an infinite busy loop if cman shuts down.
-
-2006-05-09 David Teigland <teigland at redhat.com>
-
- If there are no devices defined within a node's method, that method should be considered failed. Fix from navid at redhat.com Fixes bz #190661
-
-2006-05-09 Abhijith Das <adas at redhat.com>
-
- fix for bz 190392 + pjc's return 1 if 'status' fails. bz#187279
-
-2006-05-05 Abhijith Das <adas at redhat.com>
-
- bz 190200 : man page changes for gfs2_tool changes
-
- bz 190200: cleaned up gfs2_tool to compile. Removed some features (gfs2 doesn't support them anymore) and commented some out for later implementation. Needs to be reviewed sometime in the future.
-
-2006-05-03 David Teigland <teigland at redhat.com>
-
- When mounting a fs, we first join the mountgroup, then tell mount.gfs to procede with the kernel mount. Once we're in the mountgroup, we can get a stop callback at any time, which requires us to block the fs by setting a sysfs file. If the kernel mount is slow, we can get a stop callback and try to set the sysfs file before the kernel mount has actually created the sysfs files for the fs. A new (untested) function delays any further processing until the sysfs files exist.
-
-2006-05-02 David Teigland <teigland at redhat.com>
-
- Untested fix for the case where nodeA fails, nodeB fails while recovering journalA, nodeC needs to recover both journalA and journalB. nodeC wasn't retrying to recover journalA.
-
- make some names more descriptive of what they do
-
- build all order: cman/lib, ccs, cman
-
- An unused recovery set needs to be cleared in either cpg or cman callback, whichever comes second. Last checkin also wasn't adding recovery_set to list when created by cman callback.
-
- fix logic that reduces debug output
-
- This should fix the trouble caused by nodes rejoining the cluster before they've been recovered (common with fence_manual). There may still be some problem if the unrecovered/rejoined node fails again before the first recovery for it is done.
-
-2006-05-02 Patrick Caulfield <pcaulfie at redhat.com>
-
- Disable VS filter
-
-2006-04-29 David Teigland <teigland at redhat.com>
-
- it's not right to use "init" to determine when to save an options message vs processing it; we have to check if we've received a start callback yet
-
- looks like we need to build: cluster/cman/lib cluster/ccs cluster/cman
-
-2006-04-28 David Teigland <teigland at redhat.com>
-
- %ll print format for handles
-
- in withdraw the group name wasn't being parsed from the table name
-
- when multiple nodes failed together (in one event) we were only marking the first as stopped and not the others
-
-2006-04-28 Patrick Caulfield <pcaulfie at redhat.com>
-
- This needs libcman now too
-
- Use new OpenAIS with important CPG fix. cpg now tells you /all/ the nodes that left the cluster rather than just the first one.
-
-2006-04-27 Robert Peterson <rpeterso at redhat.com>
-
- Initial checkin of libgfs2.
-
-2006-04-27 David Teigland <teigland at redhat.com>
-
- We can get more than one node reporting success in recovering the journal for a failed node. The first has really recovered it, the rest have found the fs clean and report success. Change assertion to recognize that.
-
- If a bug in a client results in them doing a startdone at the wrong time, catch and report it.
-
- When we get the extraneous recovery_done for our own journal when we mount, we need just ignore it. Previous changes to recovery inadvertently added recovery processing to this case.
-
-2006-04-27 Patrick Caulfield <pcaulfie at redhat.com>
-
- Use latest openAIS which, I think, will fix Dave's trouble
-
-2006-04-27 David Teigland <teigland at redhat.com>
-
- When a recovery event arises while processing another recovery event, the first event continues to be processed through the stopping state before it's supplanted. We weren't calling process_current_event() on it, though, so it wasn't going anywhere.
-
-2006-04-26 David Teigland <teigland at redhat.com>
-
- recovery result values for success/gaveup reversed
-
- munge debug messages
-
- Major changes in handling recovery for failed nodes. Previously, we assumed that if there was a node mounted rw, the journals of any failed nodes would be recovered. The way mounts are done today, the last rw mounter could be unmounting during a recovery which means it may not do recovery. To fix this, nodes now inform each other when they've successfully recovered a journal.
-
-2006-04-25 Patrick Caulfield <pcaulfie at redhat.com>
-
- Inform cman when we have fenced a node.
-
- Add API to keep track of when and how a node was last fenced.
-
-2006-04-25 James Parsons <jparsons at redhat.com>
-
- Fixed copy - paste error in usage
-
-2006-04-24 Patrick Caulfield <pcaulfie at redhat.com>
-
- Admin sockets can't get notifications either.
-
- Fix (I hope) hierarchy descending in CCS.
-
-2006-04-21 David Teigland <teigland at redhat.com>
-
- debug statements
-
- improve some debug messages
-
-2006-04-21 Ryan O'Hara <rohara at redhat.com>
-
- Fixed compiler warnings.
-
-2006-04-21 David Teigland <teigland at redhat.com>
-
- now need to build cman before ccs
-
-2006-04-21 Patrick Caulfield <pcaulfie at redhat.com>
-
- Change the default port. If people try to run old and new cman on the same port on the same network, things could get /very/ messy.
-
- Use new AIS logging functions.
-
-2006-04-20 Robert Peterson <rpeterso at redhat.com>
-
- Fix for bugzilla bz 179069: gfs_fsck unable to fix file system. This is an extensive fix to repair damaged and corrupt resource groups and resource group index entries that previously caused gfs_fsck to abort.
-
-2006-04-20 Ryan O'Hara <rohara at redhat.com>
-
- Removed magma dependencies.
-
-2006-04-20 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't call lcr_component_register twice as it /really/ annoys aisexec. Also cope with being partially invoked (ie added to openais.conf but not called with OPENAIS_DEFAULT_CONFIG_IFACE set.
-
-2006-04-19 David Teigland <teigland at redhat.com>
-
- Look for gfs_ondisk.h in ../../gfs-kernel/src/gfs/ instead of in the kernel src tree. gfs2_ondisk.h will be in the kernel tree so we can continue to include <linux/gfs2_ondisk.h>
-
-2006-04-19 Ryan McCabe <rmccabe at redhat.com>
-
- renamed to rsb
-
- rsb agent, this time named rsb along with a man page and makefile mods
-
-2006-04-19 David Teigland <teigland at redhat.com>
-
- Fix hang if unmount overlaps recovery slightly differently, i.e. if unmount occurs between telling gfs to do recovery on a journal and getting a response. (Last fix was unmount before just before telling gfs to recover a journal.)
-
- This should help fix a possible hang caused by a node failing at just the right time during our unmount.
-
-2006-04-18 David Teigland <teigland at redhat.com>
-
- Remove the restrictions on when readonly mounts are allowed. As long as the fs doesn't need recovery, any mount mode (rw/ro/spectator) is allowed.
-
- byte-swap id's in inter-node messages
-
-2006-04-18 Ryan McCabe <rmccabe at redhat.com>
-
- logout correctly on status check
-
-2006-04-18 Patrick Caulfield <pcaulfie at redhat.com>
-
- Use revised ais loading system (that now works correctly) on FC5
-
-2006-04-17 David Teigland <teigland at redhat.com>
-
- If the last rw mounter umounts leaving only ro nodes, the remaining nodes don't need to leave the fs blocked like they do if the last rw mounter fails (and needs journal recovery). This also means that an rw mounter that mounts when there are only ro mounters doesn't need to do first-mounter recovery except when there are actually journals that need to be recovered.
-
-2006-04-17 Ryan McCabe <rmccabe at redhat.com>
-
- fence agent for fujitsu-siemens primergy rsb device
-
-2006-04-17 David Teigland <teigland at redhat.com>
-
- Add some more tips, and an example cluster.conf
-
-2006-04-14 David Teigland <teigland at redhat.com>
-
- A start_done() was missing in the case where the last rw mounter leaves and the remaining ro/spect nodes are restarting.
-
-2006-04-13 David Teigland <teigland at redhat.com>
-
- valid jid is >=0 not >0
-
-2006-04-13 Stanko Kupcevic <kupcevic at redhat.com>
-
- FC5 support, start cs-deploy-tool with --fc5 argument
-
-2006-04-13 David Teigland <teigland at redhat.com>
-
- Add remount support which involves updating our mount mode (ro/rw) on all nodes. Fix 16/32-bit mixup in metaheader that was recently fixed in gfs2.
-
- This is a significant rewrite and expansion of the code that manages gfs mounts. For the first time we are considering the mount mode (rw/ro/spectator) in the mount process and how it relates to recovery. In the past, we've not dealt with the issues that come up when ro/spectator nodes cannot recover the fs. This has only been tested up to the point of the previous functionality, there will still be bugs in the new areas.
-
-2006-04-13 Chris Feist <cfeist at redhat.com>
-
- Removed most references to magma from gnbd.
-
- Removed gulm from Makefile.
-
- Removed dlm-kernel & gulm from configure script.
-
-2006-04-13 Patrick Caulfield <pcaulfie at redhat.com>
-
- 'addnodeids' command adds node IDs to nodes that don't have them.
-
- Allow users to specify log level on command line
-
- Add recognition of ALTNAME tags in CCS to specify multiple ethernet interfaces to use for communications. Note: The lower ais layers don't fully support this yet...
-
-2006-04-12 Chris Feist <cfeist at redhat.com>
-
- Removed gulm directory as it is no longer used.
-
- Removed gulm from HEAD.
-
- Removed directories not needed for RHEL5. Updated Makefile and configure script to reflect directory removals.
-
-2006-04-12 Patrick Caulfield <pcaulfie at redhat.com>
-
- s/Blocked/blocked/ when displaying quorum.
-
-2006-04-11 David Teigland <teigland at redhat.com>
-
- mount configfs at /sys/kernel/config, not /config
-
- mount point for configfs is /sys/kernel/config, not /config
-
-2006-04-11 Patrick Caulfield <pcaulfie at redhat.com>
-
- Explain cna_address
-
-2006-04-10 Abhijith Das <adas at redhat.com>
-
- fixed. Obeys LSB standards for return values
-
-2006-04-10 Patrick Caulfield <pcaulfie at redhat.com>
-
- Print a space between IP addresses
-
-2006-04-07 Ryan McCabe <rmccabe at redhat.com>
-
- support switches with greater than 9 outlets, and handle lists that run longer than one screen.
-
-2006-04-07 Patrick Caulfield <pcaulfie at redhat.com>
-
- Do recursive queries on CCS and store in the objdb. (not as easy as it might sound!)
-
-2006-04-06 Patrick Caulfield <pcaulfie at redhat.com>
-
- Remove a (now) spurious include
-
- Update to latest AIS. we not don't need to patch the AIS sources as it can be all configured dynamically.
-
-2006-04-05 Stanko Kupcevic <kupcevic at redhat.com>
-
- GUI touch up
-
-2006-03-30 Steven Whitehouse <swhiteho at redhat.com>
-
- Fix a bug where the wrong size endian conversion was used to initialize certain fields.
-
-2006-03-28 Patrick Caulfield <pcaulfie at redhat.com>
-
- Update to latest openAIS code.
-
-2006-03-28 Benjamin Marzinski <bmarzins at redhat.com>
-
- If it took too long for an uncached gnbd recvd process to stop after the server was fenced, gnbd_monitor would mistakenly think that the old dying process was a new starting process. Because of this, the client would not auto-restart the gnbd device when the server started back up. This is now fixed. Now, gnbd_monitor will not move a device from the reset state to the restartable state unless the old recvd process has stopped.
-
-2006-03-27 Stanko Kupcevic <kupcevic at redhat.com>
-
- Improved rpm selection and installation phase
-
-2006-03-24 Robert Peterson <rpeterso at redhat.com>
-
- Fix for bz 186125: gfs_fsck on GFS 6.1TB filesystem gives error and leaves volume in an unmountable state.
-
-2006-03-24 Abhijith Das <adas at redhat.com>
-
- cman init script fix for bz 159783. dlm module is modprobed immediately after cman module. Previously, dlm module was loaded after cman_tool join.
-
-2006-03-24 David Teigland <teigland at redhat.com>
-
- If the user specifies hostdata options on the command line, they need to be combined with the standard hostdata options from gfs_controld.
-
-2006-03-23 David Teigland <teigland at redhat.com>
-
- When we exit because the cluster has shutdown, do a force release of the abandoned libdlm lockspace to clear it up. This requires a dlm-kernel change to use force=3 for libdlm's FORCEFREE.
-
- When starting up, also clear any old configfs dirs out of /config/dlm/cluster/spaces/. Some may be left over for a defunct lockspace if the cluster shut down before the ls was left.
-
- Exit if we get POLLHUP from cman.
-
- Exit if we get POLLHUP on cman fd.
-
-2006-03-23 Patrick Caulfield <pcaulfie at redhat.com>
-
- Loads more documentation for each call.
-
- Return EBUSY if we don't know whether a remote node "is_listening" or not.
-
- Make things a little clearer.
-
-2006-03-21 Jonathan Brassow <jbrassow at redhat.com>
-
- - ccs_tool can seg fault on upgrade bug 186121
- apcFence {
- port = 6.2
- switch = 1
- option = "off"
- }
-
- When ccs_tool comes across the integers, it segfaults because it expects
- them to be strings. This checkin fixes that.
-
-2006-03-21 David Teigland <teigland at redhat.com>
-
- always reply yes to a cman shutdown, letting the daemons themselves determine when we can leave
-
- don't let the gfs_controld lockspace prevent a cman leave
-
-2006-03-21 Patrick Caulfield <pcaulfie at redhat.com>
-
- More documentation on API calls.
-
-2006-03-20 David Teigland <teigland at redhat.com>
-
- Daemons now exit when cman says the cluster is down.
-
-2006-03-20 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix typo of the year: "quorumdev_poo"
- Don't get config variables from <cman config name="value"/>, just use
- <cman name="value"/>.
- Having "config" as a key in a config file is just daft,
- also confusing and a change from the RHEL4 syntax (not that this version has
- the same config variables, but there's no point in making it gratuitously
- different).
-
- "make install" now includes AIS headers & libraries.
-
- Use the cluster name as the AIS key if no keyfile is specified. This has a couple of advantages: - It allows isolation of clusters by name (as we did before, but /really/ by name this time, rather than a hash of the name). - It avoids the problem of aisexec crashing it it was not running with a key and it encounters a packet that was.
-
- Tidy help message, fix cluster name override, tidy "status" code.
-
- clvmd no longer needs patching for GFS2
-
-2006-03-18 David Teigland <teigland at redhat.com>
-
- Reply to cman's TRY_SHUTDOWN callback.
-
-2006-03-17 Benjamin Marzinski <bmarzins at redhat.com>
-
- Fixing the get_uid code to make it easier to integrate with multipath
-
-2006-03-17 David Teigland <teigland at redhat.com>
-
- Respond to cman's TRY_SHUTDOWN callback.
-
- add \n to error message
-
-2006-03-17 Patrick Caulfield <pcaulfie at redhat.com>
-
- libcman doesn't ncessarily return a padded sockaddr_storage. But it /does/ return the length.
-
- We must register for events.
-
- OK, OK, I give in.
-
- Fix includes
-
- Try and keep ABI stable between versions. sizeof(cman_node_t) should match that in RHEL4
-
- Tidy up. and remove some unused structs & constants
-
-2006-03-17 Benjamin Marzinski <bmarzins at redhat.com>
-
- fixed gnbd so that it compiles with the upstream kernel.
-
-2006-03-17 David Teigland <teigland at redhat.com>
-
- - If, when mounting, we receive the nodeid/jid message before processing our first start, save the message to process after. - Release withdraw locks for remaining nodes when we get the terminate callback for our leave instead of immediately when we initiate the leave. Otherwise it can conflict with the releasing we do as we process other nodes' unmounts that might be processed before our own.
-
-2006-03-15 Patrick Caulfield <pcaulfie at redhat.com>
-
- libcman changes for last one. Need to fix my CVS repository.
-
- two-phase cman shutdown.
- calling cman_shutdown() will send a REASON_TRY_SHUTDOWN event to all
- clients registered for notifications. They should respond by calling
- cman_replyto_shutdown() to indicate whether they will allow
- cman to closedown or not. if cman gets 1 "no" (0) or the
- request times out (default 5 seconds) then shutdown will be
- cancelled and cman_shutdown() will return -1 with errno == EBUSY.
-
-2006-03-15 Benjamin Marzinski <bmarzins at redhat.com>
-
- This is the gnbd code that is required for getting multipathing to work on top of GNBD.
-
-2006-03-13 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't send extra state change message.
-
-2006-03-10 David Teigland <teigland at redhat.com>
-
- sort listed groups by level sort members listed for each group by nodeid
-
- When nodes are removed from the cluster, remove their dir in configfs. DLM changed to close lowcomms when this happens (it was wrongly closing lowcomms connection when node was removed from lockspace.)
-
- Add debug output showing the changes we get from cman.
-
-2006-03-09 David Teigland <teigland at redhat.com>
-
- lock_dlmd now called gfs_controld
-
- changing lock_dlmd to gfs_controld in various places
-
- Rename the daemon binary from "lock_dlmd" to "gfs_controld". gfs_controld interacts with the cluster infrastructure on behalf of gfs file systems and controls/drives recovery of gfs in the kernel. The old name was misleading, it looked related to the dlm instead of gfs. The old name came from the fact that gfs_controld goes through the lock_dlm module when controling gfs.
-
- Enable withdraw functions by default since libdlm locking is now working fine.
-
-2006-03-08 David Teigland <teigland at redhat.com>
-
- - don't process new non-recovery events while recoveries are still pending (recovery_set's exist) - track progress of recovery sets and free them when they are complete - before the start stage in recovery, make sure that we've received a cman callback for all the failed nodes so we're certain to have the correct quorum status
-
-2006-03-08 Benjamin Marzinski <bmarzins at redhat.com>
-
- Reorganize this directory to match the rest of the cluster tree.
-
-2006-03-08 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't return an error if we had to create the control device! Return something slightly better than EEXIST if we can't create it.
-
- Odd things could happen if the lock space already existed but the device didn't. No longer.
-
-2006-03-08 Benjamin Marzinski <bmarzins at redhat.com>
-
- initial commit of csnap kernel code with a useful build structure. The code itself is exactly as Daniel left it. patches 00001 and 00002 are required to build the module.
-
-2006-03-07 Patrick Caulfield <pcaulfie at redhat.com>
-
- Use latest AIS with CPG integrated into it. Fix "make uninstall" & "make clean"
-
-2006-03-06 David Teigland <teigland at redhat.com>
-
- Purge messages that get queued after we're added to the cpg group but before to our own join is processed. Otherwise, these messages will just hang around forever.
-
-2006-03-03 David Teigland <teigland at redhat.com>
-
- Because cpg leaves are processed asynchronously, we can't use the cpg being changed to send messages; the actual cpg membership may not reflect the nodes we need to send/recv messages with. Stopped and started messages sent during async confchg processing now go through a separate cpg that the groupd daemon joins itself and connects it to all other groupd daemons.
- Overlapping leave events now work (like you get if multiple nodes
- run fence_tool leave at about the same time), or leaves that
- occur while the group is processing a join.
-
-2006-03-03 Patrick Caulfield <pcaulfie at redhat.com>
-
- Patch up so they compile. (mainly taking out query calls)
-
-2006-03-02 David Teigland <teigland at redhat.com>
-
- - add version numbers to messages - byte swap messages - adjust event id in recovery events that include multiple failed nodes
-
- - Add extended event information that group_tool -v will print - All nodes now generate event id's for each confchg based on the nodeid and event type. Every message is tagged with the event id it relates to so groupd can process only messages related to the current event. Needed when confchg's back up.
-
- api changed to unsigned id
-
-2006-03-02 Steven Whitehouse <swhiteho at redhat.com>
-
- Change the .gfs2_admin dir such that its no longer linked from the root directory, but becomes a separate root in its own right. If you want to use this version of GFS2, then you need the latest kernel sources from kernel.org. Note that the change made to the metadata is such that older filesystems will continue to mount ok, so updating mkfs is optional.
-
-2006-03-02 David Teigland <teigland at redhat.com>
-
- Fix how we dispatch cpg callbacks; dispatch one per poll() event. cpg_dispatch(ALL) breaks things if there's more than one confchg since we need to process each confchg before the next, and a loop around cpg_dispatch(ONE) doesn't work because it will block when there's nothing more to dispatch.
-
-2006-03-02 Patrick Caulfield <pcaulfie at redhat.com>
-
- Remove some assertions that could fail in normal circumstances.
-
-2006-03-01 David Teigland <teigland at redhat.com>
-
- check that the mount point exists and is a directory
-
-2006-03-01 Patrick Caulfield <pcaulfie at redhat.com>
-
- Make sure p->ls is NULL when we start up. OR we could crash at shutdown. (lon: you might want to check this in other versions)
-
- Small reversion. The sequence number was pointless.
-
- change SaNameT to struct cpg_name. add a sequence number to the confchg callback. don't crash when program exits after a cpg_leave.
-
-2006-02-28 David Teigland <teigland at redhat.com>
-
- - command string needs to be "setid", "set_id" wasn't recognized - improve some recovery debug messages
-
- - Basic recovery works. - Need to retry sending cpg messages when RETRY status is returned. - Finish bits for doing recovery in the middle of join/leave/recovery, not tested yet.
-
-2006-02-27 David Teigland <teigland at redhat.com>
-
- More descriptive debug messages. Check errors in various places where they were being ignored.
-
- Add -w option to disable the withdraw feature. Force it to be set since the dlm locking it uses isn't working.
-
- set the width of the name field dynamically so state info won't go past 80 columns as often
-
- Add event state to the set of group info we provide, and have group_tool print it so we can now tell what state the group is in, e.g. adding/removing/recovering nodes.
-
-2006-02-27 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't clear too much !
-
-2006-02-27 David Teigland <teigland at redhat.com>
-
- missed a line which broke the compile
-
- check for errors returned from group_dispatch()
-
- return an error from group_dispatch() if the read doesn't return the correct amount of data
-
- when a cpg connection is closed, also clear out the poll client entry for it
-
- Uncomment withdraw stuff that uses libdlm.
-
- don't need to zero out end of addresses any more
-
-2006-02-27 Patrick Caulfield <pcaulfie at redhat.com>
-
- Make errno handling a little more consistent
-
- As a courtesy, zero the whole node address field.
-
- Return correct status sign for fundamental errors.
-
- Return the correct address length for a node. NOTE: This changes the protocol version number between libcman and cman, so you MUST reabuild libcman and anything statically linked to it.
-
-2006-02-24 David Teigland <teigland at redhat.com>
-
- Only send jid's to new mounters, not everyone.
-
- - When we leave a lockspace, remove the configfs entries for it. - When the daemon starts, remove old configfs entries under comms/
-
- add debugging to determine if the mount syscall is stuck
-
- note to help clean up in case umount(8) doesn't call umount.gfs2
-
- - also build libdlm - mkfs type required: -t gfs2 (and -t <table> for mkfs.gfs2) - umount type required: -t gfs2, or umount.gfs2 won't be called - util-linux 2.13-pre6 version of umount(8) is required, older versions won't call umount.gfs2 helper
-
- munge header for group listing
-
- use "gfs" instead of "lock_dlmd" as the group type printed by group_tool
-
- don't need to include dlm kernel headers
-
-2006-02-24 Patrick Caulfield <pcaulfie at redhat.com>
-
- Now compiles against upstream (-mm kernel) DLM.
-
- Update patch so it works with new build system
-
- Don't need to override ${sbindir} anymore
-
- Fix some errors in usage. In particular, CLVMD /can/ be used with the new software - it just needs to be patched before building.
-
- Oops, slight bug in that Makefile there.
-
- This is a bit neater. The download is now always a clean OpenAIS tarball, and we patch it after download.
-
- Install and run cman from libexec
-
- Return an error if range locks are attempted.
-
-2006-02-24 Steven Whitehouse <swhiteho at redhat.com>
-
- Prevent "uninitialized block" message printing out since several blocks don't have the metadata header now.
-
-2006-02-24 David Teigland <teigland at redhat.com>
-
- Fixing leaves.
-
- update for new components
-
-2006-02-23 David Teigland <teigland at redhat.com>
-
- Fix the check for us being in the fence domain, libgroup isn't setting the "member" field at the moment, so just look through the member list.
-
- Fix leave processing, leaving node can't wait for stopped messages from remaining nodes. Make global id consistently unsigned.
-
- match debug messages with the same ones in other daemons
-
- Comment-out withdraw stuff which depends on libdlm which doesn't match upstream dlm since we removed ranges.
-
- Remove some old state stuff that doesn't exist any more
-
-2006-02-22 David Teigland <teigland at redhat.com>
-
- Send messages (used for distributing journal id's and plocks) through libgroup which passes them through to libcpg/openais. libcman is now only used to check our nodeid and the cluster name.
-
- clean out a few unused bits
-
- Munging to get this compiling again; need to define new annotated types used in gfs2_ondisk.h, and need our own gfs2_xyz_in() functions since gfs2 now puts these in its own ondisk.c file.
-
-2006-02-22 Steven Whitehouse <swhiteho at redhat.com>
-
- Added a simple set of compile/install instructions.
-
-2006-02-22 Patrick Caulfield <pcaulfie at redhat.com>
-
- as per lon: add cman_get/set_private routines. Remove some redundant admin routines
-
- ln -sf doesn't do what I though it did. so rm the symlink before creating the new one.
-
- Use latest openais - with improved CPG support.
-
-2006-02-21 David Teigland <teigland at redhat.com>
-
- remove unused file
-
-2006-02-20 David Teigland <teigland at redhat.com>
-
- code for passing through messages, setting global id's, and some changes to how recovery events will mix with other events
-
- bits for sending messages to the group
-
-2006-02-20 Patrick Caulfield <pcaulfie at redhat.com>
-
- Get rid of some redundant stuff
-
- Don't do endian conversion on nodeids, ais does that for us now.
-
-2006-02-20 Wendy Cheng <wcheng at redhat.com>
-
- Bugzilla 182057 - patch 3-3: Add dump_stack() into gmalloc so we could know the culprit whenever out of memory loop occurs.
-
- Bugzilla 182057 - patch 3-2: GFS was trying to split a full-grown directory (0xffff entries) hash leaf into two and subseqently hang. The buffer requirement 0xffff*sizeof(uint64_t)/2 = 262144 (256K) was too big for kmalloc to handle. Change into vmalloc if kmalloc fails.
-
- Bugzilla 182057 - patch 3-1: Fixes directory delete out of memory error. Found in customer environment where gfs_inoded is deleting a max size of hash unit (0xffff entries). It hangs in leaf_free() during gmalloc while kmallocing 0xffff*sizeof(uint64_t) (=512K) of memroy. It did a kmalloc, zeroed out the buffer, then copied the zeroed contents into bh buffer and subsequently sent the bh into gfs_writei to write out to disk. This patch removes the unnecessary kmalloc plus the memory copy [...]
-
-2006-02-17 David Teigland <teigland at redhat.com>
-
- more progress, can now process a join
-
- misc fixes
-
-2006-02-16 David Teigland <teigland at redhat.com>
-
- rework things so we should be closer to passing message delivery through this lib
-
- handful of fixes
-
-2006-02-16 Abhijith Das <adas at redhat.com>
-
- fix for bz178812. ccsd init script and daemon print errors now
-
-2006-02-16 David Teigland <teigland at redhat.com>
-
- misc fixes getting it to work
-
-2006-02-16 Patrick Caulfield <pcaulfie at redhat.com>
-
- Detach the daemon rather better
-
-2006-02-16 David Teigland <teigland at redhat.com>
-
- include headers from ../../cman/daemon/openais/trunk/include
-
-2006-02-16 Patrick Caulfield <pcaulfie at redhat.com>
-
- Check if ccsd is running before attempting to start the daemon. Otherwise the user just waits around for nothing to happen.
-
- Allow stderr log messages from ais if "cman_tool join -d" specified.
- WARNING: Don't use this on a serial console with full debug messages
- enabled or it will repeatedly timeout !
-
- Give aisexec longer to get started. Now that all the CCS accesses are in the daemon it can take some time to get going.
-
- Run cman as an AIS component. This allows other AIS services to be used in conjunction with it - using their normal API.
- This checkin includes a few small hacks to openais to make it run without
- a configuration file - cman will supply all the config information to it
- from CCS.
-
- It also includes a new AIS service: cpg. This is a closed process group service
- I'll be submitting upstream soon but is currently used by groupd.
-
- As there is no AIS config file read by the daemon the services used are
- hard coded in openais/trunk/exec/mainconfig.c as:
- evs, clm, cpg, ckpt, evt, lck, msg, cman
-
-2006-02-15 David Teigland <teigland at redhat.com>
-
- Put this code back into the correct state. (This is not supposed to be the same as the version on RHEL4 or STABLE branches. This is new.)
-
- add nodeid to message deliver callback
-
- Remove group_join/leave arg. Need to find a new method for detecting if new mounter is spectator.
-
- Remove group_join/leave arg.
-
- Removed group_join/leave arg.
-
- Remove the "info" params to join/leave and other related functions. Add the API for sending/receiving.
-
- New groupd that uses the cpg (closed process group) service from openais. It still uses cman, but only to get the local nodeid and quorum values.
-
-2006-02-15 Wendy Cheng <wcheng at redhat.com>
-
- Joined work of bugzilla 164331 (Abhijith Das) and 178469 (specsfs):
- While granting exclusive lock, gfs_glock_cb() expects all other threads
- have relinguished their writes and journal has been flushed and shutdown.
- Otherwise it aborts the call and forces a filesystem consistency error.
- The current umount code (gfs_put_super) doesn't follow this logic by
- doing flushes without log shutdown before the exclusive lock is requested.
- The patch works around this issue by relocating the flushes into
- gfs_make_fs_ro() call itself after the gfs_glock_nq_init() call.
-
- Properly handle error return code from verify_jhead().
-
-2006-02-15 Robert Peterson <rpeterso at redhat.com>
-
- Fix for Bugzilla Bug 178453 – Slow memory leak in /proc/cluster/dlm_dir and /proc/cluster/dlm_locks
-
-2006-02-15 James Parsons <jparsons at redhat.com>
-
- Addresses interface change in drac_mc firmware version 1.2
-
-2006-02-14 Steven Whitehouse <swhiteho at redhat.com>
-
- This reverts the dirent ondisk structure to be the same on disk as gfs1. mkfs is now uptodate with the git tree head.
-
-2006-02-10 James Parsons <jparsons at redhat.com>
-
- Support for drac 4/I
-
-2006-02-09 Wendy Cheng <wcheng at redhat.com>
-
- This patch is part of fix for bugzilla 178469 where the 6th word of the nfsd file handle doesn't get correctly byte-swapped in gfs_decode_fh(). It is normally not a problem if the dentry of the file still hanging around in server's cache. However, under heavy IO, the dentry could get re-cycled and the parent info would be used to re-do lookup. We get stale file handle error as the result.
-
-2006-02-09 James Parsons <jparsons at redhat.com>
-
- Fix for bz168698
-
-2006-02-08 James Parsons <jparsons at redhat.com>
-
- man page for fence_rsa
-
-2006-02-08 Steven Whitehouse <swhiteho at redhat.com>
-
- This takes mkfs out of the main build system. It should make it much easier to build it since its just a question of editing the Makefile to point at the kernel source and then, make, make install.
- Also the binary will be called mkfs.gfs2 and make install will stick
- it in /sbin so that you can call it through the mkfs generic front
- end like all the other filesystems do.
-
- So hopefully this will be easier to build and easier to use. It also
- incorporates the changes required to make filesystems for the new
- journaled file format, so be aware that only the very latest git
- tree of gfs2 will work with it.
-
-2006-02-08 James Parsons <jparsons at redhat.com>
-
- fixed typos
-
-2006-02-06 James Parsons <jparsons at redhat.com>
-
- rsa support
-
-2006-02-03 James Parsons <jparsons at redhat.com>
-
- added explanation of new auth type switch
-
-2006-02-02 Lon Hohberger <lhh at redhat.com>
-
- Agent fixes for #178314
-
- fix #179662
-
-2006-02-02 Jonathan Brassow <jbrassow at redhat.com>
-
- - Make the init script do a cman_tool leave remove on stop. Restarts still do cman_tool leave
-
-2006-02-02 Benjamin Marzinski <bmarzins at redhat.com>
-
- This fixes a problem from bz #173697. gfs_fsck crashed on many types of extended attribute corruptions. Now gfs_fsck correctly deals with them.
-
-2006-01-31 Patrick Caulfield <pcaulfie at redhat.com>
-
- Make nodeid mandatory
-
-2006-01-27 Lon Hohberger <lhh at redhat.com>
-
- Fix 179063 - some options missing from nfsclient option handler
-
- Fix 178249 - pass 2
-
-2006-01-26 Robert Peterson <rpeterso at redhat.com>
-
- This fixes Bugzilla bz 178367. Memory leak when reading from either /proc/cluster/nodes or /proc/cluster/services.
-
-2006-01-26 James Parsons <jparsons at redhat.com>
-
- Added fence_bladecenter back in to install list
-
-2006-01-24 Lon Hohberger <lhh at redhat.com>
-
- Fix broken build
-
- Fix #178249 - debug messages from gulm.so
-
-2006-01-24 Patrick Caulfield <pcaulfie at redhat.com>
-
- Update to 0.71 of openais.
-
-2006-01-24 Abhijith Das <adas at redhat.com>
-
- bz127042 fix: kill gnbd_monitor when all uncached gnbds have been removed
-
-2006-01-23 Patrick Caulfield <pcaulfie at redhat.com>
-
- Show nodeid in "cman_tool status" output.
-
- Don't allow a user to release a lockspace if other users have it open.
-
-2006-01-20 Lon Hohberger <lhh at redhat.com>
-
- Fix #166109 - random segfault in clurgmgrd. Fix most of 177467 - clustat hang (does not fix the case where the lock manager never responds to a request). Fix bug in smb.sh associated with ccs descriptors > 255.
-
- Fix 178026 - provide lock holder on request from SM. Fix 178080 - implements work around dlm release 177934 by taking a NULL lock on lockspace acquire.
-
- Add CLK_HOLDER flag: Tells the plugin to return an allocated uint64_t; #178024 - also fixes incorrect API documentation in man page
-
-2006-01-17 David Teigland <teigland at redhat.com>
-
- update gfs2 description
-
-2006-01-17 Stanko Kupcevic <kupcevic at redhat.com>
-
- Remove pvs from list of available storage; don't create VG if no storage configured
-
-2006-01-12 Jonathan Brassow <jbrassow at redhat.com>
-
- - endian fixes so heterogenious clusters can work WTR CCS - thanks to Fabio Di Nitto, and pjc
-
-2006-01-12 Steven Whitehouse <swhiteho at redhat.com>
-
- GFS2 no longer writes mh_blkno into the common metadata header for metadata blocks that it creates itself. This completes the removal of the mh_blkno field. GFS2 doesn't check it at all, so it should be backward compatible with GFS1 now.
-
- mkfs no longer writes the mh_blkno field into the common metadata header since its not needed. Removed the bmap ioctl() call from live.c since its ownly purpose was to allow setting of this field.
-
- The second half of yesterday's patch. This is the recovery part and now means that gfs2 no longer relies on the mh_blkno field of the common metadata header.
-
- All normal (i.e. not journaled) file reads/writes now go via the page cache route, even if they are to stuffed inodes.
-
-2006-01-11 Steven Whitehouse <swhiteho at redhat.com>
-
- Remember to take out my debugging printks :-)
-
- Write a list of the block numbers of the succeding metadata blocks which are about to be committed into the log. This uses the spare space at the end of the log descriptor block, so mostly it doesn't actually require any more disk I/O to do this, and when it does, its very little.
- This doesn't actually change recovery (yet) since the recovery side is
- still making use of the mh_blkno field in the metadata header still. The
- intention is to use the list of block numbers instead. This has a slight
- speed advantage in recovery since we no longer need to read any block
- which is in the revoke list, since we will have already read a list of
- the block numbers ahead of time.
-
- Once this is done, we'll no longer need to use the mh_blkno field in
- the common metadata header which gives two advantages:
-
- o We don't need the bmap ioctl() since its only use is the online version
- of mkfs
- o We don't need to rewrite all the metadata headers when converting gfs1
- to gfs2
-
- I plan to use an almost identical system to deal with data blocks in
- the journal, with the addition of an extra field to flag whether the
- data block begins with the GFS magic number or not, which is required
- so that we can escape any data blocks which do start with the magic
- number. When thats done, it will greatly simplify dealing with
- journaled data files.
-
-2006-01-11 Jonathan Brassow <jbrassow at redhat.com>
-
- - commit Lon's patch Contains: - Fix that causes connection desc's to timeout, eliminating the problem where all desc could be used-up, even though they are not in-use. - Increase # of connection desc from 10 -> 30 - Ignore SIGPIPE - Don't call printf from a signal handler - Don't catch SIGSEV, allowing for core dumps - build with -ggdb
- - applied and compile tested
-
-2006-01-11 Lon Hohberger <lhh at redhat.com>
-
- Merge ccsd local socket patch from RHEL4 / STABLE
-
-2006-01-10 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add quorum device interface back in.
-
-2006-01-10 Steven Whitehouse <swhiteho at redhat.com>
-
- Found and fixed an endianess bug where we were using the wrong conversion function (one I introduced earlier I think). Some clean ups which reduce redundant copying and also reduce endianess warnings. Removed some now unused functions.
-
-2006-01-10 Patrick Caulfield <pcaulfie at redhat.com>
-
- Use libcman
-
-2006-01-09 David Teigland <teigland at redhat.com>
-
- Copy the get/set vfs<->internal casting macros from stable branch to get rid of the piles of compiler warnings.
-
- make lock modules use modified harness interface and header from gfs
-
- printk prefix GFS instead of GFS2 in merged harness code
-
- Incorporate the lock_harness into gfs itself, just as was done for gfs2. GFS1&2 share the same lock module registration interface for now so the same modules can be used with both.
-
- Munging and renaming related to the merging of lock_harness into gfs. For the time being, we copy the gfs1 lock module bottom interface so the same lock modules can be used with both gfs1 and gfs2 (it won't be possible to load both gfs1 and gfs2 at once.) Eventually the lock modules will fork for gfs1/gfs2 and the register interface can change to the gfs2_ prefix.
-
-2006-01-09 James Parsons <jparsons at redhat.com>
-
- Fix for bz176375 regression
-
- Fixed typing designation for var
-
-2006-01-09 Steven Whitehouse <swhiteho at redhat.com>
-
- Remove a test which is no longer needed.
-
-2006-01-06 Patrick Caulfield <pcaulfie at redhat.com>
-
- file 51-udev-dlm.rules was initially added on branch RHEL4.
-
-2006-01-04 Lon Hohberger <lhh at redhat.com>
-
- Fix 176343 - __builtin_return_address(x) for x>0 is never guaranteed to work
-
-2006-01-04 Patrick Caulfield <pcaulfie at redhat.com>
-
- udev rules file for DLM
-
-2006-01-03 Patrick Caulfield <pcaulfie at redhat.com>
-
- Allow non-root users to create the default lockspace.
-
- Fix race where a lock could be unlocked before dlm_lock has completed.
-
- Put externs in the header file.
-
-2005-12-22 Steven Whitehouse <swhiteho at redhat.com>
-
- Update mkfs to use the new ioctl for get/set of flags for files.
-
-2005-12-21 Steven Whitehouse <swhiteho at redhat.com>
-
- Adding back the get/set flags ioctl, which is the one ioctl that I think we really need. This time its called with the argument being a pointer to the flags to be got/set rather than through the original vectored ioctl call.
-
- Remove some unused code relating to printing the lock state. If we are to use an fs based interface to revive this feature on user request (the current code is only triggered by a bug occuring) then the code I'm removing here won't be useful anyway.
-
- Merge the lock harness into gfs since it no longer makes sense to retain it as a standalone module.
- Also drop most ioctls() although I've left the header file for now so that
- the userland utils will still build. Live operations on the fs will not
- be possible until the userland utils have been ported over to use the
- new interface(s).
-
-2005-12-19 David Teigland <teigland at redhat.com>
-
- Check if allocate_lockinfo() fails.
-
- typo: not &'ing DLM_LKF_PERSISTENT with the flags
-
-2005-12-16 Abhijith Das <adas at redhat.com>
-
- fix for bz169087 - split fill_super_block() into read_super_block and fill_super_block. calling block_mounters between calls to the two sb functions
-
-2005-12-16 Stanko Kupcevic <kupcevic at redhat.com>
-
- add path to logfile to error popups
-
-2005-12-15 Stanko Kupcevic <kupcevic at redhat.com>
-
- Verify that node is subscribed to proper RHN channels
-
-2005-12-15 Steven Whitehouse <swhiteho at redhat.com>
-
- Some __read_mostly annotation.
-
- mkfs changes to allow building of filesystems with visible .gfs2_admin directory.
-
- This change makes the "hidden" files and directories visible to users of the filesystem. Basically it interchanges the order of the root and .gfs2_admin directories.
- There are still some more changes to come in this area, but this is a
- good start. Again you'll need to upgrade mkfs with the changes I'm about
- to check in to build a filesystem with this new feature.
-
- The plan is that this will remove the need for a large number (all?)
- of the current ioctl()s but I'll leave them where they are until I'm
- sure this is working correctly.
-
-2005-12-14 Steven Whitehouse <swhiteho at redhat.com>
-
- These are the fixes to mkfs in order to get it to build against the new big-endian GFS2 kernel source. I'm not intending to fix the other utilities until I've finished the ioctl() changes as that will break them again for a short while.
- If you do need them in the mean time, mostly its a question of adding
- linux/types.h to the include files list, s/le/be at suitable places
- and using the copy of ondisk.c now checked in here.
-
- Long term I'd like to abstract the things in ondisk.c and make a
- libgfs which all the utilities can share rather than each of them
- having their own copy of them.
-
- This touches just about everything and changes GFS2 to be big-endian on disk, like GFS1. At this point, most of the major data structures will be compatible in layout and endianess. There are a number of more minor items which are still not compatible, largely in areas where there really is a good reason to make changes.
- There will probably be further metadata changes to come, not least when
- I look at the ioctl question, which is next on my agenda as it will also
- require user tool changes.
-
- All the user tools in CVS for GFS2 are now broken until I check in
- some changes there (5 mins max I promise!).
-
-2005-12-12 Patrick Caulfield <pcaulfie at redhat.com>
-
- I hate CVS, why does it always ignore this directory? Add flags to 'extra' for showing 2node & error states.
-
- Show 2node flag & error state in cman_tool status
-
- Some of those messages should go to syslog
-
-2005-12-10 Benjamin Marzinski <bmarzins at redhat.com>
-
- Fix for bz 142849
- When you do gfs_write on a stuffed inode, you don't update the page cache,
- because the inodes are stored in the buffer cache. This doesn't effect reads,
- because gfs special cases the stuffed reads. Unfortunately, sendfile needs to
- use the page cache, because it relys on the destination socket's sendpage
- routine to work. So my fix is: after you do a write on a stuffed inode, if the
- first page of the file is cached (It appears from looking at the code that
- there is already an assumption that stuffed inodes will never be more than a
- page in length) mark the cached page as not uptodate.
-
-2005-12-09 Stanko Kupcevic <kupcevic at redhat.com>
-
- Sample snmpd.conf
-
- Make sure all data is read() from buffer before closing fd
-
- Added rhcClusterNodesNames, rhcClusterAvailNodesNames, rhcClusterUnavailNodesNames, rhcClusterServicesNames, rhcClusterRunningServicesNames, rhcClusterStoppedServicesNames, rhcClusterFailedServicesNames to rhcCluster, so that users of clients that don't display whole snmp table in a single view (eg. HP OpenView), can see all failed/stopped/... services in one place. Node and service tables haven't been removed. Also, clarified descriptions.
-
-2005-12-09 Lon Hohberger <lhh at redhat.com>
-
- Fix #175033 part 2 - read in page-size chunks from /proc/cluster/services
-
-2005-12-09 Steven Whitehouse <swhiteho at redhat.com>
-
- A checkpoint in the sparse annotation. There are still a number of areas producing warnings. Two out of three (the vectored ioctl() and the walk_vm() function and friends) are already on Dave T's hit list so I didn't spend a lot of time sorting them out.
- The third (jdata) will need some more work. There is also further work
- to be done adding more annotations, particularly for the ondisk metadata
- but this is a convenient point to check in what I've done so far.
-
- Fix sparse warning caused by use of int rather than gfp_t in a function argument.
-
-2005-12-08 Lon Hohberger <lhh at redhat.com>
-
- Bump SM plugin version
-
- Fix #175033 - magma-plugins incorrect read behavior for /proc/cluster/services > 4096 bytes
-
-2005-12-08 Patrick Caulfield <pcaulfie at redhat.com>
-
- Allow re-reads of CCS to set a new expected_votes value. If we can't read CCS then pause this node until we can (maybe need some form of retry in here) Fix some prototypes.
-
- Oops, typo. Also tidy comments so they fit on an 80char line.
-
- Reinstate lowcomms_close() to tidy up the output queue when a node leaves the cluster.
- Truncate any partial messages that may be left in the input buffer
- if a node goes down under memory pressure (thanks to Mark Butler for
- pointing this out)
-
-2005-12-08 Steven Whitehouse <swhiteho at redhat.com>
-
- Removed the hfile_trunc ioctl(). Its not used anywhere at the moment, but I've kept the function itself (will produce a function not used compile warning) just for the moment as I've a hunch it will be useful later via a different interface.
-
- Tidy endianess conversion in lvb.c. Half the macros were not used anyway. We no longer convert endianess for the structure padding, and the printing code will no longer print its value.
- This is a precusor to a longer look at the endianess conversion and
- addition of sparse annotations.
-
- Fix up warnings due to kernel function prototypes not matching a couple of GFS2 functions.
-
- This patch moved the i_alloc structure into the incode inode. This results in fewer memory allocations (one less per write) as well as removing another of the __GFP_NOFAIL allocations from the code.
- I've left the get/put functions associated with i_alloc as it might be
- useful to retain them for debugging and because it maps out the lifetime
- of this structure.
-
- Temporary variable "error" is not required since there is already a variable being used for that purpose.
-
- This patch removes an allocation of memory which was occuring on every lookup of a block in a file. The memory requires is now allocated on the stack and its only 20 bytes. A lot less than some of the other stack allocated structures we are using (e.g. struct gfs2_holder) in the code.
- It should speed things up and removes one of the __GFS_NOFAIL allocations
- that we need to remove from the code.
-
- Fix to quota bug fix... I had accidently commited the RHEL4 patch in head as well. This is the proper fix for the head branch.
-
-2005-12-07 Stanko Kupcevic <kupcevic at redhat.com>
-
- Include pegasus headers for zSeries
-
-2005-12-07 Lon Hohberger <lhh at redhat.com>
-
- Fix #175229 - remove unneeded references to clurmtabd; it is no longer a necessary piece for NFS failover
-
- Implement 175215: Inherit fsid for nfs exports
-
-2005-12-07 Stanko Kupcevic <kupcevic at redhat.com>
-
- agent and provider READMEs
-
-2005-12-07 Patrick Caulfield <pcaulfie at redhat.com>
-
- Call out to group_tool for "cman_tool services". A bit of backward compatibility is always nice :)
-
-2005-12-07 Stanko Kupcevic <kupcevic at redhat.com>
-
- Replaced tmp OID with unique one
-
-2005-12-07 Patrick Caulfield <pcaulfie at redhat.com>
-
- Tell aispoll to remove the client if it errors.
-
-2005-12-06 Stanko Kupcevic <kupcevic at redhat.com>
-
- Signal-safe logging
-
- Resources used after their release
-
-2005-12-06 James Parsons <jparsons at redhat.com>
-
- Fix for bz168698
-
-2005-12-06 Lon Hohberger <lhh at redhat.com>
-
- Fix #175114 - rgmanager uses wrong stop-order for unspecified resource agents
-
- Fix #175108 - rgmanager storing extraneous info using VF
-
- Fix #175106 - lsof -b blocks when using gethostbyname causing slow force-unmount when DNS is broken
-
- Fix #174819 - clustat crashes if ccsd is not running
-
- Fix #173916 - rgmanager log level change requires restart
-
- Fix #173526 - Samba Resource Agent
-
- Fix #171236 - pass 1 - ia64 alignment warnings
-
- Fix #171153 - pass 1 - clustat withholds information if run on multiple members simultaneously
-
- Fix #165447 - ip.sh fails when using VLAN on bonded interface
-
-2005-12-06 Patrick Caulfield <pcaulfie at redhat.com>
-
- sockets should be non-blocking!
-
- Comment tidy
-
- CCS node names override temporary ones created from the IP address. Recalculate quorum after re-reading CCS.
-
- Sort nodes by nodeid
-
-2005-12-06 Steven Whitehouse <swhiteho at redhat.com>
-
- Remove an unused variable.
-
- A two line patch to fix a bug where the quota_enforce setting is ignored.
- Thanks to:
-
- Marc Curry for reporting the bug and testing the fix and
- Chris Feist for building the RPMs for Marc to test the fix
-
-2005-12-05 Stanko Kupcevic <kupcevic at redhat.com>
-
- Restart daemons on upgrades, compile with debugging info
-
- Abort command execution after 3 second
-
- Memory corruption due to libxml2 not being thread safe
-
-2005-12-02 Stanko Kupcevic <kupcevic at redhat.com>
-
- Memory leak in Socket, remove pidfile on exit, catch SIGCHLD
-
- spec and code cleanup
-
- added logging with multiple levels of verbosity
-
-2005-12-01 Patrick Caulfield <pcaulfie at redhat.com>
-
- Update to latest AIS (taken straight from svn now) Make thread count configurable.
-
-2005-11-30 Patrick Caulfield <pcaulfie at redhat.com>
-
- (re-)read the two_node flag from CVS so we can change it on the fly.
-
-2005-11-30 Stanko Kupcevic <kupcevic at redhat.com>
-
- Daemonization of clumond
-
-2005-11-29 Stanko Kupcevic <kupcevic at redhat.com>
-
- specfile, dependencies, buildsystem
-
-2005-11-29 Robert Peterson <rpeterso at redhat.com>
-
- Fix for Bugzilla Bug 155304 – gnbd_monitor doesn't correctly reset after an uncached gnbd has failed and been restored.
-
-2005-11-29 Steven Whitehouse <swhiteho at redhat.com>
-
- Sorry - another ondisk format changing check in...
- I've reordered the fields in the common metadata header and added a pad
- field so that this structure is now of identical size as in gfs1. It
- also has identically functioning fields in the same place.
-
- One new field is added, mh_blkno which contains the block number of
- the block in question. This is instead of the generation number used
- in gfs1's journaling and now no longer needed. The mh_blkno field is
- checked only once in the code and could be moved into the structure
- where its required, rather than being left in the common header. (I
- checked this with Ken who added the field in the first place)
-
- I have a thought that it might be a useful feature to have all ondisk
- metadata checksummed in which case this header field might be just the
- right place to put it.
-
- Also some padding is added to the dinode, sb and rgrp structures in order
- to make them compatible with the earier gfs1 versions. Again fields are
- now in the same places as in gfs1 with padding added where required since
- the fields have got smaller.
-
- I don't believe that there will be any significant performance impact in
- changing these structures, but it should make things much easier when it
- comes to migration.
-
- There are other structures (I think that the various directory metadata
- comes under this heading) where removing the padding is likely to
- improve performance significantly and so I'm intending to take a
- different approach there.
-
- There is likely to be at least one more metadata change for gfs2 in
- the not too distant future. My next main concern is to make gfs2
- bigendian on disk, to match gfs1. Beyond that, all the other changes
- should be much easier to cope with. I did a test recently and found that
- given a few 32bit fields to copy, adding endian coversion made about
- 12% difference to the speeed of copying (which we are doing anyway).
-
- If we keep the two versions with the same on disk endianess then a lot
- of the metadata will not need conversion at all (given the changes in
- this patch). So an upgrade will be quite quick, rather than needing to
- rewrite each and every metadata disk block.
-
- This patch introduces the tty_write_message() function rather than doing the dereferences directly.
- Make this look like the code for ext2/3. I'm not sure about the test that
- I've left in the code here. ext2/3 doesn't have it and I suspect we don't
- need it, but I've left it for now just in case.
-
-2005-11-24 Stanko Kupcevic <kupcevic at redhat.com>
-
- build system
-
-2005-11-23 Stanko Kupcevic <kupcevic at redhat.com>
-
- clumond c++ rewrite
-
-2005-11-23 Steven Whitehouse <swhiteho at redhat.com>
-
- N.B. This patch changes the ondisk format of GFS2, so you'll need to remake filesystems.
- The idea here is to make the metadata closer to that of GFS1 in order to
- reduce the amount of work required to migrate GFS1 -> GFS2. This patch
- changes the numercial value of a few constants to match those of
- identical function in GFS1. One of the GFS1 constants is no longer
- used in GFS2 (as noted in the comments) and there are two new constants
- added.
-
- As far as I can tell there are no more constants in GFS2 which are
- not comaptible with those in GFS1. All the remaining ondisk
- incompatibilities are due to structures changing size and I'll
- be taking a look at those next.
-
-2005-11-22 Stanko Kupcevic <kupcevic at redhat.com>
-
- Package docs, build 0.9.2
-
- Addition of html documentation
-
-2005-11-21 Lon Hohberger <lhh at redhat.com>
-
- Allow scripts to inherit the name attr of a parent in case the script wants to know it (#172310)
-
- Fix #162605
-
-2005-11-21 David Teigland <teigland at redhat.com>
-
- Check in Wendy Cheng's fix: Flush pages into storage in case of DirectIO falling back to BufferIO.
-
- Check in Kevin Anderson's mount sync patch: Without the patch, there is a large performance hit when using the -o sync mount option on gfs filesystems. The problem is that pages are not being flushed to disk when the gfs_writepage routine is invoked due to the transaction not yet being completed. Ref: bugzilla 173147.
-
-2005-11-16 Stanko Kupcevic <kupcevic at redhat.com>
-
- RPM prerequisites & alpha build
-
- Message to add two nodes in order to detect shared storage
-
- Tooltips and touch-ups
-
- Display size in GBs
-
-2005-11-15 David Teigland <teigland at redhat.com>
-
- When using lock_dlm, all gfs2 unmounts would panic in invalidate_inode_buffers (<- invalidate_list <- invalidate_inodes). Invalidate_inodes requires that the sb inodes list not change while it's running, but async unlock completion callbacks from lock_dlm are scheduled during invalidate_inodes. These callbacks do glock_put() which does a final iput(), clearing the inode and causing the panic.
- The fix is a new semaphore (sd_invalidate_inodes_mutex) which blocks
- glock_put's during invalidate_inodes.
-
-2005-11-14 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't spam ccsd with diff config entry names.
-
- add htons() etc on nodeid in totem_ip_address.
-
-2005-11-12 Stanko Kupcevic <kupcevic at redhat.com>
-
- Minor GUI touch ups
-
-2005-11-12 David Teigland <teigland at redhat.com>
-
- remove option debugging
-
-2005-11-11 David Teigland <teigland at redhat.com>
-
- deal with gfs1/gfs2 differences better
-
- don't restrict to gfs2
-
-2005-11-10 David Teigland <teigland at redhat.com>
-
- debugging output and options
-
-2005-11-10 Patrick Caulfield <pcaulfie at redhat.com>
-
- new AIS incorporating nodeid zeroing patch that got missed.
-
-2005-11-10 Stanko Kupcevic <kupcevic at redhat.com>
-
- Initial checkin of clumon
-
-2005-11-09 David Teigland <teigland at redhat.com>
-
- mount.gfs/umount.gfs are mount.gfs2/umount.gfs2
-
- extraneous \n
-
- Code to add/del gfs entries from /etc/mtab; junk I was hoping to avoid but can't.
-
-2005-11-09 Stanko Kupcevic <kupcevic at redhat.com>
-
- Initial checkin of cs-deploy-tool
-
-2005-11-08 David Teigland <teigland at redhat.com>
-
- look in /proc/mounts instead of /etc/mtab for gfs mounts
-
- add fixme comment
-
- Share common code between mount/umount; both about finished.
-
-2005-11-08 Patrick Caulfield <pcaulfie at redhat.com>
-
- Read key after we've filled in the whole of the totem_config struct, as it now seems to depend on bits of it.
-
- If AIS passes us a node ID then we should beleive it. Also cope with not being able to resolve IP addresses at startup. If AIS passes us a nodeid that matches then we can use that one.
-
- new AIS
-
- Fix log message that could crash daemon
-
- Don't show joined time for non-members.
-
-2005-11-07 David Teigland <teigland at redhat.com>
-
- Every file should #include the headers containing the prototypes for it's global functions. Signed-off-by: Adrian Bunk <bunk at stusta.de>
-
- dlm_find_lockspace_name is now the static one
-
- Remove some unused functions, make others static. Signed-off-by: Adrian Bunk <bunk at stusta.de>
-
-2005-11-07 James Parsons <jparsons at redhat.com>
-
- Fixes bz172464; adds WTI RPS10 agent to build
-
-2005-11-04 Lon Hohberger <lhh at redhat.com>
-
- Fix for 172441 from jparsons
-
-2005-11-03 Lon Hohberger <lhh at redhat.com>
-
- Fix #172401
-
-2005-11-03 David Teigland <teigland at redhat.com>
-
- don't use patches any more
-
- not sure why these are still here
-
-2005-11-02 Lon Hohberger <lhh at redhat.com>
-
- Fix rest of 172178
-
-2005-11-01 Lon Hohberger <lhh at redhat.com>
-
- Fix bugs 172177, 172178
-
-2005-11-01 Alasdair G. Kergon <agk at redhat.com>
-
- test commit
-
-2005-10-31 David Teigland <teigland at redhat.com>
-
- do mount option munging on a copy of gfs's hostdata buffer
-
- build mount.gfs2 and umount.gfs2
-
- Write our own reduced option parsing routine and don't bother using parse_opts() from util-linux/mount -- no need for util-linux at all now.
-
-2005-10-31 Alasdair G. Kergon <agk at redhat.com>
-
- test checkin
-
-2005-10-31 David Teigland <teigland at redhat.com>
-
- split depends line
-
-2005-10-31 Lon Hohberger <lhh at redhat.com>
-
- Apply patch from Axel Thimm to fix bz172066
-
-2005-10-28 David Teigland <teigland at redhat.com>
-
- On unmount just leave the lockspace and exit, user space umount.gfs will leave the mount group
-
- umount helper
-
- need EXPORT_SYMBOL_GPL
-
- Pass the correct mount options.
-
- Accept connections for mount requests from mount.gfs. Do mount processing when we get this request instead of waiting for a mount uevent from the kernel. Return hostdata string to mount.gfs that's passed to gfs through mount(2). jid/id/first values previously set in sysfs now passed in hostdata.
-
- Remove "do mount" uevent message to user space and waiting for "mounted" reply. Now assumes that gfs mount helper has done everything already.
-
-2005-10-27 Lon Hohberger <lhh at redhat.com>
-
- Ensure rgmanager doesn't block SIGSEGV when debug is not enabled.
-
-2005-10-27 David Teigland <teigland at redhat.com>
-
- default to 1 vote if no value given in cluster.conf
-
- untested interaction with lock_dlmd added
-
-2005-10-24 David Teigland <teigland at redhat.com>
-
- The start of a mount.gfs2 program that is called by mount(8). This allows us to do things in user space (like interact with the cluster infrastructure) before mount(2) is called. None of the clustering bits have been added here yet.
- The mount(8) source is a real mess and it's not simple to integrate
- an fs-specific helper without duplicating a pile of the mount(8)
- code within the helper program. Currently the Makefile downloads
- a modified version of util-linux, builds util-linux/mount and then
- compiles mount.gfs2 using util-linux/mount/libmount.a. A better
- solution may require a lot of cleanup in util-linux/mount, unfortunately.
-
- Add comment with Ken's quota summary.
-
- move quota sync and refresh to sysfs
-
-2005-10-24 Jonathan Brassow <jbrassow at redhat.com>
-
- - millennium latency fix for 2.6
-
-2005-10-21 Lon Hohberger <lhh at redhat.com>
-
- Fix #171253
-
-2005-10-18 Lon Hohberger <lhh at redhat.com>
-
- Mono-NFS server resource agent
-
-2005-10-17 Lon Hohberger <lhh at redhat.com>
-
- Add logging library
-
- Mono-NFS server support (e.g. one NFS server per cluster, active-passive).
-
- Add support for inheritance in the form "type%attribute" instead of just attribute so as to avoid confusion.
- Fix 150346 - Clustat usability problems
- Fix 170859 - VIPs show up on multiple members.
- Fix 171034 - Missing: Monitoring for local and cluster file systems in...
- Fix 171036 - RFE: Log messages in resource agents
-
-2005-10-13 David Teigland <teigland at redhat.com>
-
- get block size from sb instead of defunct statfs
-
- comment out bits that used "statfs" entry in sysfs that's now been removed... need to find another way of getting at least some of that info
-
- /sys/fs instead of /sys/kernel
-
- base dir in sysfs is now /sys/fs/gfs2
-
- register gfs under /sys/fs instead of /sys/kernel. requires the kernel to be patched with fs_subsys.patch
-
- declares fs_subsys for /sys/fs/
-
- Port plock management from lock_dlm kernel module to lock_dlm userland daemon. Simpler as it runs over cman comms instead of dlm range locks.
-
-2005-10-12 David Teigland <teigland at redhat.com>
-
- use ALIGN instead of MAKE_MULT8
-
- last checkin for list_for_each_entry_safe_reverse was incomplete
-
- Use list_for_each_entry_safe_reverse. Requires the kernel to be patched with list-safe-reverse.patch.
-
- adds list_for_each_entry_safe_reverse to list.h
-
- Add a couple comments.
-
-2005-10-11 David Teigland <teigland at redhat.com>
-
- Showing extended statfs info in sys set a couple people off, just removing it instead of wasting my time arguing with people. We can try to put it back later on its own.
-
- file WHATS_NEW was initially added on branch STABLE.
-
- use list macro
-
- use list_for_each
-
-2005-10-10 David Teigland <teigland at redhat.com>
-
- refresh for latest -mm
-
- remove some log_debug's
-
- add a static
-
-2005-10-07 Patrick Caulfield <pcaulfie at redhat.com>
-
- Slightly better error handling.
-
- Pull slightly updated openais tarball.
-
-2005-10-07 David Teigland <teigland at redhat.com>
-
- withdraw if the lock module returns LM_OUT_ERROR
-
- missing include
-
-2005-10-06 David Teigland <teigland at redhat.com>
-
- if the lock module returns LM_OUT_ERROR, withdraw from the cluster
-
- When the dlm returns an error, return LM_OUT_ERROR to gfs instead of panicking; gfs can then try to withdraw.
-
- define LM_OUT_ERROR for a lock module to return
-
-2005-10-06 Benjamin Marzinski <bmarzins at redhat.com>
-
- Update gfs2_tool to make use of sysfs instead of ioctls where appropriate.
-
-2005-10-06 Patrick Caulfield <pcaulfie at redhat.com>
-
- Set the version number
-
- Don't default to 0 votes, it's annoying.
-
-2005-10-05 Lon Hohberger <lhh at redhat.com>
-
- Don't build clufindhostname; it's not even in the tree
-
-2005-10-05 David Teigland <teigland at redhat.com>
-
- need smp_lock.h for lock_kernel()
-
- don't include the kernel's lm_interface.h, print lm flags value, don't try to interpret
-
-2005-10-04 Lon Hohberger <lhh at redhat.com>
-
- Incorporate patch from 165447
-
- Clustat partial rewrite (still needs updated XML output)
-
-2005-10-04 David Teigland <teigland at redhat.com>
-
- update FIXME comment
-
- Add comment explaining how queue_empty() is used.
-
- Use kref structs and operations to do glock reference counting instead of our own counter.
-
-2005-10-03 Patrick Caulfield <pcaulfie at redhat.com>
-
- Stick a version number in the pipe protocol so we can protect ourself from future incarnations of tools.
-
- Don't die if we get SIGPIPE
-
- Add DLM_LKF_FORCEUNLOCK so device.c doesn't have to muck about with locks that are in progress.
-
-2005-09-30 Patrick Caulfield <pcaulfie at redhat.com>
-
- Lock ourself in memory
-
- Don't send two config change events for a "cman_tool expected -e". Tidy kill message.
-
- Use inet_ntop() to print IP addresses so the look nicer.
-
- "cman_tool status" prints the multicast address too.
-
- Use slightly more RFC-compliant multicast address.
-
- Install the AIS keygen program.
-
-2005-09-28 David Teigland <teigland at redhat.com>
-
- move shrink and statfs_sync from ioctl to sysfs
-
- handle sysfs dirs for both gfs1 and gfs2
-
- update to work with new sysfs organization (doesn't work for gfs1 yet)
-
- add \n
-
- missed the sys_fs_uninit at unmount
-
-2005-09-27 David Teigland <teigland at redhat.com>
-
- add a couple basic sysfs attributes
-
-2005-09-27 Benjamin Marzinski <bmarzins at redhat.com>
-
- gfs2 was unable to truncate files if they were opened with write permissions, but the process later changed uids to an uid that didn't have write permission. POSIX says that if you had the permissions when you opened the file, you don't loose them when you change uids.
- gfs2 no longer checks permissions before truncating a file in gfs2_setattr. I
- don't know what this check was ever added (It didn't exist in gfs 6.0). Since I
- don't know why the check was added, I can't say for certain that it is
- unessential. However, I can't see any reason to do it, so I deleted it.
-
-2005-09-27 David Teigland <teigland at redhat.com>
-
- The fs kobject is now passed into the lock module at mount time. It's ignored by nolock and gulm. Kobject added to gfs1 so the same lock module can operate with both gfs1 and gfs2.
-
- Pass the kobject for the fs into lm_mount() so the lock module's kobject can appear below it in sysfs.
-
-2005-09-27 Patrick Caulfield <pcaulfie at redhat.com>
-
- rename "commskey" to "keyfile" as that's slightly better. remove redundant entry
-
- Don't overwrite AIS node addresses just because a nodeid matches Keep nodes in ID order
-
-2005-09-26 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix usage message
-
-2005-09-23 Patrick Caulfield <pcaulfie at redhat.com>
-
- Tidy multicast code and use a suitable (ip4 or 6) default if none is specified.
-
- Allow CCS version to go forward between cman_tool join & startup, but not backward. Don't put an incarnation number on a node newly arrived from CCS.
-
- Add uS to the log timestamp
-
- Updating ccs_tool's editconf commands for new cman schema (note: the old schema will still work [nodeids permitting] but the new one is slightly simplified)
-
-2005-09-22 Benjamin Marzinski <bmarzins at redhat.com>
-
- add watchdog.o to the rgmanager object files, to fix undefined reference to watchdog_init.
-
- switched 'deamon' to 'daemon' in uninstall rule.
-
-2005-09-22 Patrick Caulfield <pcaulfie at redhat.com>
-
- Cope with node names in CCS that we can't resolve (provided they have a node ID) and warn if odd things happen.
-
-2005-09-21 David Teigland <teigland at redhat.com>
-
- move a bunch of stuff from ioctl to sysfs
-
- minor fixups
-
-2005-09-21 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't try and do floating point maths in the preprocessor.
-
- Use a temp variable for the node address, to avoid potential alignment problems.
-
- new AIS version
-
- byteswap the header too
-
- Need to return earlier if the socket failed to connect.
-
- Refresh cluster FD before each select.
-
- If any of the queues have cached message in then return an fd for /dev/zero from cman_get_fd() - that way it will be guaranteed to be active for read so we will get called back to flush those queues.
- Also, use the new GETNODECOUNT call to get the nodecount rather than getting the
- whole node list.
-
- Missing comma & comment.
-
-2005-09-20 Patrick Caulfield <pcaulfie at redhat.com>
-
- Updated patch that works rather better.
-
-2005-09-19 Patrick Caulfield <pcaulfie at redhat.com>
-
- Patch for clvmd so that it can be used with libcman. With a dynamic libcman, the same clvmd should be able to run with a kernel or userland cmand depending on the library installed.
- When libcman is packaged I will apply this to the main clvmd sources
-
- Add CMAN_REASON_PORTOPENED callback reason.
-
-2005-09-16 Stanko Kupcevic <kupcevic at redhat.com>
-
- Fixed bz167217, and handling of DOWNed interfaces
-
-2005-09-16 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix up the port notification and add new new PORTOPENED notification because we can.
-
-2005-09-16 Stanko Kupcevic <kupcevic at redhat.com>
-
- Added watchdog that reboots if clurgmgrd crashes
-
-2005-09-15 Patrick Caulfield <pcaulfie at redhat.com>
-
- Use ccs as the repository of config & node information (that is, after all, why it is there!) rather than passing it around in extraneous cluster messages.
- This also has the effect that we can re-read CCS if a node joins the cluster with
- a higher config version than us, making "cman_tool version" redundant. That
- should please some people.
-
-2005-09-14 A. J. Lewis <alewis at redhat.com>
-
- Initial commit of fsck for GFS2 o this is based on the fsck for GFS1 with changes to handle the ondisk format changes introduced in GFS2 o This is a work in progress - it will not throw errors on a clean filesystem, but it has not been extensively tested yet, so be careful.
-
-2005-09-14 Patrick Caulfield <pcaulfie at redhat.com>
-
- Strip down barriers so they use the VS features of AIS.
-
-2005-09-14 Benjamin Marzinski <bmarzins at redhat.com>
-
- fixed acl code so that acls are displayed when enabled, and not displayed when disabled. Also cleaned up the intenting of my last checkin.
-
- When you copy an suid root file to gfs, you start a transaction on the write and then make a vfs call that eventaully tries to start another transaction for changing the file attributes. This cause gfs to print a warning and not get the attributes right.
- After this change, if you already have a transaction started in
- gfs2_setattr_simple, instead of failing the warning assert, you simply use
- the existing transaction.
-
-2005-09-12 Stanko Kupcevic <kupcevic at redhat.com>
-
- Fixed bz167769: fs.sh doesn't do 10 & 20 OCF_CHECK_LEVEL checking
-
-2005-09-08 A. J. Lewis <alewis at redhat.com>
-
- o Make sure the link counts of directories are properly incremented
-
-2005-09-08 David Teigland <teigland at redhat.com>
-
- remove bio counters that were kept by the diaper device
-
-2005-09-07 David Teigland <teigland at redhat.com>
-
- remove extra tab
-
- put back previous insmod printk
-
- we dumped the gfs endian conversions and use le everywhere
-
-2005-09-06 David Teigland <teigland at redhat.com>
-
- misc style stuff
-
- define GFS2_FSNAME_LEN to use in place of 256
-
- fill in the standard stuff to send plock_get to user space
-
- apply same fixes here from gfs comments: enums, better assert
-
- replace PRIx64 with llx
-
- tidy line breaks
-
- remove "get_cookie" ioctl, not used any more
-
- tidy recurse_check
-
- replace more defines with enums
-
- more trivia, replace define with enum
-
-2005-09-05 David Teigland <teigland at redhat.com>
-
- more gfs2_assert munging
-
- more munging of gfs2_assert
-
- get rid of glock_hold/glock_put, use gfs2_glock_hold/put everywhere
-
- Don't reset atomic statistics counters to zero when they roll into negative numbers, just cast to unsigned. AFAICT 'gfs2_tool counters' shouldn't need any change.
-
- Pass all gfp flags to gfs2_holder_get() instead of having GFP_KERNEL added to what the caller provides.
-
- Replace TRUE/FALSE with 1/0. This is a really unfortunate blow to code comprehension but kernel lords are always right.
-
- slim down the printk's in assertions
-
-2005-09-03 David Teigland <teigland at redhat.com>
-
- patch from Mike Christie replacing PRI defines
-
- don't need to include smp_lock.h
-
- no more oopses_ok
-
- no more oopses_ok option
-
- remove oopses_ok option since a panic results regardless, no difference remove unused todo option in assert macro
-
-2005-09-02 David Teigland <teigland at redhat.com>
-
- replace gfs's switchable endian conversion functions with plain old le conversions
-
-2005-09-01 Lon Hohberger <lhh at redhat.com>
-
- Add VMWare ESX server fencing from Zach Lowry
-
- Ensure proper linking
-
- Fix Joe Orton's comments re: calling ld instead of gcc -shared...
-
-2005-09-01 Patrick Caulfield <pcaulfie at redhat.com>
-
- comment & message tweaks
-
- Today's openais tarball has some important fixes in it.
-
- Don't untar the ais source on every build
-
-2005-09-01 David Teigland <teigland at redhat.com>
-
- remove old patches
-
- update for use on -mm kernels
-
- update for new plock header
-
- update kernel patch generating target
-
-2005-09-01 Patrick Caulfield <pcaulfie at redhat.com>
-
- Temporarily enforce static node IDs until this is sorted out.
-
-2005-09-01 David Teigland <teigland at redhat.com>
-
- revert accidental change
-
- use macro to define sysfs attributes
-
- Allow "id" for the lockspace/fs to be set through sysfs; used for matching plock responses with right ls/fs (plock requests and responses for all fs's multiplexed through one device)
-
- Get plock requests from kernel through misc device. For the moment just pass back "ok" immediately.
-
- Pass plock requests to user space lock_dlmd through reads on misc device, lock_dlmd passes back results through writes on the same device.
-
- get to compile on 2.6.13
-
-2005-08-31 Lon Hohberger <lhh at redhat.com>
-
- Fix 167216 -- ip.sh script errors
-
-2005-08-31 David Teigland <teigland at redhat.com>
-
- do nothing in withdraw (instead of BUG) until the dm hooks are ready
-
- use sysfs instead of procfs for list/freeze/withdraw margs/lockdump are not implemented yet
-
- Replace the procfs hooks for list/freeze/withdraw with sysfs hooks. The margs/lockdump hooks require something different and are left unimplemented for the moment.
-
- fix compiler warning about ignoring return value of inode_setattr
-
-2005-08-30 Patrick Caulfield <pcaulfie at redhat.com>
-
- Configure AIS bit using CCS
-
-2005-08-30 David Teigland <teigland at redhat.com>
-
- These will replace proc.[ch] and do the same thing through sysfs.
-
-2005-08-30 Patrick Caulfield <pcaulfie at redhat.com>
-
- Remove send_queued_events() as it's not used any more.
-
- Add IPv6 support, with pre-release AIS code.
-
-2005-08-30 David Teigland <teigland at redhat.com>
-
- follow_link now returns void*
-
-2005-08-25 Patrick Caulfield <pcaulfie at redhat.com>
-
- Cope with large (>PIPE_BUF) messages coming back from the daemon.
-
- Line up heading
-
-2005-08-25 David Teigland <teigland at redhat.com>
-
- clear node struct before every cman_get_node
-
-2005-08-25 Patrick Caulfield <pcaulfie at redhat.com>
-
- Only ask for POLLOUT notification unless we have something to send.
-
-2005-08-25 David Teigland <teigland at redhat.com>
-
- memset node struct to 0 before cman_get_node
-
- comment out CMAN_CMD_ADD_KEYFILE which isn't in header yet
-
-2005-08-23 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add support for AIS security key.
-
- Add support for AIS security key. Tidy IP specifications. Kill cmand if we fail to set its parameters properly.
-
-2005-08-22 David Teigland <teigland at redhat.com>
-
- remove PRI/SCN defines that aren't used
-
- hold configfs subsys lock while accessing the children list
-
-2005-08-19 David Teigland <teigland at redhat.com>
-
- Add printk log levels by replacing printk with one of: fs_info, fs_warn, fs_err. This also lets us do the standard prefix "GFS2: fsid=%s:" in the macro instead of repeating it everywhere.
-
-2005-08-18 David Teigland <teigland at redhat.com>
-
- select configfs
-
- use linux/jhash.h instead of our own
-
- member_sysfs.c has been decimated and is no longer related to members, move what's left into lockspace.c
-
- update
-
- use new schedule_timeout_interruptible
-
- remove temp defn of kzalloc xattr_acl.h no longer exists, don't include move to schedule_timeout_interruptible, remove set_current_state try to tidy breaks in long lines in daemon.c
-
-2005-08-17 David Teigland <teigland at redhat.com>
-
- munge whitespace to match upstream so patches are sane
-
- dlm_our_nodeid now from config.h
-
- functions no longer exist
-
- rmdir, not unlink, to remove node from lockspace
-
- fix problem with the previous change for multiple addresses
-
- support more than 1 address per node, up to DLM_MAX_ADDR_COUNT (3)
-
- - when weight isn't set, it should default to 1 - check for error from looking up a node's weight
-
- set node weights (now through configfs)
-
- Move setting of the lockspace id from configfs back to sysfs where it's simpler and cleaner.
-
-2005-08-16 David Teigland <teigland at redhat.com>
-
- Configure node addresses through configfs instead of ioctls.
-
- don't compile dlm_tool, configfs changes mean it won't be working for a while
-
- Configure lockspace id and members through configfs instead of sysfs.
-
- Configure lockspace id and members through configfs instead of sysfs. (Compiling requires <linux/configfs.h> which is in -mm kernels.)
-
- depends on IPV6
-
-2005-08-11 Patrick Caulfield <pcaulfie at redhat.com>
-
- Unbind connections when they die. Recalculate quorum when we join.
-
- Clear struct before calling cman_get_node()
-
- Clear node struct before passing it into cman_get_node()
-
- Return node addresses.
-
-2005-08-11 David Teigland <teigland at redhat.com>
-
- remove empty kerneldoc headers copyright artwork
-
- copyright artwork
-
- remove comment I added
-
- cool down on the copyright artwork
-
- remove functions unused now that diaper is gone
-
- gfs2_ip2v(ip, NO_CREATE) -> gfs2_ip2v_lookup(ip) gfs2_ip2v(ip, CREATE) -> gfs2_ip2v(ip)
-
-2005-08-10 Patrick Caulfield <pcaulfie at redhat.com>
-
- small Makefile fixes
-
- library commits that go with the last lot. I'm not sure why CVS missed them out.
-
- Build cman against openAIS's libtotem_pg. This is still pretty unstable stuff so be warned.
- For the moment it downloads a prepackaged/patched version of openais from
- my web site. This /will/ change.
-
- There's still a lot of work to do on this code but is basically works with a few
- caveats:
-
- 1. Barriers are completely untested and may not work at all.
- 2. Don't start several nodes up at the same time, they might get the same
- node ID(!) unless you used static node IDs
- 3. Some of the info returned by cman_tool is wrong.
- 4. The exec path for cmand is hard coded (in the Makefile) to ../daemon/cmand
- so you must currently always run cman_tool from the dev directory unless
- you change it.
-
-2005-08-10 David Teigland <teigland at redhat.com>
-
- Remove diaper code, add a FIXME in the place where we need to hook into dm for withdraw.
-
- replace 0x7FFFFFFFull with MAX_NON_LFS in size checks
-
- c99 initializers
-
- fix whitespace damage where lines start with 1-7 spaces followed by a tab
-
- replace 256 with defined MAX_LINE fix whitespace damage
-
- replace kmalloc/kzalloc with kcalloc where appropriate
-
- use kzalloc instead of kmalloc+memset (FIXME: kzalloc added to gfs2.h since it's only in mm at the moment)
-
- asm headers after linux
-
- convert vma2state from macro to static inline function
-
- convert lops.h macros into static inline functions
-
- comment to link flags to struct member
-
- Remove context dependent path names. Requested by Al Viro. If they're important we can try to put them back once gfs is accepted.
-
-2005-08-09 David Teigland <teigland at redhat.com>
-
- remove another { } block
-
- - remove empty kerneldoc headers - tidy util.h and remove some unused bits - remove Ren & Stimpy quote due to complaint
-
- get rid of fixed_div64.h -- the existing do_div() works fine in my tests, and do_mod() isn't needed since do_div() returns the modulus.
-
- Use wait_event() in do_lock_wait() instead of managing the waitqueue ourselves. I have some doubt that the log spinlock really needs to be held while testing the atomic counter, but I'm not certain enough to drop it.
-
- style munging: get rid of { } blocks within functions more line break and over-80 cleanups
-
- replace the hash functions with linux/jhash.h get rid of unused get_time()
-
- Get rid of RETRY_MALLOC entirely, although the one place it couldn't be worked around still has a loop.
-
-2005-08-08 David Teigland <teigland at redhat.com>
-
- remove { } creating code block within function due to complaint
-
- callers of inode_create() can deal with error, don't need RETRY_MALLOC
-
- Remove all memory debugging per lkml comments; a pity, this stuff was nice and simple. Maybe we can try to put it back once gfs is merged.
-
- gfs2_disk_hash.h contains gfs2_disk_hash() and crc table that's been removed from gfs2_ondisk.h
-
- for gfs2_disk_hash() use the kernel's crc32_le() instead of our own function and crc table
-
-2005-08-05 David Teigland <teigland at redhat.com>
-
- replace gfs2_sort() with sort() from linux/sort.h
-
- gfs2_random() is not used, remove it.
-
-2005-08-03 David Teigland <teigland at redhat.com>
-
- drop unnecessary casts of void pointers
-
- spaces to tab
-
- Excerpt from Ken Preslan's "ramblings".
-
-2005-08-02 David Teigland <teigland at redhat.com>
-
- __user annotation in gfs2_readlink()
-
- __user annotations for proc functions
-
- adding static to a bunch of stuff found by sparse, and a __user
-
- add static to acl_get()
-
-2005-08-02 Adam Manthei <amanthei at redhat.com>
-
- Add support for Dell PowerEdge 1855 to fence_drac (bz 150563). When using the DRAC/MC firmware, an addition parameter is required to specify the module/blade in the PE 1855.
-
-2005-08-01 A. J. Lewis <alewis at redhat.com>
-
- Update fsck in HEAD of CVS with changes made to RHEL4 and STABLE branches - large forward-port of changes * Whitespace changes * Set error variable before use * Remove duplicate allocation code * Don't use the BH_DATA macro when assigning * set error before using it * Display messages before, during, and after clearing journals o Currently displays a '.' every 10 journals cleared - this messes with the log_info message when -v is used, but I'm not going to worry abou [...]
-
-2005-08-01 David Teigland <teigland at redhat.com>
-
- Go back to schedule_timeout() in the daemons. We want to wake up more often than the timeout, which schedule_timeout() typically does. msleep won't return until the timeout at a minimum which makes unmount take a long time.
-
- inline instead of __inline__
-
- more tidying, removing old or unnecessary comments
-
-2005-07-29 Lon Hohberger <lhh at redhat.com>
-
- fix 164627
-
- fix 162501
-
-2005-07-29 David Teigland <teigland at redhat.com>
-
- Add a comment with Ken's explanation of the diaper device.
-
- In conversation, simply refer to "GFS", not "GFS2".
-
-2005-07-29 Jonathan Brassow <jbrassow at redhat.com>
-
- - s/uint32_t/sector_t for get_region_size return
-
- - Fix cmirror bugs
- - Only allow one machine to perform resync work
- There must be a race in there somewhere when allowing multiple
- simultaneous recoveries... This side-steps that issue. Besides
- one machine moving the heads is probably better than all.
-
- - when a resync is done, we must mark it in the clean list as well
- as the sync list. Otherwise, the log will always tell us there
- is recovery to be done - even if there isn't.
-
- - Only suspend the server on cluster events - not dm suspends. If
- we flush the clients before returning from the suspend, the server
- will do nothing anyway.
-
- - fix typo
-
- - clean up logging
-
- - take the code that connects to cman out of the init function and
- do it on first mirror activation. This way, you don't have to
- have cman running in order to load the module... Makes mirror
- activation a bit slower, but speeds up module loading.
-
-2005-07-28 Adam Manthei <amanthei at redhat.com>
-
- fix for bz 161352
- Adds support for latest ilo firmware version (1.75). Changes were also
- added to make sure that power status of the machine is being properlly
- checked after power change commands have been issued. Before, it was
- assumed to work through the messages recieved in the xml response. As a
- result, systems with APCI enabled would soft power off leaving, systems
- running instead of properlly fencing them.
-
- A new option, ribcl, was added to the agent to force the protocol to use
- when trying to send the power off command. Setting this value to "2.21"
- might be required to work around some versions of ilo on machines with APCI
- enabled. If left blank, the protocol version is autodetected.
-
-2005-07-28 Lon Hohberger <lhh at redhat.com>
-
- Fix 159767
-
- Fix 163651
-
-2005-07-28 David Teigland <teigland at redhat.com>
-
- remove trailing whitespace
-
- replace spaces with tabs
-
- add file for kernel patch
-
- include gfs2.txt in kernel patch
-
- depend stuff
-
- The max num_glockd was lowered from 32 to 16 when we switched to using the kthread routines.
-
- To avoid compile warning, replace get_v2ip(aspace) = NULL with set_v2ip(aspace, NULL). Not sure how Ken overlooked this one when replacing all the others...
-
-2005-07-27 Adam Manthei <amanthei at redhat.com>
-
- o make init.d/fenced exit with WARNING instead of FAILED when using gulm cluster management (bz 159685) o more initscript clean ups (bz 155478)
-
-2005-07-27 Chris Feist <cfeist at redhat.com>
-
- file dm-log.h was initially added on branch RHEL4.
-
- file dm-cmirror-xfr.h was initially added on branch RHEL4.
-
- file dm-cmirror-xfr.c was initially added on branch RHEL4.
-
- file dm-cmirror-server.h was initially added on branch RHEL4.
-
- file dm-cmirror-server.c was initially added on branch RHEL4.
-
- file dm-cmirror-common.h was initially added on branch RHEL4.
-
- file dm-cmirror-cman.h was initially added on branch RHEL4.
-
- file dm-cmirror-cman.c was initially added on branch RHEL4.
-
- file dm-cmirror-client.c was initially added on branch RHEL4.
-
- file Makefile was initially added on branch RHEL4.
-
- file uninstall.pl was initially added on branch RHEL4.
-
- file release.mk.input was initially added on branch RHEL4.
-
- file defines.mk.input was initially added on branch RHEL4.
-
- file configure was initially added on branch RHEL4.
-
- file TODO was initially added on branch RHEL4.
-
- file README was initially added on branch RHEL4.
-
-2005-07-27 David Teigland <teigland at redhat.com>
-
- include "locking/harness/lm_interface.h"
-
- generate new kernel patches
-
- adds gfs2 to kernel build
-
- used to generate kernel patch where we need <linux/dlm.h>
-
- quotes around lm_interface include
-
- get lm_interface.h from .
-
- get lm_interface.h from ../harness
-
- typo bug "&atomic_read()", remove &
-
- add 2005 to copyright
-
- reorder/indent for readability
-
- remove unused options
-
- remove define parens
-
- fix typo bug from list macro conversion
-
-2005-07-26 David Teigland <teigland at redhat.com>
-
- remove/change comments that are out of date or unnecessary
-
-2005-07-26 Daniel Phillips <phillips at redhat.com>
-
- add interface to specify initial socket as ascii fdnumber to avoid exporting sys_socket and sys_connect
-
-2005-07-26 David Teigland <teigland at redhat.com>
-
- replace __inline__ with inline
-
- use msleep() instead of schedule_timeout()
-
- Only allow one of the lock_dlm threads to do blocking callbacks. It appears that gfs2 will wait for a completion callback within a blocking callback, so one thread must always be available to do completions.
-
-2005-07-25 David Teigland <teigland at redhat.com>
-
- use kthread functions
-
- don't build unused debug header
-
- use list_for_each_entry
-
- munging to fix lines over 80 and other odd line breaks (leave a bunch over 80 that can't be trivially fixed)
-
- depends on SYSFS Signed-off-by: Adrian Bunk <bunk at stusta.de>
-
-2005-07-22 David Teigland <teigland at redhat.com>
-
- Remove ENTER/RETURN macros used for profiling and tracing debugging.
-
-2005-07-21 David Teigland <teigland at redhat.com>
-
- remove more define parens remove GFS2_RELEASE_NAME
-
- remove parens from defined values, fix lines over 80
-
- function type and name on same line is preferred style
-
- cleanup and tidying - remove parens around defined values - use tabs where appropriate - prune excessive commenting (some of which may not apply to gfs2)
-
- Carry out Ken's instructions from gfs2_ondisk.h to change the ondisk format: make mh_type and mh_format into uint16_t make de_name_len and de_type into uint8_t
-
-2005-07-20 Lon Hohberger <lhh at redhat.com>
-
- Fix 159637
-
-2005-07-20 David Teigland <teigland at redhat.com>
-
- fix mistake from converting to list_for_each
-
-2005-07-20 Jonathan Brassow <jbrassow at redhat.com>
-
- - do not call completion on every suspend, it increments a counter which causes wait_for_completion()'s to proceed w/o waiting.
-
-2005-07-19 Jonathan Brassow <jbrassow at redhat.com>
-
- - don't call complete() on failure_completion if we are in "core" mode.
-
-2005-07-19 David Teigland <teigland at redhat.com>
-
- tidying and filling out comments
-
- function type and name on same line, use list_for_each_entry
-
- kernel people like function type and name on same line
-
- Significant cleanup, lots of style stuff
-
-2005-07-15 David Teigland <teigland at redhat.com>
-
- wait to add second mounter until gfs's initial recovery is done on first mounter (gfs does others_may_mount)
-
- - simplify a bunch of old junk - wait for all recoveries to complete before processing any joins/leaves
-
- global "joining" var needs to be per lockspace
-
- add
-
-2005-07-14 Patrick Caulfield <pcaulfie at redhat.com>
-
- interesting typo.
-
-2005-07-14 David Teigland <teigland at redhat.com>
-
- use a constant message size between libgroup and groupd
-
- -n used with gnbd commands
-
-2005-07-13 Jonathan Brassow <jbrassow at redhat.com>
-
- - add cluster "core" log support
-
- - cluster mirror is working again, but requires patches to kernel
-
-2005-07-12 Lon Hohberger <lhh at redhat.com>
-
- fix 157327
-
-2005-07-12 Patrick Caulfield <pcaulfie at redhat.com>
-
- file saClm.h was initially added on branch STABLE.
-
- file saAis.h was initially added on branch STABLE.
-
- file clm.c was initially added on branch STABLE.
-
-2005-07-12 Lon Hohberger <lhh at redhat.com>
-
- Apply patch from Eric Kerin to fix #162824, fix #162936
-
-2005-07-12 Jonathan Brassow <jbrassow at redhat.com>
-
- - Bring back up to sync with latest mirror changes - New function added (*is_remote_recovering)() - resturcture log dev failure detection
- - Need to add pre/post suspend support
-
-2005-07-11 Lon Hohberger <lhh at redhat.com>
-
- Fix type causing verify-all to not work properly
-
-2005-07-08 Lon Hohberger <lhh at redhat.com>
-
- \Fix 162805\
-
-2005-07-06 Jonathan Brassow <jbrassow at redhat.com>
-
- - last commit before major changes... don't want to loose this.
-
-2005-07-06 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix device refcounting
-
-2005-07-06 Adam Manthei <amanthei at redhat.com>
-
- add fence_drac to default build
-
-2005-07-05 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- added a warning.
-
-2005-06-30 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- same sort of compiler fixes that i did in userspace.
-
-2005-06-30 David Teigland <teigland at redhat.com>
-
- Last change was not correct, it's a second mount we need to delay completing until first_done.
-
- When we're the first mounter, wait for "first_done" (set by others_may_mount) before completing the start.
-
- add "first_done" sysfs file for dlm_controld to be notified of gfs's others_may_mount()
-
-2005-06-28 Adam Manthei <amanthei at redhat.com>
-
- o man page for fence_drac o updates to usage to include ccs options
-
- Support for Dell Remot Access Card III/XT
- This replaces the racadm call with direct access to the telnet interface of
- the DRAC. This will require the user to first enable the telnet interface.
- The update has been tested on the following hardware. A more comprehensive
- list needs to be created.
-
- The following agent has been tested on:
-
- Model DRAC Version Firmware
- ------------------- -------------- ----------------------
- PowerEdge 750 DRAC III/XT 3.20 (Build 10.25)
-
-2005-06-27 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- gcc4 hates me. This fixes an occasional bug where services cannot login to gulm.
-
-2005-06-27 David Teigland <teigland at redhat.com>
-
- ack stop callbacks
-
- Add new phase to wait for application acks following a stop callback.
-
-2005-06-23 David Teigland <teigland at redhat.com>
-
- fix Makefiles for install
-
- When a lockspace on a remote node is not found for a recovery status request, we need to treat this as if it did exist and has a 0 recovery status.
-
- Need to release the list of root rsb's when recovery is aborted early.
-
- incorrect logic in telling kernel when join/leave was complete
-
- file INSTALL was initially added on branch STABLE.
-
-2005-06-22 David Teigland <teigland at redhat.com>
-
- If recover_locks() on an rsb doesn't find any locks to recover, we need to clear the NEW_MASTER flag since it won't be cleared by dlm_recovered_lock(). Also add an assert that NEW_MASTER is set in dlm_recovered_lock().
-
- need to copy the rsb's hash into the remove message
-
- Per-lockspace option for dlm to run without using a resource directory. What would be the directory node for a resource, is statically assigned to be the master node instead. - no directory lookups are done which speeds up most new requests - the first node to lock a resource is now unlikely to be the master for it, slowing down other cases - combined with directory weights, the dlm can be configured to run as a "lock server" where the lock master has a weight of 1 and all others [...]
-
- file VERSION was initially added on branch STABLE.
-
- file COPYING was initially added on branch STABLE.
-
-2005-06-21 Benjamin Marzinski <bmarzins at redhat.com>
-
- Adding Fabio Massimo Di Nitto's patch to keep up with changes in the kernel inode structure.
-
-2005-06-21 David Teigland <teigland at redhat.com>
-
- get to compile on 2.6.12
-
- dlm builds on 2.6.12
-
-2005-06-17 Lon Hohberger <lhh at redhat.com>
-
- Don't use _syscall macro, patch from Adam Conrad
-
-2005-06-16 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add some (hopefully helpful) comments
-
-2005-06-16 David Teigland <teigland at redhat.com>
-
- Resolve potential recovery problems in dealing with an rsb prior to the master nodeid being confirmed. This simplifies the handling of the master confirmation in general, too.
-
-2005-06-15 Patrick Caulfield <pcaulfie at redhat.com>
-
- use umask so that permissions on /etc/cluster/cluster.conf are -rw-r-----
-
-2005-06-15 Jonathan Brassow <jbrassow at redhat.com>
-
- - use umask so that permissions on /etc/cluster/cluster.conf are -rw-r-----
- Thanks to Fabio Massimo Di Nitto for spotting this.
-
-2005-06-15 David Teigland <teigland at redhat.com>
-
- New way of controlling the dlm, no longer mirrors groupd callbacks.
-
- different sysfs hooks for controlling the dlm
-
- Big rework of lockspace control/management. Simplifies things significantly and removes a lot of code.
-
-2005-06-15 Jonathan Brassow <jbrassow at redhat.com>
-
- - fix for bug 157094
- A mysterious error being generated when trying to do a broadcast (sendto):
- ccsd[1704]: Unable to perform sendto: Cannot assign requested address
-
- On certain clusters (seems to be when ccs tries using IPv6), this error
- could show up 9 out of 10 times. When the error was received, the
- broadcast attempt would fail. This caused the attempt to grab any
- possibly updated cluster.conf files to abort.
-
- Waiting a moment, closing the socket, reopening the socket, and retrying
- the broadcast seems to solve the issue. (It has work 100+ times so far.)
-
- I'm not entirely certain what is causing the initial try to fail - perhaps
- the underlying subsystem is not quite ready... In any case, I have never
- seen a second attempt fail.
-
-2005-06-14 Lon Hohberger <lhh at redhat.com>
-
- Fix bug in ip.sh which would match 10.1.1.1 as being the same as 10.1.1.111
-
-2005-06-14 Daniel Phillips <phillips at redhat.com>
-
- Initial add, ddraid
-
-2005-06-10 Patrick Caulfield <pcaulfie at redhat.com>
-
- Put saved messages on the right lists
-
-2005-06-10 Lon Hohberger <lhh at redhat.com>
-
- Add Patrick's initial fence_xen to fence Xen virtual machines.
-
-2005-06-09 David Teigland <teigland at redhat.com>
-
- Replace test_bit(), set_bit(), clear_bit() of rsb flags with rsb_flag(), rsb_set_flag(), rsb_clear_flag() which use the less expensive non-atomic bit operations. c.f. include/net/sock.h
-
-2005-06-09 Patrick Caulfield <pcaulfie at redhat.com>
-
- cmand depends on commands.o not commands.c
-
-2005-06-08 David Teigland <teigland at redhat.com>
-
- Use ccs to get a node's optional weight value.
-
- default weight is 1 not 0
-
- Use node weights in directory node mapping. A node is responsible for a portion of the directory equal to it's weight divided by the sum of weights from all nodes. By default a node has a weight 1. All nodes with weight 1 is the standard old behavior. If all nodes have weight 0, all revert to weight 1.
-
-2005-06-08 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix crash with barriers, caused by overtidying.
-
- ccs.h is not really a dependancy
-
-2005-06-07 Lon Hohberger <lhh at redhat.com>
-
- Add patch from Frederik Schueler to remove implicit dependency on rdisc
-
-2005-06-06 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- Added some diagnostic messages for when clients/slaves cannot connect to a LT. They're under the Network2 verbosity setting.
-
-2005-06-06 Patrick Caulfield <pcaulfie at redhat.com>
-
- Move a bit more stuff around. Fix Makefile dependancies
-
-2005-06-03 Patrick Caulfield <pcaulfie at redhat.com>
-
- A bit more tidying.
-
- Fix some comments
-
-2005-06-03 David Teigland <teigland at redhat.com>
-
- This patch makes needlessly global code static. Signed-off-by: Adrian Bunk <bunk at stusta.de>
-
- look through correct list (members_gone, not members) for recovering node when gfs does recovery_done
-
- adjust some log_error() messages and open syslog when daemonized
-
- Add two comments in set_master() explaining how things work.
-
- When an outstanding lookup is re-processed after recovery, the MASTER_WAIT flag needs to be cleared first or the lkb will be made to wait on the rsb's lookup list, i.e. waiting for itself. Also add a FIXME comment describing a related recovery scenario we don't yet handle correctly.
-
- All lookups outstanding when recovery happens need to be resent after recovery. The RESEND flag was not being set on these lkb's, through, so the lookups were never being resent.
-
- when freeing locks for withdraw, don't try to free fake lvb's
-
-2005-06-02 David Teigland <teigland at redhat.com>
-
- correctly interpret the return value of do_barrier
-
- don't need to include lvb_table.h
-
-2005-06-01 A. J. Lewis <alewis at redhat.com>
-
- o Fix for fenced portion of bz #155478
-
-2005-06-01 Patrick Caulfield <pcaulfie at redhat.com>
-
- I always miss one of 'em.
-
- move everything around! split cman into several files:
- cnxman.[ch] Comms
- membership.[ch] Membership thread
- commands.[ch] Processes commands from libcman
- barrier.[ch] Barrier code
- logging.[ch] Logging
- daemon.[ch] Daemon control. the select loop & messaging.
-
-2005-06-01 David Teigland <teigland at redhat.com>
-
- recovery timer can't be global, it must be per-lockspace
-
-2005-06-01 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add option for 2-node cluster. Fix create help. Fix buffer overflow if output filename was longer than input filename.
-
-2005-06-01 David Teigland <teigland at redhat.com>
-
- fix calculation of previous low nodeid
-
- look through correct list for failed nodes needing recovery
-
-2005-06-01 Patrick Caulfield <pcaulfie at redhat.com>
-
- Use sockaddr_storage rather than sockaddr_in6
-
-2005-06-01 David Teigland <teigland at redhat.com>
-
- start group id's at 1 instead of 0
-
- close fd's of dead clients
-
- - include everything that needs sending in the standard message struct instead of having extra data follow the msg struct - fix up how to_nodeid is handled in messages so it gets byte swapped like the other fields
-
-2005-06-01 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix potential SMP race
-
-2005-06-01 David Teigland <teigland at redhat.com>
-
- remove repeated include of module.h header
-
- munging to match upstream correction of export symbol lvb_operations
-
- Work around gcc-2.95.x macro expansion bug (from akpm)
-
-2005-05-31 David Teigland <teigland at redhat.com>
-
- kobject was being freed too early in withdraw
-
- use correct list field in group struct
-
- only print debug lines to stderr when -D is used
-
- remove noisy debug line
-
- remove temp debug bits, add 'dump' option to get debug log from groupd
-
- new file
-
- bits for withdraw
-
- only print debug info to stderr when -D is used
-
- changes to debug logging
-
-2005-05-31 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fail if the nodename maps to the loopback device.
-
-2005-05-30 David Teigland <teigland at redhat.com>
-
- export dlm_lvb_operations symbol so dlm_device module can use it
-
-2005-05-27 David Teigland <teigland at redhat.com>
-
- tidy error handling
-
- don't depend on leave state here, always go to groupd
-
-2005-05-27 Patrick Caulfield <pcaulfie at redhat.com>
-
- Bring forward some fixes from the kernel-based cman.
-
-2005-05-27 David Teigland <teigland at redhat.com>
-
- option to list only one group option to connect to groupd as a client for debugging
-
- a lot of fixes, use messages instead of barriers from libcman
-
- changes to debugging output, don't try another leave if one is in progress
-
- Set ls_first for gfs when a spectator is first to mount so gfs can bail out if there are any journals. ls_first still always set for first participant that mounts.
-
- install daemon
-
-2005-05-27 Ken Preslan <kpreslan at redhat.com>
-
- o Fix a bug I introduced that would keep GFS from replaying a journal on first mount. o Fix a race where an incore inode could be dealloced twice. o Other munging.
-
- Fix errors on rebuilds.
-
-2005-05-26 Lon Hohberger <lhh at redhat.com>
-
- Don't assume child nodes exist just because someone asks for them
-
- Ask for node name instead of for the existence of children from ccs
-
-2005-05-26 David Teigland <teigland at redhat.com>
-
- restart events after a delay
-
- tidying, do ifdefs around debugfs functions in a consistent way
-
- fix-dlm-extern-lvb_table.patch
-
- fix-dlm-without-debug.patch
-
- dlm needs 2.6.12, don't build until that's out
-
-2005-05-25 Lon Hohberger <lhh at redhat.com>
-
- Make magma_ucman deliver CE_SHUTDOWN when it should; make magma_tool ignore SIGPIPE so it can trap for closed sockets.
-
-2005-05-25 Jonathan Brassow <jbrassow at redhat.com>
-
- - Teigland's patch to make CCS skip clustering and just read the local cluster.conf
-
-2005-05-25 David Teigland <teigland at redhat.com>
-
- memcpy all the data after cman_get_nodes
-
- copy all the data from cman_get_nodes
-
-2005-05-25 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't lose the port number
-
-2005-05-25 David Teigland <teigland at redhat.com>
-
- use libcman to check if victim has rejoined
-
- Need to check the cn_member field to tell if a node is a member, not just that it's in the list returned from libcman.
-
- not doing patches
-
- list new daemons that need to be started
-
- clean and install in group dir
-
- install groupd and group_tool
-
- build in lock_dlm
-
- add makefile
-
- don't build cman-kernel
-
- build src2 instead of src
-
- remove cman-kernel usage
-
- don't build deprecated cman and sm dirs look for libs and lib headers within the cluster tree
-
- get libdlm.h from the correct place within the tree
-
-2005-05-25 Ken Preslan <kpreslan at redhat.com>
-
- o Allow the appropriate FS-specific mount options to be changed on remount (BZ 156780). o Fix statfs when in spectator mode. o Cheat to make permission() faster. o Simplify truncate code. o Get rid of unnecessary RO flag. o Update man pages. o Other munging.
-
-2005-05-24 Jonathan Brassow <jbrassow at redhat.com>
-
- - fix SEG FAULT
-
-2005-05-24 David Teigland <teigland at redhat.com>
-
- Dynamic journal ids, done here using a simple message through libcman (may want to use dlm locks for this again sometime.)
-
- avoid double free of rsb's lvb when clearing lockspace
-
-2005-05-24 Patrick Caulfield <pcaulfie at redhat.com>
-
- Use getaddrinfo rather than the (obsolete) gethostbyname2 call.
-
-2005-05-24 David Teigland <teigland at redhat.com>
-
- zero padding for id
-
- complete some missing bits; verify cluster name at mount, verify fence domain is joined at mount, support spectator option
-
- simplify code in the mount path
-
- fix uninitialized pointer in daemon, handle get_groups properly in lib when there are none to return
-
- align text
-
- recognize get_group request in daemon, use memcpy for info data, print debug state in group listing
-
- munge group data returned in query
-
-2005-05-23 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- fixup man page.
-
-2005-05-23 Patrick Caulfield <pcaulfie at redhat.com>
-
- Only print "waiting for cman" if verbose flag is set.
-
- deprecated.
-
- Add a userland-cman plugin for magma. I've only tested this with ccsd. Lon, you might like to check this !
-
-2005-05-23 David Teigland <teigland at redhat.com>
-
- implement group_get_group() to get info for single group
-
- make spectator and withdraw options visible through sysfs
-
- Implement join/leave info: a small string of app-specific data that an app can provide when joining or leaving that can be read by the other members.
-
- some byte-swapping calls were still commented out remove unused length field in message
-
- remove devel files
-
- replace with new version of lock_dlm in devel/
-
- put back flags to ignore certain messages, other minor stuff
-
-2005-05-20 David Teigland <teigland at redhat.com>
-
- initial bits to report group listing
-
- fix leave
-
- re-enable byte-swapping of messages
-
-2005-05-20 Patrick Caulfield <pcaulfie at redhat.com>
-
- unregister_lockspace() now works.
-
-2005-05-20 David Teigland <teigland at redhat.com>
-
- the call to process_recover_msg() had been commented out during porting and never uncommented
-
- - remove the group struct when we're done leaving - don't reference ev struct after it may have been freed
-
- various fixes completing switch to libgroup
-
- return 0 on success from group_join/leave
-
- build fence_tool
-
- add comment
-
- join/leave now just send messages to fenced which must already be running
-
- changing things so group_join/group_leave are initiated by fence_tool messages
-
- munging
-
-2005-05-19 Chris Feist <cfeist at redhat.com>
-
- Changes to the way the local build works:
- Instead of running a make install from the top level into a 'build'
- directory we now just configure each package with the proper include
- directories for header files and libraries. This should help prevent
- accidently using files that are locally installed on the system (instead
- of the files in CVS).
-
- This should also make it easier for external people to build from HEAD.
-
- Please let me know if there are problems or something doesn't work
- quite right.
-
-2005-05-19 David Teigland <teigland at redhat.com>
-
- better debug output
-
- clear old recovery flags (LOCKS_VALID) when recovery begins
-
- don't build fence_tool, not updated yet
-
- new version using libgroup and libcman
-
- add missing make_args
-
-2005-05-19 Ken Preslan <kpreslan at redhat.com>
-
- o Changed the lookup so it doesn't need to take the new inode's glock. This simplifies it a lot. o Other cleanup.
-
- Fix BZ158133. Fix an oops that occurs when an acl is set that consists of nothing but a header.
-
- munge
-
- Fix BZ158133. Fix an oops that occurs when an acl is set that consists of nothing but a header.
-
-2005-05-18 Chris Feist <cfeist at redhat.com>
-
- Added LDFLAGS variable in Makefile so dlm_tool will build if libdlm_lt is not installed.
-
-2005-05-18 David Teigland <teigland at redhat.com>
-
- missed new file
-
- add group_leave arg
-
- add daemon and dlm_tool
-
- fix sprintf's
-
- really use libgroup
-
- use libgroup
-
- add Makefile
-
-2005-05-18 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add dummy struct to keep compilation clean.
-
- Missed header, sorry.
-
-2005-05-18 David Teigland <teigland at redhat.com>
-
- don't add duplicate local addresses
-
- add \n to printk's
-
- change read_lock to read_unlock
-
-2005-05-17 Patrick Caulfield <pcaulfie at redhat.com>
-
- Build against dlm-kernel/src2 This (temporarily I hope) disables the query interface as dlm2 only has the base locking primitives ATM.
-
- Improve "can't connect to cman" error.
-
-2005-05-17 David Teigland <teigland at redhat.com>
-
- remove unused function
-
- add _GPL to EXPORT_SYMBOL
-
-2005-05-16 Patrick Caulfield <pcaulfie at redhat.com>
-
- Use a different method for findin broadcast addresses. interfaces of the for "eth0:0" are now usable.
-
-2005-05-16 David Teigland <teigland at redhat.com>
-
- don't add connection if accept fails
-
- lib interface for groupd
-
-2005-05-13 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't allow name= as a fence argument as it causes problems.
-
-2005-05-13 David Teigland <teigland at redhat.com>
-
- daemonize
-
-2005-05-13 Lon Hohberger <lhh at redhat.com>
-
- Fix for example.conf
-
-2005-05-12 Lon Hohberger <lhh at redhat.com>
-
- Fix arg swap problem when reading from stdin
-
- Fix arg parsing
-
-2005-05-12 David Teigland <teigland at redhat.com>
-
- no parens around defined values
-
- don't want .orig from patch
-
- change debug message
-
- end files with \n
-
- remove trailing white space
-
- - remove a couple FIXME questions - call confirm_master() in grant_after_purge() in case the node became master of the rsb during recovery and had locks waiting for master confirmation before being processed
-
- fix up some comments
-
- - get all lines under 80 - replace printk with log_print() - remove unused function
-
- remove the timeout in wait_function which was for debugging, and don't print all rsb's when clearing the recover_list
-
- Move recover_rsbs() to the main recovery section, requires a new status barrier after recover_locks().
-
- dlm_recover_members_wait() and dlm_recover_directory_wait() moved to recover.c; wait_status functions are now static
-
- Wait until all locks are recovered before doing lvb recovery. This simplifies the process and doesn't waste time running the lvb recovery routine multiple times on some rsb's.
-
- spinlock fix from patrick
-
-2005-05-12 Ken Preslan <kpreslan at redhat.com>
-
- Fix bug #129468 Serialize the block mapping code so a writepage() call can't see the file tree in an inconsistant state.
-
-2005-05-11 Ken Preslan <kpreslan at redhat.com>
-
- Refix a problem with the rename lock. Don't associate it with rename transactions.
-
-2005-05-11 Lon Hohberger <lhh at redhat.com>
-
- fix targetted relocation bug when running with gulm
-
- Bull PAP + Bull IPMI-over-LAN support
-
-2005-05-11 Ken Preslan <kpreslan at redhat.com>
-
- Fix a couple of rename() bugs.
-
-2005-05-11 Lon Hohberger <lhh at redhat.com>
-
- Fix API change: we no longer get Logged_out after Fenced
-
-2005-05-10 Ken Preslan <kpreslan at redhat.com>
-
- gfs2_jadd and gfs2_grow.
-
- o Add back code to support gfs2_grow and gfs2_jadd. o Start checking for dirty journals when freezing again.
-
-2005-05-10 Lon Hohberger <lhh at redhat.com>
-
- Fix fd leak, change resource-group -> service, fix node ID display
-
- Fix file descriptor leak in services.c
-
-2005-05-10 Patrick Caulfield <pcaulfie at redhat.com>
-
- Refill the nodes write queue once we are woken up after -EAGAIN.
-
-2005-05-10 David Teigland <teigland at redhat.com>
-
- use cman barriers again
-
- adjust size of write, remove prints
-
-2005-05-09 Lon Hohberger <lhh at redhat.com>
-
- Fix 157248
-
-2005-05-09 Patrick Caulfield <pcaulfie at redhat.com>
-
- Address numbers start at 1
-
- Add options to cman_dispatch() so that callers can filter out non-interesting messages. These will be saved on a list and sent when the user is again interested in them.
- This is used by the query functions, they prevent and DATA or EVENT messages
- being dispatched while waiting for (eg) barriers to complete.
-
-2005-05-09 David Teigland <teigland at redhat.com>
-
- send a status request to every member at the start of recovery just to establish lowcomms connections with everyone
-
- make purge_queue() more general purpose, no functional change
-
- Tiny code change to implement significant optimization: if a node receives a lookup and is the master itself, process the lookup as a request and return a request reply.
-
- - big reordering of functions in lock.c to avoid declaring some prototypes at the start - add inline to a bunch of lock.c functions - make lock_rsb/unlock_rsb lock.h inlines
-
-2005-05-07 Ken Preslan <kpreslan at redhat.com>
-
- Update.
-
- Fix problem of writepage() needing to map blocks at weird times when another process might be changing the metadata tree. Added some locking so the writepage never sees an inconsistent tree.
- Plus some cleanups in the recusive glocking code.
-
- Add "gfs2_tool getargs" to get the gfs-specific mount arguments used to mount a filesystem.
-
-2005-05-06 Ken Preslan <kpreslan at redhat.com>
-
- Clean up journaled data code and metadata I/O code.
-
-2005-05-06 David Teigland <teigland at redhat.com>
-
- ignore start events if lockspace is running to avoid an assert failure
-
- NEW_MASTER flag wasn't being cleared on rsb's remastered locally
-
- move is_master() to lock.h and use it in recover.c
-
-2005-05-06 Ken Preslan <kpreslan at redhat.com>
-
- Unlock the page when erroring out of writepage().
-
- Fix a misinitialization in the diaper device.
-
-2005-05-05 Lon Hohberger <lhh at redhat.com>
-
- Arbitrary resource tree patch
-
-2005-05-05 Ken Preslan <kpreslan at redhat.com>
-
- Munge.
-
- Fix broken makefile.
-
-2005-05-05 David Teigland <teigland at redhat.com>
-
- status replies include a new "rcom_config" struct that is used to verify config params (like lvb length) are the same between nodes
-
-2005-05-05 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add the new commands to the ccs_tool man page. and fix a bad example.
-
-2005-05-05 David Teigland <teigland at redhat.com>
-
- improve comments and remove log_print about partial messages
-
- tidy a few things
-
-2005-05-05 Patrick Caulfield <pcaulfie at redhat.com>
-
- If we failed to resolve the broadcast address, print the interface. 100:1 it will always read "lo".
-
-2005-05-05 David Teigland <teigland at redhat.com>
-
- fix a couple remaining over-80 lines
-
-2005-05-05 Ken Preslan <kpreslan at redhat.com>
-
- o Honor "data=ordered" for truncates o Partially completed truncates now resume after a crash o Fix a big performance problem caused by a mis-initialization in the diaper code. o Be smarter about deallocations when "data=ordered" is used. o Misc munging
-
-2005-05-04 Benjamin Marzinski <bmarzins at redhat.com>
-
- Heres my fix of a fix of a fix. I wasn't initializing a list that needed to be initialized.
-
-2005-05-04 David Teigland <teigland at redhat.com>
-
- byte swapping wrong size in rcom struct
-
-2005-05-04 Patrick Caulfield <pcaulfie at redhat.com>
-
- Remove some unnecessary includes. InitParser before doing a create. It doesn't seem to be necessary now...but.
-
-2005-05-04 David Teigland <teigland at redhat.com>
-
- specify lvblen when creating lockspace, 32 bytes
-
- kernel apps must specify the lvb size they'd like (multiple of 8 bytes) user apps continue to have a fixed size of 32 bytes
-
- do a schedule/retry when kernel_sendmsg() returns -EAGAIN, a work-around until write_space() works on the socket
-
- style stuff, mainly making lines under 80
-
- make the waitqueue usage more standard
-
-2005-05-03 Patrick Caulfield <pcaulfie at redhat.com>
-
- Move cluster_conf into ccs_tool
-
-2005-05-03 David Teigland <teigland at redhat.com>
-
- - changes to debug messages - increase size of tmp buffer in midcomms - null terminate string of nodeids from sysfs
-
-2005-05-03 Patrick Caulfield <pcaulfie at redhat.com>
-
- Check in the source rather than a binary, sigh
-
- Add command-line utility for managing cluster.conf files.
-
-2005-05-03 David Teigland <teigland at redhat.com>
-
- skip barriers for now
-
- improve debug logging
-
-2005-05-03 Benjamin Marzinski <bmarzins at redhat.com>
-
- This fixes bz # 156635. A variable that I allocated statically in my fix for 155597 needed to be allocated dynamically.
-
-2005-04-29 Ken Preslan <kpreslan at redhat.com>
-
- Don't do write_inode if we're PF_MEMALLOC. Munging.
-
- munge.
-
- Fix ACL leak.
-
-2005-04-29 Benjamin Marzinski <bmarzins at redhat.com>
-
- Fix for bz #155597. GFS used to be able to write over a portion of the log while it was still needed. The fixes that.
-
-2005-04-29 Lon Hohberger <lhh at redhat.com>
-
- Fix frim Birger
-
-2005-04-29 David Teigland <teigland at redhat.com>
-
- need del_timer_sync() with the new timer-based dlm_wait_function() that was recommended
-
-2005-04-28 David Teigland <teigland at redhat.com>
-
- patch from Steve Dake to avoid using clm library
-
- ast_queue_lock can be a spinlock
-
-2005-04-28 Ken Preslan <kpreslan at redhat.com>
-
- Add back NFS support.
-
-2005-04-27 Ken Preslan <kpreslan at redhat.com>
-
- Get rid of an osi_.
-
-2005-04-27 Lon Hohberger <lhh at redhat.com>
-
- Fix timeouts for 32-way bull machines
-
-2005-04-27 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- gcc4-isms
-
- fixup libs
-
-2005-04-27 David Teigland <teigland at redhat.com>
-
- - need to lock_rsb/unlock_rsb in recover_locks() because dlm_recover_process_copy() may operate on the same rsb before we're done - in recover_locks() we should only add the rsb to the recover_list if there were locks recovered for it, it was added unconditionally - need to break from dlm_recover_locks() if recover_locks() returned an error, we weren't checking the return value CVS ----------------------------------------------------------------------
-
- spell out DLM at the top
-
- - check if lvb alloc failed - move new code for async convert into send_convert (cleaner)
-
-2005-04-27 Patrick Caulfield <pcaulfie at redhat.com>
-
- events are not REPLYs.
-
- Allow cman_tool to override the node name when joining.
-
-2005-04-27 David Teigland <teigland at redhat.com>
-
- - set lkid in user's lksb earlier so they don't see 0 - do async (ack-less) remote down-conversions
-
-2005-04-27 Patrick Caulfield <pcaulfie at redhat.com>
-
- Use local libcman
-
-2005-04-27 David Teigland <teigland at redhat.com>
-
- go back to schedule_timeout() instead of msleep() in dlm_scand, not sure what the msleep was doing
-
- - dynamically adjust the delay when polling a node for its status, starting with 20 ms and adding 20 each time. - add to debug message the time recovery took
-
- don't wrap wait_event in an infinite loop and use a timer
-
- also return -EBUSY for convert if lkb_wait_type is non-zero
-
- put the '*' just to the left of the structure field
-
-2005-04-27 Ken Preslan <kpreslan at redhat.com>
-
- Fuzzy statfs(): When statfs() is called, the return value is the state of the whole filesystem was in sometime in the last X seconds plus any local changes. This algorithm is very similar to the way we do quotas. X is a tunable parameter, statfs_quantum. (The default is 60 seconds.) A statfs() call now requires no network or disk I/O.
-
-2005-04-26 Ken Preslan <kpreslan at redhat.com>
-
- Add some new block types.
-
- Rearrange some assignments to work with gcc4.
-
-2005-04-26 Patrick Caulfield <pcaulfie at redhat.com>
-
- Use local libcman
-
-2005-04-26 David Teigland <teigland at redhat.com>
-
- make scan/toss_secs dlm_config values, get rid of empty lockspace_exit
-
- was hoping to avoid this, but search on every lkid we create to verify it's not in use
-
-2005-04-26 Patrick Caulfield <pcaulfie at redhat.com>
-
- Undo some of the "tidying" done by indent.
-
- Use rwlock rather than rw_semaphore
-
-2005-04-26 David Teigland <teigland at redhat.com>
-
- depends on INET, select IP_SCTP
-
-2005-04-26 Patrick Caulfield <pcaulfie at redhat.com>
-
- Remove some redundant stuff. change uint*_t to __u*
-
-2005-04-26 David Teigland <teigland at redhat.com>
-
- misc other formatting and tidying from reviews
-
- newlines
-
- some misc tidying, use printk log levels
-
- - get rid of parentheses around defined values - use the kernel.h max_t() instead of our own MAX()
-
- clean up some spots where we don't need error handling, complete the error handling in some other places
-
- use msleep and ssleep instead of schedule_timeout
-
- "But, in any case you might as well move the label 'top' inside the if just before the for loop, since the only place you ever goto top you've just set ri->next to NULL, so you know you are going to end up inside the if in any case, no need to actually do the test every time." Jesper Juhl
-
-2005-04-26 Ken Preslan <kpreslan at redhat.com>
-
- Remove some debug code.
-
- GFS2. Still a work in progress. But it should be faster.
-
-2005-04-25 David Teigland <teigland at redhat.com>
-
- update FIXME comment
-
- read_lock will do when creating root_list
-
- move some recovery-related functions from lock.c to recover.c
-
- more fixes
-
- adjust
-
- Initial untested code for recovering conversions between PR and CW.
-
- reduce debug noise
-
- In-progress down-conversions should just be completed at the start of recovery. Note that PR/CW conversions need work.
-
- return an error if no local addr's are set
-
- free rsb's on toss list during recovery so they don't need to be recovered; wasn't freeing lvb's on rsb's
-
- - grant_after_purge only on master rsb's - dlm_message_in is done before saving on requestqueue (not again after) - reject finish events with incorrect event_nr - don't set lkb_status directly when receiving new master-copy lock during recovery; add_lkb wants to set that itself - hold/put lkb needed around unlock/cancel processing in dlm_recover_waiters_pre (match correct refcounting in normal case) - copy args to lkb in receive_unlock/cancel only after locking the rsb (like we no [...]
-
-2005-04-24 Ken Preslan <kpreslan at redhat.com>
-
- Quit yer whining.
-
- Let there be compilation!
-
- Rearrange order so it actually compiles.
-
-2005-04-23 David Teigland <teigland at redhat.com>
-
- Pass nodeid/addr info directly from node_ioctl.c to lowcomms where it's used, removing the extra staging of the info in member.c where it's not relevant. Also a little lowcomms tidying.
-
-2005-04-22 Lon Hohberger <lhh at redhat.com>
-
- msg_init isn't ready yet; remove for now
-
-2005-04-22 Patrick Caulfield <pcaulfie at redhat.com>
-
- Make debugging comfigurable without a recompile. Read config variables (those that were in /proc) from CCS.
-
- Lots more comments in libcman.h Rename cman_get_join_count() to cman_get_subsys_count() to avoid confusion.
-
-2005-04-22 David Teigland <teigland at redhat.com>
-
- Fix one of the big fixme's: immediately after finding the lkb in dlm_lock() and dlm_unlock() we were checking and filling in the lkb's fields all without the rsb locked. We now pass the necessary input args down to the next stage so they can be safely saved in the lkb after the rsb is locked.
-
- remove some complexity
-
- get rid of DLM_RELEASE_NAME
-
- update description of dlm.h flags
-
- remove query bits that were commented out of device code
-
- seems EXPORT_SYMBTAB isn't used any more
-
-2005-04-21 Lon Hohberger <lhh at redhat.com>
-
- Fix GCC4 warnings
-
-2005-04-21 Patrick Caulfield <pcaulfie at redhat.com>
-
- argv[0] should be "cmand" not "cman"
-
-2005-04-21 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- install symlinks to the .so make .a with ar not ld
- - patch via Fabio M. Di Nitto
-
-2005-04-21 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't leave debugging on by default.
-
- libcman to go with userland cman daemon
-
- Userland cman daemon.
-
-2005-04-21 David Teigland <teigland at redhat.com>
-
- - remove hierarchical sections that were commented out so it can all be added together - clear up naming inconsistency lkid/remid parent_lkid/parent_remid
-
- remove sbf flag
-
-2005-04-20 Lon Hohberger <lhh at redhat.com>
-
- Add NBB1600 support + fix IPS800[CE] support
-
-2005-04-20 Patrick Caulfield <pcaulfie at redhat.com>
-
- zero the difference between a sockaddr_* and a sockaddr_storage
-
- use lvm_operations array to determine whether the LVB was updated or not.
-
-2005-04-20 David Teigland <teigland at redhat.com>
-
- Move the __lvb_operations table into lvb_table.h so it can be included by device.c
-
- use long to save pointer val
-
- pack_rcom_lock/receive_rcom_lock_args was missing lkb_status and astaddr's
-
- use prefered inline
-
- Improve logic that delays and reduces fencing. When fenced is recovering for a failed node, the 'post_fail_delay' is used to give victims some time to rejoin the cluster and avoid being fenced. If this happens once, then it's likely to happen again and the 'post_join_delay' is more appropriate, so fenced switches to the 'post_join_delay' value (if it's larger which is usually the case.)
- The common situation where this helps is when multiple nodes fail causing
- the cluster to lose quorum and then the failed nodes all rejoin the
- cluster at about the same time. The rejoining nodes are more likely
- to all avoid being fenced if fenced uses the larger post_join_delay.
-
- lock_dlm now exits, and pool doesn't
-
- a couple updates
-
- queries are waiting until after the first round
-
- remove print formats we're not using
-
- patches used by 'make patches' to generate complete dlm.patch
-
- update make patches
-
- build stuff
-
-2005-04-19 Lon Hohberger <lhh at redhat.com>
-
- Fix options description
-
-2005-04-19 David Teigland <teigland at redhat.com>
-
- unmount bits
-
- recover_done, not done is sysfs file name
-
- don't confuse lock_dlm's uevents as ours
-
- misc fixes
-
- userspace version of kernel's list.h
-
- lock_dlm daemon manages mount-group membership in userspace
-
- wasn't closing fd's for sysfs files
-
- include groupd.h
-
- process group manager
-
- preparing to build from linux/drivers/dlm/
-
- update copyrights
-
- - make functions static - add dlm_ prefix to some functions - remove stuff not being used
-
- byte swapping
-
-2005-04-18 Benjamin Marzinski <bmarzins at redhat.com>
-
- fixed bug that caused gnbd_monitor to only successfully monitor a device until it failed once. Also, made it so gnbd_monitor didn't wait for all the users of a failed device to close it before trying to reimport it.
-
-2005-04-18 David Teigland <teigland at redhat.com>
-
- use correct libcman
-
- can now use openais
-
- most of the byteswapping
-
- dlm_member gone
-
- dlm_node.h replaces dlm_member.h add empty byte swapping functions
-
- node ioctl changes
-
- simplify the ioctl bits now that they're only used for setting node addresses, and rename to node_ioctl since it's no longer related to lockspace membership
-
-2005-04-15 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add DLM_SBF_LVBUPDATED, needed by userland i/f
-
- Seperate out device.c into its own module that only depends on the external DLM interfaces.
-
-2005-04-15 David Teigland <teigland at redhat.com>
-
- cancel waiting locks; remove last lkb ref in both revert/remove_lock so they're consistent
-
- reject invalid event_nr's on start
-
- add missing wake_up
-
- fix bug in recover_master_copy
-
-2005-04-14 Ken Preslan <kpreslan at redhat.com>
-
- Fix bug #154902: Replace the function that gets confused on certain device sizes with a different function -- a new and improved one, that always knows what it's doing.
-
-2005-04-14 Lon Hohberger <lhh at redhat.com>
-
- Fix bonding link detection (port from clumanager 1.2.26)
-
-2005-04-14 David Teigland <teigland at redhat.com>
-
- don't do useful work in an assert macro
-
-2005-04-14 Patrick Caulfield <pcaulfie at redhat.com>
-
- Set unlock artarg
-
-2005-04-14 David Teigland <teigland at redhat.com>
-
- a couple fixes
-
- next version of lock_dlm, a bunch of stuff is moved to userspace
-
- quit waiting for fenced to join (-w) after 10 seconds if fenced hasn't even begun joining yet; usually means fenced has exited
-
-2005-04-13 Adam Manthei <amanthei at redhat.com>
-
- Changes to the init scripts. BZ's 153739 and 153741.
-
-2005-04-13 Jonathan Brassow <jbrassow at redhat.com>
-
- - remove cmirror target
-
-2005-04-13 David Teigland <teigland at redhat.com>
-
- clear up confusing names
-
- update lvb recovery function
-
- misc recover fixes
-
- complete more of the bits that are replacing rebuild.c
-
-2005-04-12 David Teigland <teigland at redhat.com>
-
- changes for debugfs
-
- misc minor updates
-
- comment out noisy logging
-
- refcount fixes, now requires post 2.6.11 version of kref_put
-
- same schedules that were added to the RHEL4 branch so serviced doesn't chew up CPU
-
-2005-04-11 David Teigland <teigland at redhat.com>
-
- outline for last recovery stage that replaces rebuild.c
-
- new rcom routines that use normal lowcomms get/commit_buffer
-
- change to per-ls the list of lkb's waiting for reply, split a couple reply-processing functions to remove some duplicated recovery code
-
-2005-04-08 David Teigland <teigland at redhat.com>
-
- couple fixes and thread to free rsbs
-
-2005-04-08 Jonathan Brassow <jbrassow at redhat.com>
-
- - typos
-
- - no cman on upgrade.
-
- - commit changes so I don't loose them.
-
-2005-04-08 Patrick Caulfield <pcaulfie at redhat.com>
-
- Get userland working again.
-
-2005-04-08 David Teigland <teigland at redhat.com>
-
- several fixes
-
-2005-04-07 Benjamin Marzinski <bmarzins at redhat.com>
-
- Modified gnbd so that it can be used with multipath easier. When you export a gnbd, it will try to grap a unique id from the underlying device with scsi_id. If it can't it will use the gnbd name as the unique id. It is possible to override this with -u. gnbd_import can get the unique id of a device it has with the -d option.
-
-2005-04-07 David Teigland <teigland at redhat.com>
-
- bunch of fixes
-
-2005-04-06 David Teigland <teigland at redhat.com>
-
- better way of returning some errors, more recovery bits
-
- bug fixes
-
- fix some bugs
-
- copy other hash function from gfs which works as well, but without the big table
-
-2005-04-05 David Teigland <teigland at redhat.com>
-
- don't need cluster link
-
- add file
-
-2005-04-05 Patrick Caulfield <pcaulfie at redhat.com>
-
- Say something if sendmsg fails.
-
-2005-04-05 David Teigland <teigland at redhat.com>
-
- remove files
-
- changes to existing code corresponding to new lock.c
-
- add files
-
- some fixes from testing
-
-2005-04-05 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add a test prog that got lost
-
-2005-04-04 David Teigland <teigland at redhat.com>
-
- backup recent work
-
-2005-03-31 David Teigland <teigland at redhat.com>
-
- back up work
-
-2005-03-31 Ken Preslan <kpreslan at redhat.com>
-
- Start including gfs_debug in the build.
-
-2005-03-30 David Teigland <teigland at redhat.com>
-
- backup recent work
-
- an example of using dlm_tool
-
-2005-03-29 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix a couple of memory leaks Initialise idr_members lock
-
-2005-03-29 David Teigland <teigland at redhat.com>
-
- Add version number to the start of all dlm messages to help with future upgrading. This change is incompatible with previous versions of the dlm.
-
- simplify dlm_astd handling by removing the wait_queue; and avoids a possible hang when shutting down dlm threads
-
-2005-03-28 David Teigland <teigland at redhat.com>
-
- add error message
-
- error message
-
- couple fixes
-
- use info from cman to do set_local/set_node calls into the dlm
-
- couple fixes
-
- include event_nr in done message to groupd
-
- another small bit for rsb refcounts
-
-2005-03-26 David Teigland <teigland at redhat.com>
-
- On Fri, Mar 25, 2005 at 03:22:38PM -0800, Daniel McNeil wrote:
- Looking at the code, the problem is a race condition between
- dlm_astd() and release_lockspace(). dlm_astd can pull an
- lkb off the ast_queue and still be processing it while the
- release_lockspace() is running calls dlm_dir_clear() and
- then kfree()s ls->ls_dirtbl. When dlm_astd() calls
- release_rsb() it leads to a dlm_dir_remove() which accesses
- the freed ls_dirtbl which is freed. With slab debug, this
- leads a spinning write_lock() and a hung umount. My machines
- are 2 cpu systems which also might expose the race condition.
-
- The fix is below and is fairly simple, just do the astd_suspend()
- in release_lockspace() before the dlm_dir_clear() and kfree().
- That way astd won't be process lkb on the astqueue will it
- is being freed.
-
-2005-03-25 David Teigland <teigland at redhat.com>
-
- more work, largely refcounting related
-
-2005-03-24 Lon Hohberger <lhh at redhat.com>
-
- Fix timeout bugs
-
-2005-03-24 Patrick Caulfield <pcaulfie at redhat.com>
-
- Remove redundant struct member
-
- Fix memory leak if a joining node fails.
-
-2005-03-24 David Teigland <teigland at redhat.com>
-
- more work
-
-2005-03-23 David Teigland <teigland at redhat.com>
-
- version 2 of the central locking logic, eventually to replace locking.c and lockqueue.c
-
-2005-03-21 Lon Hohberger <lhh at redhat.com>
-
- add init.d to install set
-
- fix warning
-
- Use service instead of resourcegroup as root resource to match the UI and user expected behavior / terminology
-
- Fix various bugzillas (see ChangeLog)
-
-2005-03-21 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix usage message for -n
-
- man pages are wnderful things - when you read them. Use hstrerror rather than strerror to print errros from gethostbyname2_r
-
- Use correct errno when reporting errors from gethostbyname2_r
-
- Set join time on local node
-
-2005-03-18 Benjamin Marzinski <bmarzins at redhat.com>
-
- added man page for gnbd_serv
-
- Syncing head with RHEL4 branch. Added fix for 151321. gnbd now defaults to getting the node name from the cluster manager Added Bastian Blanks patchs to the man pages
-
-2005-03-18 David Teigland <teigland at redhat.com>
-
- change sleep(1) to sleep(5) between a failed fence and a retry
-
-2005-03-18 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't return an error on normal, synchronous, non-threaded unlock
-
-2005-03-18 David Teigland <teigland at redhat.com>
-
- use ls_debug_list for debugfs
-
- fix release and convert actions; use persistent flag on locks
-
- dlm_astd in wait_event_interruptible wasn't being woken by kthread_stop(), so quit using a wait_queue.
-
-2005-03-18 Ken Preslan <kpreslan at redhat.com>
-
- Fix precedence error.
-
-2005-03-17 David Teigland <teigland at redhat.com>
-
- a simple daemon to listen/talk to dlm in the kernel, connecting it with the userland group manager
-
- deal with some errors better
-
- hooks things up to debugfs
-
- making nodeid an int consistently
-
-2005-03-16 David Teigland <teigland at redhat.com>
-
- moving lock dumps to debugfs, copying previous proc.c and ipoib_fs.c
-
-2005-03-16 Patrick Caulfield <pcaulfie at redhat.com>
-
- Increase size of gethostbyname_r buffer and improve error if it fails.
-
-2005-03-16 David Teigland <teigland at redhat.com>
-
- increase DLM_ADDR_LEN to 256 bytes -- must be at least as large as sockaddr_storage (128)
-
- need the sockaddr struct, not a pointer
-
- more addr length fixes
-
- - use the new timeout variety of wait_event - only copy length of sockaddr_storage to lowcomms
-
- remove usage of proc
-
-2005-03-15 David Teigland <teigland at redhat.com>
-
- cman doesn't provide proc entries
-
-2005-03-15 Patrick Caulfield <pcaulfie at redhat.com>
-
- Slightly more sensible error returns for some join functions too.
-
- Replace the old nodeids array with idr_ routines.
-
- Don't need -lpthread
-
- Better error messages
-
-2005-03-15 David Teigland <teigland at redhat.com>
-
- fix output in /sys/kernel/dlm/<name>/members
-
- split some functions into another file so they can be shared
-
-2005-03-14 Lon Hohberger <lhh at redhat.com>
-
- Fix 151095
-
-2005-03-14 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- soft link libs for lon
-
-2005-03-14 Lon Hohberger <lhh at redhat.com>
-
- add resource rule printout to rg_test
-
- Clusterfs.sh / fs.sh fixups
-
- Show stdin options with -h
-
-2005-03-14 David Teigland <teigland at redhat.com>
-
- complete lock code
-
-2005-03-14 Patrick Caulfield <pcaulfie at redhat.com>
-
- Make the _sync calls available to non-pthread applications.
-
-2005-03-14 David Teigland <teigland at redhat.com>
-
- command line interface for libdlm operations create/release/lock/unlock
-
- Use sysfs for lockspace control. And set_id is a new action instead of being part of start.
-
- Use sysfs for lockspace control. dlm-member ioctl's now only used for node id/addr settings.
-
-2005-03-12 Ken Preslan <kpreslan at redhat.com>
-
- Change it so a spectator has a 's' instead of the jid in its fsid.
-
-2005-03-11 Ken Preslan <kpreslan at redhat.com>
-
- Add a new "flags" parameter to lm_mount() of the lock module interface. When the flag LM_MFLAG_SPECTATOR flag is passed in to the lock module, GFS is asking to join the filesystem's lockspace, but it doesn't want to modify the filesystem. The lock module shouldn't assign a journal to the FS mount. It shouldn't send recovery callbacks to the FS mount. If the node dies or withdraws, all locks can be wipped immediately.
- If the lock module doesn't implement the flag, GFS will work as expected
- except that the mount will reserve a journal it will never use.
-
- Add and implement a "spectator" mount option to GFS to take advantage
- of the spectator mount flag. When the mount option is used, the FS
- looks just like a RO filesystem. The difference is you can have lots and
- lots of them.
-
-2005-03-11 Patrick Caulfield <pcaulfie at redhat.com>
-
- Build libcman
-
- Remove unused variable
-
- Don't try to add too many addresses.
-
-2005-03-11 David Teigland <teigland at redhat.com>
-
- make the weight arg optional
-
- copy ast_queue fix from src files
-
- When shutting down a lockspace we can remove lkb's from the ast_queue without holding the ast_queue_lock. The dlm_astd thread is suspended, but it's possible that queue_ast() could be called by someone which modifies the ast_queue. We now do the correct locking.
-
- copy cancel fix from src/
-
-2005-03-10 Ken Preslan <kpreslan at redhat.com>
-
- Munged printk() ordering.
-
- Add "debug" mount option. Causes gfs_assert_warn() and gfs_lm_withdraw() to BUG().
-
-2005-03-10 Patrick Caulfield <pcaulfie at redhat.com>
-
- lowcomms for the new src2 DLM. This uses SCTP for transport and therefore should support multihome systems transparently.
-
-2005-03-10 David Teigland <teigland at redhat.com>
-
- misc small bits, handle >1 local addr.
-
- When gfs does an lm_cancel() we need to do a dlm cancel if that's where the lock is blocked. We were doing nothing. Changes also to deal correctly with the ast result from a dlm cancel and the potential for a cancel to return an error.
-
- Fix problems with cancelation. We weren't dealing with waiting locks being canceled, and we weren't sending back an adequate result for a remote unlock to deal with a cancel.
-
-2005-03-09 Lon Hohberger <lhh at redhat.com>
-
- Properly cast
-
- Change to arch-dependent char instead of uint8_t
-
-2005-03-09 A. J. Lewis <alewis at redhat.com>
-
- o Slight modification to fsck man page for new fsck
-
-2005-03-08 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix dependancies for join_ccs.o
-
- Clean transitionreason after a state transition has finished.
-
-2005-03-08 David Teigland <teigland at redhat.com>
-
- fix small things to get working
-
-2005-03-07 A. J. Lewis <alewis at redhat.com>
-
- o continue instead of breaking on errors in scan_inode_list() o Clear inode's metadata bitmaps when clearing the inode itself o Make sure the variable you're using for the block number is valid
-
-2005-03-07 Lon Hohberger <lhh at redhat.com>
-
- Fix 150481, part 2
-
-2005-03-07 Ken Preslan <kpreslan at redhat.com>
-
- Compiling is always nice.
-
-2005-03-07 Lon Hohberger <lhh at redhat.com>
-
- Misc. bugfixes
-
-2005-03-07 Patrick Caulfield <pcaulfie at redhat.com>
-
- Set close-on-exec flag on DLM file descriptors
-
-2005-03-07 David Teigland <teigland at redhat.com>
-
- matching dlm_nodeid_addr/dlm_addr_nodeid
-
- standard copyright
-
- device node stuff for ioctl, largely copied from dm
-
- #define misc name
-
- Program for managing dlm membership in dlm-kernel/src2.
-
- New dlm development that won't be functional with gfs for a while. - Removing kcl_ calls to cman and replacing with control ioctls.
-
- If node isn't found in sm_members report an error and don't oops. This may be a valid condition, but it's not clear from the info.
-
-2005-03-04 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- Was storing entries under the same name, this prevented withdraw from working when there was more than one filesystem mounted. Fixed.
-
-2005-03-04 Lon Hohberger <lhh at redhat.com>
-
- Fix for multiple simultaneous leaves not being handled properly
-
-2005-03-04 David Teigland <teigland at redhat.com>
-
- Ignore any NEWLOCKS or NEWLOCKIDS messages from a previous instance of recovery.
-
-2005-03-04 Ken Preslan <kpreslan at redhat.com>
-
- Linux 2.6.11.
-
-2005-03-03 Ken Preslan <kpreslan at redhat.com>
-
- Bastian Blank <bastian at waldi.eu.org>'s manpage munging.
-
-2005-03-03 A. J. Lewis <alewis at redhat.com>
-
- o Fix the (d)inode_hash_insert() fxns (fixes bz #149706)
-
- o Update to latest ondisk.h from the s.r.c. gfs kernel source
-
-2005-03-03 Ken Preslan <kpreslan at redhat.com>
-
- Forward-port Tadpol's 146711 fix.
-
-2005-03-03 Lon Hohberger <lhh at redhat.com>
-
- Add -h for clustat / clusvcadm
-
-2005-03-03 A. J. Lewis <alewis at redhat.com>
-
- o increment link count when dealing with bad '.' & '..' entries o Clears up the spurious "Found unused inode marked in-use" msgs (bz #150207) o Make sure disk is synced at end, handle link count for l+f better o Changing GFS_METATYPE_EA -> ED - handles metadata change in GFS 6.1 (bz #150208)
-
-2005-03-03 Lon Hohberger <lhh at redhat.com>
-
- Fix build problem.
-
-2005-03-03 Benjamin Marzinski <bmarzins at redhat.com>
-
- Fixed 146672. While it is still possible to see this bug, the problem that I saw every time it happened to me was that the process in gfs_log_dump() got starved waiting for the sd_log_lock semaphore. This fix changes sd_log_lock into a rw_semaphore, and uses down_write and up_write instead of down and up. read write semaphores are totally fair, so gfs_log_dump() can't get starved
-
-2005-03-03 Patrick Caulfield <pcaulfie at redhat.com>
-
- Tidy printks
-
- Replace the array of connections with functions from linux/idr.h
-
- If we are a new master, don't try to rejoin an old node.
-
-2005-03-02 Lon Hohberger <lhh at redhat.com>
-
- Fix part 2 of #150079
-
- Zero out cm_addrs when reading /proc/cluster/services for a member list
-
-2005-03-02 Patrick Caulfield <pcaulfie at redhat.com>
-
- Set the socket priority to INTERACTIVE to ensure that our messages don't get queued behind anything else
-
-2005-03-02 Lon Hohberger <lhh at redhat.com>
-
- Implement basic recovery policy handling
-
- #149522 #150067. Part of #149735. See ChangeLog.
-
-2005-03-01 Jonathan Brassow <jbrassow at redhat.com>
-
- - fix senario where a server dying could leave clients with regions marked that the new server would not know about, allowing for simultaneous writes and re-syncing operations. (Results in corruption).
- - Use mempool in places where memory allocation failures would make us
- unhappy.
-
- - Some code clean-up
-
- - Other bug fixes that I can't remember.
-
-2005-03-01 Lon Hohberger <lhh at redhat.com>
-
- Add support for Bull NovaScale machines via ipmi-over-lan and PAP management console
-
-2005-03-01 Daniel Phillips <phillips at redhat.com>
-
- Poptize csnap-server, mksnapstore the rest of the way
-
-2005-03-01 Lon Hohberger <lhh at redhat.com>
-
- Misc. fixes; see changelog.
-
-2005-02-28 A. J. Lewis <alewis at redhat.com>
-
- o Convert remaining (f)printf's to log_* o Check malloc and memset return codes, more error reporting - should help with bz#149706
-
-2005-02-28 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't send sequence number of zero, it causes trouble.
-
-2005-02-25 Patrick Caulfield <pcaulfie at redhat.com>
-
- Get rid of spurious "up" in barrier error path.
-
-2005-02-25 David Teigland <teigland at redhat.com>
-
- remove "lkb xxxx exists" message which can flood the console/log. it only occurs during a rare recovery condition
-
- Add a bunch of schedule() calls to potentially-long loops in recovery routines.
-
- checkin removing unfencing wasn't complete, sorry
-
-2005-02-24 David Teigland <teigland at redhat.com>
-
- Remove unfencing since it needs to be reworked and won't be ready for the next release.
-
-2005-02-24 Adam Manthei <amanthei at redhat.com>
-
- uses -t option to cman_tool to time out wait operations
-
-2005-02-23 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- reduced things down to a single ASSERT. passing back error codes and retrying instead. (most of the error codes will cause gfs to withdraw/assert now instead.) Removed the gulm interface from kernel space. Its broken, and it doesn't look like anyone was using it anyways.
-
-2005-02-23 Patrick Caulfield <pcaulfie at redhat.com>
-
- Need this too.
-
- Add ioctl32 support. Thanks to Bastian Blank
-
-2005-02-23 A. J. Lewis <alewis at redhat.com>
-
- o Release buffers after use o Fix double free or corruption after pass 5 (bz#149262)
-
-2005-02-23 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add -t option to join/leave/wait, specifies the maximum amount of time that the operation will wait before giving up (waiting that is). Also cman_tool join -w will retry if it fails ENOTCONN (ie the node did not join a cluster). See the man page for some wrinkles.
-
- Put some locking round membership_task so we don't try to wake up a process that has gone away.
-
-2005-02-23 David Teigland <teigland at redhat.com>
-
- When locks on the convert queue are granted, we need to try again to grant locks from the beginning of the convert queue. Locks at the beginning may not be grantable because of locks at the end. But, granting locks at the end (permitted when using the NOORDER flag) may make earlier locks grantable. Specifically, we have the following situation when running "gfs_tool freeze" in parallel on three machines:
- Granted 1 PR
- 2 PR
- 3 PR
-
- * nodeid 3 converts PR->CW
-
- Granted 1 PR
- 2 PR
- Convert 3 PR->CW
-
- * nodeid 2 converts PR->CW
- granted mode is demoted to avoid conversion deadlock
-
- Granted 1 PR
- Convert 2 NL->CW
- 3 PR->CW
-
- * nodeid 1 converts PR->CW
- granted mode is demoted to avoid conversion deadlock
-
- Granted
- Convert 1 NL->CW
- 2 NL->CW
- 3 PR->CW
-
- * conversions for 1 and 2 are blocked by 3's PR
- * conversion for 3 is granted
-
- Granted 3 CW
- Convert 1 NL->CW
- 2 NL->CW
-
- * other conversions are now grantable, we must try to grant them again
-
-2005-02-23 Jonathan Brassow <jbrassow at redhat.com>
-
- - break the cluster mirror file into separate files
-
- - commit changes to dm-log_cluster.c before its break-up
-
-2005-02-22 A. J. Lewis <alewis at redhat.com>
-
- o adjust the gfs ondisk format number
-
- Check that a device has been passed in (bz #149261) Fix spelling of "Succeeded" (bz #149267) Handle mistyped responses to queries more gracefully (bz#149278)
-
-2005-02-22 Patrick Caulfield <pcaulfie at redhat.com>
-
- Remove kjoin.c as it's not used and won't even compile any more.
-
-2005-02-22 Daniel Phillips <phillips at redhat.com>
-
- Add libpopt command line args parsing to mksnapstore, csnap-server Argh! popt doesn't know about long long!
-
-2005-02-22 David Teigland <teigland at redhat.com>
-
- Recognize and resolve a second form of conversion deadlock. When it happens, you'll see the following in dlm_locks output: grant queue: empty convert queue: NL->EX, PR->EX
- Fixes bz 148861
-
-2005-02-21 Adam Manthei <amanthei at redhat.com>
-
- remove the in_cluster() checking in stop. should no longer be needed since the start() case now waits to make sure that the node is in the cluster before returning.
-
- o added "-w" option to cman_tool join (bz #147828) o commented out CMAN_TRANSITION_RESTARTS o need mechanism for timing out "wait" parameter
-
-2005-02-21 Patrick Caulfield <pcaulfie at redhat.com>
-
- I was trying to be too economical with code in cman_tool wait, ISQUORATE & GETMEMBERS can't really be conflated like that because they return different sorts of things.
-
-2005-02-21 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- If a local client logged into gulm, and the client got the nodelist before the local gulm connected to a Master gulm, the local client would not get updates when the full list was received. This fixes that.
-
-2005-02-19 Adam Manthei <amanthei at redhat.com>
-
- partial fix to cman init script to address bug #147828. still need to figure out why 'wait' isn't working like I expect.
-
-2005-02-18 Chris Feist <cfeist at redhat.com>
-
- Added forgetten line in configure script which caused --sharedir to be ignored.
-
-2005-02-18 Patrick Caulfield <pcaulfie at redhat.com>
-
- Display "mantis-friendly" membership state in /proc/cluster/status
-
-2005-02-18 David Teigland <teigland at redhat.com>
-
- "The attached patch makes it possible to ask fence_tool to not wait for quorum and just die in this case. This makes it easier to call fence_tool join in init scripts without the problem of a blocked startup." Bastian Blank
-
- ignore fence_tool's Q option
-
-2005-02-17 Patrick Caulfield <pcaulfie at redhat.com>
-
- Deal with failed joinconf more sensibly. (that message may have to go though) Quick-quit out of the read/dispatch loop if a node goes down so we can process it in a timely manner.
-
-2005-02-17 David Teigland <teigland at redhat.com>
-
- remove some non-critical printk's
-
- Make dlm_recoverd thread a permanent fixure of each lockspace. The wake_up oopses I get when they're dynamic get in the way of other tests. This is already in the RHEL4 branch.
-
-2005-02-16 Jonathan Brassow <jbrassow at redhat.com>
-
- - commit man page changes from Bastian Blank
-
-2005-02-16 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- is deprecated, not depercated fenced wants -O make sure lock replies goto clients. Better reaction to error packet in LT.
-
-2005-02-16 David Teigland <teigland at redhat.com>
-
- The current manpages are written in plain nroff which is not parsable by many scripts. The attached patch converts the manpages in the fence package to the man macro package. From Bastian Blank
-
-2005-02-16 Patrick Caulfield <pcaulfie at redhat.com>
-
- This fixes the socket leak in the case where a primary connection was closed due to EOF on the socket, the secondary did not get closed.
-
-2005-02-16 David Teigland <teigland at redhat.com>
-
- We were ignoring blocking callbacks for locks being converted which caused us to skip some that were necessary. Fixes bz 147798 (along with similar dlm fix)
-
- Blocking asts were being ignored for all locks being converted which resulted in some necessary basts being skipped. In particular, after a failed NOQUEUE conversion, gfs could be left holding a lock and getting no callback for it while others were left waiting.
- This changes things so that a bast message is ignored if the lock is
- being converted and NOQUEUE isn't set, or if the locks is being
- unlocked. Fixes bz 147798.
-
-2005-02-15 A. J. Lewis <alewis at redhat.com>
-
- o Count blocks used by inodes and update them if counted doesn't match ondisk o convert free metadata to free blocks in pass5
-
-2005-02-15 Daniel Phillips <phillips at redhat.com>
-
- Add snapshot store expansion
-
-2005-02-15 Patrick Caulfield <pcaulfie at redhat.com>
-
- Remember to tell SM if we get down to one node.
-
-2005-02-15 David Teigland <teigland at redhat.com>
-
- list fence_tool
-
- document the wait (-w) option
-
- The current manpages are written in plain nroff which is not parsable by many scripts. The attached patch converts the manpages in the fence package to the man macro package. From Bastian Blank
-
- remove stray line
-
- don't complain when we see fence_tool's -w option
-
- Add option to fence_tool to wait for the node to complete its join and be a member of the fence domain. Two options: fence_tool join -w fence_tool join; fence_tool wait
-
-2005-02-14 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- removed an unused func. made a log_err print out the value of ocde instead of just complaining about it. flipped a message out of lgm_Always and into lgm_locking.
-
-2005-02-14 Jonathan Brassow <jbrassow at redhat.com>
-
- - replace an instance of ccs_get with ccs_get_list
-
- - missing break statement, thanks to Bastian Blank
-
-2005-02-14 A. J. Lewis <alewis at redhat.com>
-
- o convert (f)printf to log_* in fs_dir.c o Fix link counting when reattaching '..' in pass3
-
-2005-02-14 Patrick Caulfield <pcaulfie at redhat.com>
-
- On sparc & s390 do biarch checking at runtime. This paves the way for AMD64 builds if anyone has one they'd like to try ;-)
- Thanks to Bastian Blank for most of this.
-
- Display node name in /proc/cluster/status
-
-2005-02-14 David Teigland <teigland at redhat.com>
-
- document -w and -q options for join
-
- remove multihome setup from man page
-
-2005-02-11 A. J. Lewis <alewis at redhat.com>
-
- Fixed number of times it's necessary to run fsck to completely clean fs o debugging, fix a bug in leaf handling, and clear check another error case for .. dirents o fs_mkdir was grabbing in use blocks - fixed this problem o Make sure journaled data gets set to the correct metatype and format o Make sure the leaf info is current before writing it out in metawalk.c o Fix allocation and expanding of l+f directory o Fix entry counting when splitting leaves o Convert dir_info list [...]
-
-2005-02-11 Jonathan Brassow <jbrassow at redhat.com>
-
- - add -V and -h to ccs_test
-
-2005-02-11 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- put the info that i thought was in the man pages in there.
-
-2005-02-11 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't start the transition timer if we're doing the shortcut single-node endtrans. Also get rid of duplicate leave message
-
-2005-02-11 David Teigland <teigland at redhat.com>
-
- We add NL locks to a resource to implement gfs's hold_lvb(). When we request these NL locks, use the EXPEDITE flag so the NL request will be granted immediately.
-
- When a conversion request has been sent to a remote master, that remote master fails, and the sender becomes the new master of the resource, the requested lkb needs to be moved from the converting queue back to the granted queue prior to processing the conversion request locally.
- Previously, we were leaving the lkb on the converting queue. The
- specific problem I observed from this happened when the conversion
- was NOQUEUE and returned -EAGAIN. When an unlock for the lkb
- happened later on, dlm_unlock would find an incorrect status in the
- lkb of CONVERTING, return an error and trigger an assertion failure.
-
- don't do a dlm_lock_dump when an assertion fails
-
- cman_tool now picks as the local nodename whatever name has been entered for the local node in cluster.conf. If the node is represented in cluster.conf by a FQDN, then that's the nodename it will have. If the node is represented in cluster.conf by a hostname without domain, then that's the nodename that it will have. This should fix bz 146320.
- (As always, the network interface associated with the nodename is the one
- cman will use.)
-
-2005-02-11 Chris Feist <cfeist at redhat.com>
-
- Merged changes from RHEL4 branch to fix building if not installing.
-
-2005-02-10 Patrick Caulfield <pcaulfie at redhat.com>
-
- man page for cman_tool leave -w
-
- Add a -w (wait) option to "cman_tool leave". If the cluster is in transition then the leave ioctl returns -EBUSY which causes the leave operation to fail.
- If you add -w to the command-line then cman_tool will wait and retry the
- operation until it either gets a proper error or the leave completes
- sucessfully.
-
- This is probably what's really needed by the shutdown script.
-
-2005-02-10 David Teigland <teigland at redhat.com>
-
- Clean up changes from last commit related to bz 143487. fence_node -O <nodename> is used to force a ccs connection, and a clustername arg is not used.
-
-2005-02-09 Jonathan Brassow <jbrassow at redhat.com>
-
- - fence_node has been change to work better with gulm (143487) - Two new options have been added -c <cluster_name> -O
- The -O overrides the quorum requirement. It requires the use of -c,
- due to the fact that CCS may be in a transitional phase that only
- solidifies when the cluster is quorate.
-
- Although I haven't tested it, this may allow a person to
- fence_node -O -c someone_else_cluster someone_else_node... a
- feature? a bug?
-
-2005-02-09 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- Removed a bunch of unused global vars. (well, externs to atleast)
- Fixed bug 147602 - gulm doesn't allow 5 servers
- silly me, ment <=5 not <5.
-
-2005-02-09 Benjamin Marzinski <bmarzins at redhat.com>
-
- fixed journal corruption mentioned in bug 146672. If the latest entry written to the log before a crash was the at the segment before the last dump entry, the last dump entry would be overwritten on journal replay. Changed the checks in check_seg_usage to avoid this.
-
-2005-02-09 Patrick Caulfield <pcaulfie at redhat.com>
-
- Be a bit smarter about when to schedule() when reading lots of data (usually during recovery)
-
-2005-02-09 David Teigland <teigland at redhat.com>
-
- remove unused "bulk lookup" function
-
- Similar bug to the one fixed the other day. If recovery is aborted during rebuild_rsbs_send(), some rsb's could be left on the recover_list. This triggers the recently added assertion during the next recovery cycle. We now clear the recover_list if rebuild_rsbs_send() is aborted.
-
- - exit with an error if an invalid votes value is found - fix error in the votes value check in the two-node case. we were exiting with an error when no votes value was specified instead of accepting that the default of 1 is correct
-
-2005-02-08 David Teigland <teigland at redhat.com>
-
- - liblvm2clusterlock.so has moved from /lib to /usr/lib so we need: LVM2/scripts/clvmd_fix_conf.sh /usr/lib
- - no longer need manual devmap_mknod.sh for DM
-
- - remove info on cman using mulitple interfaces on multihomed nodes
- since it's out for now
-
- remove three log_debug lines that are called so frequently during recovery that they blow away other interesting messages in the debug log
-
-2005-02-08 Lon Hohberger <lhh at redhat.com>
-
- fix #146924
-
-2005-02-08 David Teigland <teigland at redhat.com>
-
- In rcom_send_message, return an error from midcomms_send_message instead of panicking. Returning an error from both functions is valid when nodes fail during recovery. Also switch some log_error to log_debug so they don't go to the console.
-
-2005-02-07 Lon Hohberger <lhh at redhat.com>
-
- Include rg name in clustat -x output
-
-2005-02-07 A. J. Lewis <alewis at redhat.com>
-
- Large batch of changes - mainly dealing with ExHash directory handling.
- o Fix a spot where a pointer not getting set to NULL would segfault later
- o Fix entry checking - large number of changes - still some issues
- o Make exhash leaf entry removal work correctly
- o If we find a bad .. entry in pass3, relink it to the treewalk parent
- o Mark exhash directories with bad height or depth invalid
- o Correctly create directories and handle dirs with height > 0
- o Track leaf pointer counts and error directories they don't match depth
-
-2005-02-07 Patrick Caulfield <pcaulfie at redhat.com>
-
- use $(CC) for linking. don't install header executable
-
-2005-02-07 David Teigland <teigland at redhat.com>
-
- remove utils_srt.c
-
- - Assert that the recover_list is empty at the start of dlm_dir_clear. If there's anything incorrectly left on that list from a previous aborted recovery, we'll find it here and not with an odd oops later.
- - Change log_debug() for normal locking operations to log_debug1() where
- DLM_DEBUG1 isn't set by default. This way abnormal or infrequent
- conditions from log_debug() aren't quickly blown away.
-
- - Don't call dlm_locks_dump() when DLM_ASSERT fails.
-
- - In rcom_send_message(), only test/clear the READY flag when doing a
- synchronous request. It's not used for async requests and because
- these async requests can be called from different threads it could
- lead to incorrect assertion failures.
-
- - In rcom_send_message() get rid of the RECCOMM_WAIT flag which was
- only used as a sanity check. Given that rcom_send_message can be
- called from multiple threads and only synchronous calls are serialized,
- an async caller could change the flag for the sync request and cause
- the reply message to be discarded.
-
- If recovery was aborted during restbl_rsb_update(), some rsb's could be left on the recover_list. This would cause an oops later when the next recovery sequence used the recover_list. Now we clear that list if we abort the recovery.
- It seems unlikely people have seen this since it requires a node to fail
- at just the right time while other nodes are doing recovery.
-
-2005-02-03 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- Partial workthrough of log messages. Some moving, some changing. mostly changed `errors' that gulm can handle to not use log_err
- Some corrections to the estimated lock space size calculation.
- Still needs more work, but its closer. Once this gets more accurate
- will use it for th highwater mark instead of lock count. But not yet.
-
- Added out going queues to the local connect in LTPX. Fixes bug 146670.
- Might need to add read penalties, but works for me without, so holding
- off on that.
-
- Removed a util_* that hasn't been used in quite some time, but was
- still being compiled and linked in.
-
-2005-02-03 Patrick Caulfield <pcaulfie at redhat.com>
-
- Check quit_threads in a few more places so we don't get blocked when trying to leave the cluster.
-
-2005-02-02 A. J. Lewis <alewis at redhat.com>
-
- o Started working on interactive UI o More interactive updates and fixed inode updating for exhash directories in met o Make '-y' and '-n' options to the fsck work correctly in query()
-
-2005-02-02 Patrick Caulfield <pcaulfie at redhat.com>
-
- If a joining node is removed by the time it has become a provisional member then remember to decrement cluster_members.
-
- Default for releasing userland lockspaces is "1", ie get rid on any master locks that do no have local holders.
-
- Use #defined constant rather than a plain number
-
-2005-02-02 David Teigland <teigland at redhat.com>
-
- need copytobin
-
-2005-02-02 Ken Preslan <kpreslan at redhat.com>
-
- Add some more fields to the lockdump print out.
-
- When running the "gfs_tool <something> <mountpoint>" commands (e.g. lockdump, freeze, withdraw, ...), do better processing of device mapper device names.
-
-2005-02-02 Chris Feist <cfeist at redhat.com>
-
- Added slibdir into the toplevel make so we don't touch /usr/lib
-
-2005-02-01 Ken Preslan <kpreslan at redhat.com>
-
- Probable fix for BZ#146711. Don't try to update the head of the log if we're already shutdown.
-
-2005-02-01 A. J. Lewis <alewis at redhat.com>
-
- o Check for dups when looking at inodes for the first time o Don't mark the resource index and journal index during initialization o Details about new fsck added to FEATURES
-
-2005-02-01 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- Handful of little cleaning things I ran across hunting a bug. Mostly just removing code that was never called.
-
-2005-02-01 A. J. Lewis <alewis at redhat.com>
-
- o Remove a number of unused macros o Make version strings conform to the standard; update usage string
-
- Out with the old, in with the new.
- This is a completely rewritten filesystem checker for GFS. Performance
- characteristics are significantly improved. The design follows the 5-pass
- fsck design found in "Fsck - The UNIX File System Check Program"
- by McKusick & Kowalkski (1994)
- - http://citeseer.ist.psu.edu/mckusick94fsck.html
-
-2005-02-01 Chris Feist <cfeist at redhat.com>
-
- Updated copyright code
-
-2005-02-01 Patrick Caulfield <pcaulfie at redhat.com>
-
- dlm_release_lockspace uses force==1 by default, so the LS gets freed even if there are remote locks mastered on this node (but not if there are local locks).
-
-2005-02-01 David Teigland <teigland at redhat.com>
-
- undo last change (enforce matching nodename/cluster.conf) so we can find a less disruptive way to do it
-
- cman_tool now reports an error if the nodename doesn't match exactly what's in cluster.conf. See bz 146320 for more info.
-
-2005-01-31 Lon Hohberger <lhh at redhat.com>
-
- Kill clufindhostname; its functionality isn't used, and can be provided by things like host(1)
-
- Clean up lock spaces so we can unload dlm module
-
- Use {libdir} for {slibdir} if no slibdir specified
-
- Use {libdir} for {slibdir} if no slibdir specifed on configure's command line
-
-2005-01-31 Patrick Caulfield <pcaulfie at redhat.com>
-
- Make heartbeat thread exit whren "quit_threads" gets set. This also mean moving the heartbeat timer control into that thread (quite sensibly) and also clearing wake_flags when membership thread quits.
- fixes bz#146327
-
-2005-01-28 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- pending plocks on gulm can now be interrupted.
-
-2005-01-28 Lon Hohberger <lhh at redhat.com>
-
- Merge from RHEL4 branch
-
-2005-01-28 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- fix for bug 146479, was not properly pushing posix range lock information into the VFS. Am now.
-
-2005-01-28 Patrick Caulfield <pcaulfie at redhat.com>
-
- If we get a position JOINACK then ignore any negative ones that come afterwards and we know there's a node that will join us. If it dies for any reason, the timer will restart.
- This should speed up parallel join somewhat.
-
- Don't starve processes that are filling buffers. FIxes bz#143448
-
-2005-01-27 Ken Preslan <kpreslan at redhat.com>
-
- Fix a bug in a memset().
-
- Don't let stale/invalid data leak up to userspace on a read() from a withdrawn filesystem.
-
- Change diaper so it doesn't return errors if the filesystem is already shutdown. This makes things a lot quieter.
-
- Don't complain about uninit()ing busy log buffers if we're shutdown.
-
- Don't complain if we stall trying to make a log reservation.
-
-2005-01-27 David Teigland <teigland at redhat.com>
-
- There are a couple of potential problems this should fix related to an overlap of dlm_recoverd in ls_nodes_reconfig (changing the ls_nodes list) for recovery event N and dlm_recvd in dlm_dir_rebuild_send (reading ls_nodes list) for recovery event N-1.
- We now wait, in dlm_ls_stop(), for dlm_recoverd to detect and abort
- recovery event N-1. This ensures that when all nodes receive
- dlm_ls_start() and begin recovery event N, that no other nodes are
- still working on recovery event N-1 in any way.
-
- There's still the chance that a stray/delayed message (in particular a
- RECOVERNAMES request) pertaining to event N-1 will be delivered while all
- nodes are working on event N. There's an added check that should
- prevent this from causing any trouble for all practical purposes.
-
- One other possible problem is dlm_ls_stop clearing the status bits right
- before ls_nodes_reconfig sets them. Doing this after dlm_recoverd
- is suspended makes it safe.
-
- I don't know which, if any, of these potential problems have actually
- been observed; none of them are very likely. But, I think there's
- a fair chance that the first problem matches bz 145831.
-
-2005-01-26 Jonathan Brassow <jbrassow at redhat.com>
-
- - ccs(7) not ccs(8)
-
-2005-01-26 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't call nodeid2con() if we're shutting down, it might allocate a new con.
- There's an off-chance this might fix bz#143449
-
- Change a BUG() into a printk, it's not really /that/ serious an anomoly.
-
- Put some more validation on integers passed in from the commandline.
-
-2005-01-26 David Teigland <teigland at redhat.com>
-
- ignore any wakeup that arrives after the serviced thread exits
-
- return an error in process_join_stop instead of asserting
-
-2005-01-25 Lon Hohberger <lhh at redhat.com>
-
- Index of error messages
-
- Merge from RHEL4 branch: man pages, error documentation + indexing
-
- Clean up negative memory-leak testing
-
- Merge from RHEL-4 branch: internal test cases, make-check target, actually install man pages
-
- Fix memory leaks as a result of not cleaning up libxml2; move test functions into test.c
-
- Internal consistency check tests for rgmanager's tree/list.
-
-2005-01-25 David Teigland <teigland at redhat.com>
-
- improve chances that withdraw won't get stuck by: - not trying to stop the lock_dlm threads which might be blocked permanently in gfs - abandoning the locks on the null list (like we abandon all the rest)
-
-2005-01-24 Adam Manthei <amanthei at redhat.com>
-
- regex fix for gulm and cman check of /etc/cluster/cluster.conf (https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=146036)
- - if ! grep -qE "<[\t ]*gulm[\t ]*.*>"
- + if ! grep -qE "<[[:space:]]*gulm([[:space:]]|[>]|$)"
-
-2005-01-24 Patrick Caulfield <pcaulfie at redhat.com>
-
- Split the removal of a node out of STARTTRANS as they can get interrupted/overruled and all sorts of things.
- There is now a seperate NODEDOWN message which, well you can guess what it does.
- The first node to spot the daed node still starts the transition as before.
-
-2005-01-24 David Teigland <teigland at redhat.com>
-
- Change all log_all() to either log_debug() or log_error() since log_all recently became log_debug.
-
- Fix dlm_astd hang in bz 145090. Have dlm_astd skip lkb's in the ast queue that belong to non-running/in-recovery lockspaces. Previously, dlm_astd would block on the lockspace's in_recovery semaphore ahead of the lockspace (and the semaphore) being freed.
-
-2005-01-24 Patrick Caulfield <pcaulfie at redhat.com>
-
- If we get an old STARTTRANS(REMNODE) then still remove the node from our list because someone saw it die.
-
-2005-01-21 Ken Preslan <kpreslan at redhat.com>
-
- Cleanup.
-
-2005-01-21 Lon Hohberger <lhh at redhat.com>
-
- Add make check, ra-api-1-modified.dtd for validating ra metadata
-
-2005-01-21 David Teigland <teigland at redhat.com>
-
- include time in debug output
-
-2005-01-20 Adam Manthei <amanthei at redhat.com>
-
- o fixed broken regex o make gulm check happen on start only
-
-2005-01-20 Lon Hohberger <lhh at redhat.com>
-
- file nfs-tests was initially added on branch RHEL4.
-
- Include bonded-ethernet link detection
-
-2005-01-20 Adam Manthei <amanthei at redhat.com>
-
- start gulm when --use_ccs is used only if <gulm> is defined in /etc/cluster/cluster.conf (https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=145458)
-
- don't start cman if <gulm> is defined in /etc/cluster/cluster.conf (https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=145453)
-
- o cleaned up some man of the man pages o removed more fence_rib references o removed fence_rib and fence_racksaver from bin/Makefile
-
- Initial cut of drac fencing agent used at Oracle World. Use at your own risk.
-
-2005-01-20 Patrick Caulfield <pcaulfie at redhat.com>
-
- Grr, got me patches & cvs all mixed up again.
-
- remove_joiner() now also informs the poor node that it's join has been preempted and it must try again.
-
- Return an error from several ioctls if they are called when we are not part of a cluster.
-
-2005-01-20 David Teigland <teigland at redhat.com>
-
- improve an error message
-
-2005-01-19 Daniel Phillips <phillips at redhat.com>
-
- Add index buffer dirtying, block freeing to snapshot delete. More cleanups. Fix bug in excess btree level trimming.
-
-2005-01-19 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- Forgot to update gio.
-
- stop being wavery on where tags go.
-
-2005-01-19 Lon Hohberger <lhh at redhat.com>
-
- Fix build bug on slackware
-
-2005-01-19 Patrick Caulfield <pcaulfie at redhat.com>
-
- Remove param from remove_joiner() as that part of the patch hasn't been committed yet. Sorry.
-
- Set threads to SCHED_FIFO scheduling policy.
-
-2005-01-19 David Teigland <teigland at redhat.com>
-
- 'fence_tool monitor' will print debug logging from fenced
-
- send all debug logging over local socket so fence_tool can monitor at any time while running
-
-2005-01-19 Daniel Phillips <phillips at redhat.com>
-
- BTree snapshot delete refactored and cleaned up, tree collapsing added, a few coalescing bugs fixed.
-
-2005-01-18 Jonathan Brassow <jbrassow at redhat.com>
-
- - fix the CCS archive -> xml conversion for the gulm section
- I was converting to the old way the servers were listed, i.e:
- <servers>
- foo
- </servers>
-
- instead of:
-
- <lockserver name="foo"/>
-
-2005-01-18 Lon Hohberger <lhh at redhat.com>
-
- amd64 fix
-
-2005-01-18 Jonathan Brassow <jbrassow at redhat.com>
-
- - better error reporting when there are multiple concurrent updates - fix bug 145393 second ccs update attempt (from another node) fails if update file is /etc/cluster/cluster.conf
-
-2005-01-18 Ken Preslan <kpreslan at redhat.com>
-
- Unbreak the user tools.
-
-2005-01-18 Patrick Caulfield <pcaulfie at redhat.com>
-
- Another remove_joiner() needed - this time if the new node does not respond to JOINCONF
-
-2005-01-18 David Teigland <teigland at redhat.com>
-
- document new actions wait, status, nodes, services
-
- add cman_tool actions status|nodes|services to display /proc/cluster/status|nodes|services
-
-2005-01-18 Patrick Caulfield <pcaulfie at redhat.com>
-
- Check for valid LKB in find_lock_by_id() rather than later on when we've already assumed it's a valid array index.
-
-2005-01-18 Daniel Phillips <phillips at redhat.com>
-
- BTree one-pass delete is now incremental with leaf/node coalescing Phew, what a struggle that was. NB: csnap server currently set up only for unit testing of delete code; will stay broken for a few more days.
-
-2005-01-18 Adam Manthei <amanthei at redhat.com>
-
- Apply Derek Anderson's patch to resolve bug 144514: (fence_sanbox2: failure path locks user out of admin mode)
- Index: fence_sanbox2.pl
- ===================================================================
- RCS file: /cvs/cluster/cluster/fence/agents/sanbox2/fence_sanbox2.pl,v
- retrieving revision 1.1
- diff -u -p -r1.1 fence_sanbox2.pl
- --- fence_sanbox2.pl 24 Aug 2004 16:05:37 -0000 1.1
- +++ fence_sanbox2.pl 18 Jan 2005 00:29:06 -0000
- @@ -161,6 +161,9 @@ $t->print("show port $opt_n");
- if (!((($opt_o =~ /disable/i) && ($text =~ /AdminState\ *Offline/i)) ||
- (($opt_o =~ /enable/i) && ($text =~ /AdminState\ *Online/i))))
- {
- + # Get out of admin mode before failing
- + $t->print("admin end");
- + $t->waitfor('/\>/');
- fail "failed: could not change state to $opt_o\n";
- }
-
-2005-01-17 Lon Hohberger <lhh at redhat.com>
-
- Fix magma plugin names + installation paths to match LIBDIR/magma
-
- Use libdir/magma for plugins
-
-2005-01-17 Patrick Caulfield <pcaulfie at redhat.com>
-
- return error if ioctl(GETNODE) called before we are a cluster member.
-
- Remove some redundant code. Don't try to double-free connection if bind() fails.
-
-2005-01-17 David Teigland <teigland at redhat.com>
-
- remove double \n
-
- log more info to syslog to help people see why nodes are fenced
-
-2005-01-14 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- relocated some tags to attributes. Easier for the gui to work and we're about about chewy, gui goodness.
-
- grab more of the login request for services so if the protocl version mismatches we can print out the name of the server that did this. hopefully help with some debugging.
-
-2005-01-14 David Teigland <teigland at redhat.com>
-
- - don't ignore the completion callback for a canceled lock - extend the info logged for cancel
-
-2005-01-14 Ken Preslan <kpreslan at redhat.com>
-
- Copyright/GPL.
-
-2005-01-14 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add wait options to cman_tool to help with script synchronisation.
- cman_tool join -w (join & wait until a cluster member)
- cman_tool join -wq (join & wait until cluster is quorate)
-
- cman_tool wait (wait until a cluster member)
- cman_tool wait -q (wait until cluster is quorate)
-
-2005-01-14 Ken Preslan <kpreslan at redhat.com>
-
- Print a better message when versions mismatch.
-
-2005-01-14 Patrick Caulfield <pcaulfie at redhat.com>
-
- Sanity-check the votes, so that expected_votes doesn't get silly.
-
-2005-01-14 Ken Preslan <kpreslan at redhat.com>
-
- Start using the new generic permission checking code in 2.6.10.
-
-2005-01-14 David Teigland <teigland at redhat.com>
-
- - Leave the lockspace when gfs does a withdraw. For now we abandon all the lock_dlm memory associated with the lockspace. - Fix a memory leak in unmount where nodes list was not freed.
-
-2005-01-14 Ken Preslan <kpreslan at redhat.com>
-
- Update patches.
-
-2005-01-14 David Teigland <teigland at redhat.com>
-
- fix freeing name string before printing it in syslog
-
- in startup check add a loop around the cman GETNODE ioctl since it may return an error
-
-2005-01-13 Lon Hohberger <lhh at redhat.com>
-
- Fix for 44945
-
-2005-01-13 Jonathan Brassow <jbrassow at redhat.com>
-
- - fix bug with update when absolute path was specified.
-
-2005-01-13 Adam Manthei <amanthei at redhat.com>
-
- having init.d/cman load the dlm module makes lon happy
-
- o cleaned up init.d script to remove excessive `cman_tool join` and `cman_tool leave` calls.
- o added a config paramater to control time to wait before deciding
- that it can't join the cluster (CMAN_CLUSTER_TIMEOUT)
-
-2005-01-13 Jonathan Brassow <jbrassow at redhat.com>
-
- - add ccs_tool man page
-
- - warn every 30 sec (vs 10) if ccsd can not connect to cluster infrastructure.
-
- - ccs_tool now handles the update process. - allows for much better (and easier) error reporting
-
-2005-01-13 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add SAF AIS lock API support Contributed by Stanley Wang of Intel. Thanks (and sorry for the delay).
-
- Don't commit with debugging enabled. !
-
- If the cluster gets down to 1 node and the last leaver left with "remove" then carry on working.
- bz#144309
-
- If we get nominated as master, remove any joining node we may have. With luck, this will finally nail bz#133512
-
-2005-01-13 Ken Preslan <kpreslan at redhat.com>
-
- Some 2.6.10 stuff.
-
- Incore printing / profiling / tracing library.
-
- Profiling/tracing stuff.
-
-2005-01-12 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- bleh, forgot man page.
-
- use lockserver instead of server. less confusing.
-
- gulm will now parse the server list from ccsd as <gulm> <server name="foo"/> <server name="bar"/> <server name="baz"/> </gulm> instead of a single server line.
-
- stop gulm_tool from printing its errors to syslog.
-
- fix for bug 144909 clients report quorate=false when master goes away.
-
-2005-01-12 Jonathan Brassow <jbrassow at redhat.com>
-
- - sync with changes made to RHEL4 branch
-
-2005-01-12 Ken Preslan <kpreslan at redhat.com>
-
- Fix statfs bug.
-
-2005-01-12 Adam Manthei <amanthei at redhat.com>
-
- on shutdown, use gulm_tool to determine node liveliness rather than nodeinfo
-
-2005-01-11 Adam Manthei <amanthei at redhat.com>
-
- pid file is now in /var/run/cluster/ccsd.pid, not /var/run/sistina/ccsd.pid
-
- syncing w/ RHEL4 branch
-
- diff -u -p -r1.1 Makefile --- cluster/fence/agents/bladecenter/Makefile 25 Oct 2004 16:23:03 -0000 1.1 +++ cluster/fence/agents/bladecenter/Makefile 11 Jan 2005 22:38:27 -0000 @@ -19,7 +19,7 @@ include ${top_srcdir}/make/defines.mk
- all: $(TARGET)
-
- -fence_apc: fence_apc.pl
- +fence_bladecenter: fence_bladecenter.pl
- : > $(TARGET)
- awk "{print}(\$$1 ~ /#BEGIN_VERSION_GENERATION/){exit 0}" $(SOURCE) >> $(TARGET)
- echo "\$$FENCE_RELEASE_NAME=\"${RELEASE}\";" >> $(TARGET)
-
- move the ordering of the scripts. lock_gulmd needs to be called before clvm2.
- S20 ccsd
- S21 cman
- S22 lock_gulmd
- S23 fenced
- S24 clvmd
-
- Add Magma to the list of services that are ignore on shutdown. Without this exclusion, init.d/lock_gulmd will refuse to stop while ccsd is connected
-
-2005-01-11 Lon Hohberger <lhh at redhat.com>
-
- Fix bug that mantis saw; we shouldn't log in with newlines
-
-2005-01-11 David Teigland <teigland at redhat.com>
-
- use die() macro so prog_name is prefixed to error messages
-
- yesterday's signal changes broke "fence_tool leave" which requires we watch for SIGTERM
-
-2005-01-11 Adam Manthei <amanthei at redhat.com>
-
- o makes usage of ccs configurable o adds parameter to GULM_OPTS for passing commandline opts to lock_gulmd o will not shutdown a server if there are clients logged into it and no other servers are running o reports if the node needs to be fenced before it can log in
-
-2005-01-10 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- print node name and ip on the protocol mismatch error message.
-
- added a way to query gulms current running config from gulm_tool
-
- Added a warning for if you didn't --cluster_name before you --use_ccs. Added a line to the startup banner telling which cluster we belong to.
-
- previous method of not calling out to ccsd more than once had issues to say the least. This should be a bit cleaner.
-
-2005-01-10 Patrick Caulfield <pcaulfie at redhat.com>
-
- Clean the queued_messages list at shutdown. Should fix bz#143538
-
-2005-01-10 David Teigland <teigland at redhat.com>
-
- use sigsuspend instead of pause as the reliable way to wait for a signal http://www.gnu.org/software/libc/manual/html_node/Sigsuspend.html#Sigsuspend this should fix bz 133420
-
- change -s to -n in syslog message
-
- Use ccs_get_list instead of ccs_get to prevent infinite looping when there's one element in the list. fixes bz 144322
-
-2005-01-07 Jonathan Brassow <jbrassow at redhat.com>
-
- IF YOU USE CCS, YOU WILL WANT TO READ THIS:
- There have been changes to ccs_get.
- ccs_get use to operate as follows:
- - A query that resulted in a single match would return that match
- every time.
- - A query that resulted in multiple matches would iterate over the
- matches given subsequent calls, terminating with null, and then
- continuing from the beginning.
-
- This made things very hard if you were expecting a list but there
- was only one match. You ended up waiting for a 'null' that never
- happened.
-
- ccs_get now operates as follows:
- - Subsequent queries of the same request will simply interate
- repetitively over the matches - never returning null.
-
- A new function has been added, 'ccs_get_list'. It takes the same
- arguments as 'ccs_get', but operates as follows:
- - Subsequent queries of the same request will return the matched
- items, followed by null, then repeat.
-
-2005-01-07 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- I ran into some weird race with having gulm load info from ccsd more than once while ccsd was trying to figgure out if it was in a quorate cluster or not. Solution is not to ask ccsd for info more than once.
-
-2005-01-07 Adam Manthei <amanthei at redhat.com>
-
- mention fence_bladecenter in man page for fence_xcat
-
- New man page now reads:
- fence_rib(8) fence_rib(8)
-
- NAME
- fence_rib - I/O Fencing agent for Compaq Remote Insight Lights Out card
-
-
- DESCRIPTION
-
- fence_rib is deprecated. fence_ilo should be used instead
-
-
- SEE ALSO
- fence_ilo(8)
-
- diff -u -p -r1.3 Makefile --- Makefile 13 Sep 2004 17:04:45 -0000 1.3 +++ Makefile 7 Jan 2005 18:45:53 -0000 @@ -22,7 +22,6 @@ all: cd manual && ${MAKE} all cd mcdata && ${MAKE} all cd rackswitch && ${MAKE} all - cd rib && ${MAKE} all cd sanbox2 && ${MAKE} all cd vixel && ${MAKE} all cd wti && ${MAKE} all @@ -39,7 +38,6 @@ copytobin: cd manual && ${MAKE} copytobin cd mcdata && ${MAKE} copytobin cd r [...]
-
- fence_rib is deprecated by fence_ilo
-
- diff -u -p -r1.1 fence_brocade.pl --- fence_brocade.pl 24 Jun 2004 08:53:13 -0000 1.1 +++ fence_brocade.pl 7 Jan 2005 17:55:40 -0000 @@ -43,7 +43,7 @@ sub usage print " -a <ip> IP address or hostname of switch\n"; print " -h usage\n"; print " -l <name> Login name\n"; - print " -n <num> Port number to disable\n"; + print " -n <num> Port number to operate on\n"; print " -o <string> Action: disab [...]
-
-2005-01-07 David Teigland <teigland at redhat.com>
-
- Log the name of the node fencing is deferred to or say "prior member" if the name isn't known. fixes bz 144170
-
-2005-01-07 Patrick Caulfield <pcaulfie at redhat.com>
-
- Make all nodes print a message saying why another node left the cluster, so that tracing a fence is a little easier.
- bz#144386
-
-2005-01-06 Patrick Caulfield <pcaulfie at redhat.com>
-
- If bind() failes then NULl con->sock too, so the tidy up doesn't cause an oops. fix for bz#144144
-
- Move find_minor_from_proc before it's first use.
-
- Don't loop ourself to death if we run out of memory.
-
-2005-01-06 Jonathan Brassow <jbrassow at redhat.com>
-
- - fix for bug #137021 ccs doesn't find most recent cluster.conf
- This boiled down to a timing issue. ccsd processes request serially (broadcast, or otherwise).
-
- When cman_tool was started, it issued a connect. While not yet quorate, ccsd must broadcast to see if there are any more recent versions of the config file. This happens as part of the connect. select is used to set a timeout on just how long it waits for replies.
-
- 2 problems were encountered. 1) the timeout was not being properly reset after the select returned. 2) everyone uses the same timeout
-
- What results is that if a connect is issued simultaneously on every node, they first try to process the connect - then any broadcast requests. Because they all have the same timeout, they never recieve broadcast responses from their peers (because they are also stuck processing connects).
-
- The current solution is to add a random component to the timeout and make sure to set the timeout properly after the select returns.
-
-2005-01-05 Jonathan Brassow <jbrassow at redhat.com>
-
- - forward port bug fix 133254
-
-2005-01-05 Benjamin Marzinski <bmarzins at redhat.com>
-
- Fixed gnbd_export remove error message for bug 143131. Now it will print the correct errno. Note, this doesn't fix the bug.
-
-2005-01-05 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- Wasn't calling ccs_disconnect() when reading config from ccs. Do that now. Fixes rbz144286
-
-2005-01-05 Ken Preslan <kpreslan at redhat.com>
-
- Reworked gfs_printf().
-
- Add new file.
-
- Update patch.
-
-2005-01-05 David Teigland <teigland at redhat.com>
-
- Release rsb's semaphore before queue_ast() since queue_ast() can free the rsb at any time. Patch from Daniel McNeil <daniel at osdl.org>
-
-2005-01-05 Ken Preslan <kpreslan at redhat.com>
-
- Get rid of -P option. It should be replace with CLVM labeling later.
-
-2005-01-05 Jonathan Brassow <jbrassow at redhat.com>
-
- - if a lockfile can not be created, print that ccsd is already running.
-
-2005-01-04 Jonathan Brassow <jbrassow at redhat.com>
-
- - some cmirror changes that have been sitting around.
-
- - report better errors (especially in the event that magma plugins aren't found)
-
-2005-01-04 Lon Hohberger <lhh at redhat.com>
-
- Report a usable reason when clu_connect fails.
-
- Kill a bunch of assertions. Return EINVAL when we try to access functions from a nonexistent plugin
-
- Put in decent errno values for cp_connect so callers can find out what happened when it failed.
-
-2005-01-04 Patrick Caulfield <pcaulfie at redhat.com>
-
- NULL some pointers when we shutdown.
-
- Use sock_create_kern() rather than sock_alloc() for 2.6.10
-
-2005-01-04 Ken Preslan <kpreslan at redhat.com>
-
- o Changed GFS ioctls so purely incore binary structures aren't used. This should allow mixing of different versions of gfs userspace and kernelspace without too much trouble. o Update the user tools that use those ioctls. o Cleaned up gfs_tool.
-
-2005-01-03 Ken Preslan <kpreslan at redhat.com>
-
- Dave's changes to allow "gfs_tool [freeze|unfreeze|withdraw]" to work on CLVM devices.
-
-2005-01-03 Lon Hohberger <lhh at redhat.com>
-
- Fix segfault if rgmanager wasn't running
-
-2004-12-23 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- So here is a bit of code that finishes up the withdraw support for gulm. It abuses the way callbacks on locks work to give something that can alert other mounters that a journal needs replaying. It works. I don't like it. It feels kludgy. I am going to see if I can come up with something beter, but this at least will let people play with withdraw in a cluster.
-
- moved a message from Always to locking.
-
-2004-12-23 Jonathan Brassow <jbrassow at redhat.com>
-
- - add ccs_tool to Makefile
- This will likely switch from a script to a C-program soon, as functionality
- is added.
-
-2004-12-23 Adam Manthei <amanthei at redhat.com>
-
- Jon changed the verbosity of ccsd. -v doesn't need to be on by default anymore.
-
-2004-12-23 Jonathan Brassow <jbrassow at redhat.com>
-
- - remove log_msg_always - make log_msg always print - remove -v option
- I was making the mistake of thinking that the user should control the
- daemons output by using (or not using) -v. However, the more correct
- way is to print everything to the log and let the user sort through
- it by defining syslog preferences.
-
-2004-12-22 Adam Manthei <amanthei at redhat.com>
-
- make the daemon more verbose in the script since the default logging is not very helpfull.
-
-2004-12-22 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- updated the patch for last lock_gulm.ko commit.
-
- Most of the witdraw code. Still lacking a bit to notify other mounters that the withdrawn journal needs replaying. But at least people can start playing with the withdraw and not assert.
-
- code to allow expiration of a subset of locks. This will be used by the witdraw code.
-
-2004-12-22 Patrick Caulfield <pcaulfie at redhat.com>
-
- Make MAX_RETRIES /proc settable. Make some KILL messages reliable.
-
- Don't hold the res_lock for quite so long. Well, it works for Daniel McNeil.
-
-2004-12-22 Ken Preslan <kpreslan at redhat.com>
-
- Fixed a reference leak of lock module in-use counts that was caused by filesystems withdrawing.
-
- Fix a case where the resource index isn't propery released on error.
-
-2004-12-21 Jonathan Brassow <jbrassow at redhat.com>
-
- - fix bug 128662, ccs_test connect <clustername>: connects to local ccsd regardless
- There was a remaining end case with this bug. A machine could
- broadcast, forcing all other nodes to load their config files.
- So, if you wanted a different config file on another machine
- (besides what was local at the time of the broadcast), you
- would have to kill and restart ccsd. This is no-longer
- necessary.
-
- - fix bug: 128422 (ccsd grabs network config silently if local is bad)
- Now, if the local config file is bad, ccsd errors out - giving the
- user the output from the parser as well as the steps to take to
- fix the problem.
-
-2004-12-21 Adam Manthei <amanthei at redhat.com>
-
- remove /dev/misc/dlm-control if the major/minor number of the device node conflist with the kernel assignments as reported by /proc/msic.
- This resolves bug #138491
-
-2004-12-21 Patrick Caulfield <pcaulfie at redhat.com>
-
- Be a lot quieter on the console
-
- If a transition gets usurped by another node, always tidy up old joining nodes. Also, prevent a CHECK transition from usurping a real one as that's just a waste of everyone's time.
-
-2004-12-20 Chris Feist <cfeist at redhat.com>
-
- Added install of init script in top level Makefile.
-
- Fixed a problem which wouldn't uninstall the initscript.
-
- Updated toplevel Makefile to install init script.
-
- Added install/uninstall to main Makefile for init script.
-
- Added option to install init scripts.
-
-2004-12-20 Jonathan Brassow <jbrassow at redhat.com>
-
- - minor updates to ccs_tool
-
-2004-12-18 Ken Preslan <kpreslan at redhat.com>
-
- Add code to implement "gfs_tool withdraw /mountpoint".
-
- o Add facility to stop all block I/O from a filesystem by setting a bit. The number of outstanding I/O is also kept track of, so it's possible to wait until all in-flight I/O has finished. o Used this new code to allow GFS to abort a filesystem at arbitrary points in time. GFS sets the bits to stop I/O, waits for all in-flight I/O to stop, and then calls a new lock module function, lm_withdraw, to ask the lock module to leave the lockspace. (Basically, perform all [...]
-
-2004-12-17 Jonathan Brassow <jbrassow at redhat.com>
-
- - fix a problem where if the working path was set (via ccs_set_state()), lookups could fail.
-
-2004-12-17 Adam Manthei <amanthei at redhat.com>
-
- initial stab at init.d script
-
-2004-12-17 Jonathan Brassow <jbrassow at redhat.com>
-
- - fix bug 143165, 134604, and 133254 - update related issues These all seem to be related to the same issue, that is, remote nodes were erroneously processing an update as though they were the originator - taking on some tasks that didn't belong to them.
- This was causing connect failures, version rollbacks, etc.
-
- - fix a problem with ccs_tool update which was causing a connection
- to be left open.
-
-2004-12-17 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - lock tables are supposed to register themselves are LT%03d, not %03d
-
-2004-12-16 Jonathan Brassow <jbrassow at redhat.com>
-
- - add log_msg_always macro, which prints a msg of priority NOTICE regardless of whether -v was specified.
- - Try to give reasons for update failures.
-
- - replace instances of sistina with "cluster"
- (e.g. /var/run/sistina -> /var/run/cluster)
-
- - add beginning of update/upgrade tool
-
-2004-12-16 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - SIGTERM is ignored. Update man page describing this.
-
-2004-12-16 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix a few join related bugs. Many of which are related to #142853 and # 1335212. I'm not fully convinced that these are all sorted yet though.
- Also, when we get a "leave remove" message, try to reduce quorum far enough
- so that activity continues.
-
-2004-12-15 Lon Hohberger <lhh at redhat.com>
-
- Make script actually work. Fire wall ports are corrected, but the iptables commands need revisiting.
-
- Unbreak init script
-
- Display all cluster members if we're not part of the RG manager group.
-
- src/daemons/Makefile: Remove debugging compiler flag
-
- - include/resgroup.h: Remove unnecessary states/requests. Add handle_start_remote_req, rg_doall, and svc_status protos. Add FORWARD define for when a request can be carried out - just not locally. - include/reslist.h: Add protos for res_condstop/res_condstart and resource_delta/resource_tree_delta functions - src/clulib/rg_string.c: Change to match states/requests in resgroup.h - src/daemons/groups.c: Don't even bother evaluating disabled resource groups. Handle CONDSTOP and CONDSTA [...]
-
-2004-12-15 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't use a large(ish) static buffer for the membership state.
- Might fix bz#142865
-
-2004-12-14 Ken Preslan <kpreslan at redhat.com>
-
- More comments from ben.m.cahill at intel.com.
-
-2004-12-14 Benjamin Marzinski <bmarzins at redhat.com>
-
- oops. switched long variable to unsigned long so that the gnbd device size doesn't get screwed up on large devices. fixes rbz 142870
-
-2004-12-13 Lon Hohberger <lhh at redhat.com>
-
- Fix up circleping to work properly.
-
-2004-12-13 David Teigland <teigland at redhat.com>
-
- When rebuilding an lkb on a new master, the lockqueue_flags value was being skipped. This could cause many problems in just the right circumstances, although no actual bug reports are an obvious case of this.
-
-2004-12-11 David Teigland <teigland at redhat.com>
-
- add sections on setting panic_on_oops and sources of more info
-
- document the optional nodeid setting
-
-2004-12-11 Jonathan Brassow <jbrassow at redhat.com>
-
- - Add message (that prints when -v flag is used with ccsd) that reports when the cluster is quorate and will allow connections.
- - Change "cluster not quorate. refusing connection." back to
- log_msg from log_err. This is done since fenced will now
- often query ccs before the cluster is quorate. It is not
- an error, it's just waiting for the cluster to become
- quorate...
-
- - Fix a problem Dave was seeing. If you do a ccs_test connect, before
- starting ccsd, it will appear to stall indefinitely while doing retries.
-
- The function in the ccs library responsible for talking to ccsd
- must setup a connection from a privilaged port. Sometimes, the
- first port it tries to bind to may be in use, so it move on to
- the next. This is necessary. However, I was not properly
- checking the error return codes. So, an ECONNREFUSED was being
- interpretted as "Hey, try another port in a little bit." Only,
- after erroneously trying all the privilaged ports does it error
- out - which is why it appears to stall indefinitely.
-
-2004-12-10 Ken Preslan <kpreslan at redhat.com>
-
- TASK_INTERRUPTIBLE -> TASK_UNINTERRUPTIBLE.
-
- Munge.
-
- Get rid of the kernel patch. Not a battle worth fighting. Sigh.
-
-2004-12-10 Lon Hohberger <lhh at redhat.com>
-
- Fix relocate on more-preferred-member-boot; fix minor bugs in building alloc.c
-
-2004-12-10 David Teigland <teigland at redhat.com>
-
- - slight correction in description of expected_votes - leave votes="1" out of standard node descriptions - add a section on specifying node votes
-
- A node gets 1 vote by default when no votes value is specified. Remove votes="1" in the examples since it's unnecessary and we don't specify any other values when using the default.
-
- add -D debugging option
-
- add debugging output for -D and a check to see if ccs connect works
-
-2004-12-09 Patrick Caulfield <pcaulfie at redhat.com>
-
- lkb_dequeue s/b res_lkb_dequeue
-
-2004-12-09 David Teigland <teigland at redhat.com>
-
- prefix output with prog name
-
-2004-12-08 Daniel Phillips <phillips at redhat.com>
-
- Whoops.
-
- - Fixed struct client pointer stability bug in server too - Merged Ben's lock handling functions
-
- Fix struct client pointer stability bug in server too
-
-2004-12-08 David Teigland <teigland at redhat.com>
-
- update from src files
-
- update from src files
-
- use dlm alt modes for LM_FLAG_ANY
-
- Two new flags that can be used for gfs's ANY flag: ALTPR and ALTCW. ALTXX means a lock is requested in XX mode if the ordinary request mode cannot be granted. If neither can be granted, the ordinary mode applies. The ALTMODE flag is returned if the alternate mode was granted.
-
-2004-12-08 Daniel Phillips <phillips at redhat.com>
-
- Turn off tracing, remove server crash simulation
-
- - bug fix: remove premature optimization that breaks when blocksize < chunksize - Add client in-flight retry on reconnect or failover - fix synchronizing bugs in kernel failover - Add a level of indirection to client vector so array compaction on client disconnection works properly (Ben had a different fix for this) - agent: don't retry connect if server connection fails, wait for new server
-
-2004-12-07 David Teigland <teigland at redhat.com>
-
- slight correction on how leave remove works
-
-2004-12-06 Ken Preslan <kpreslan at redhat.com>
-
- Got rid of some unused LM flags.
-
- Fix bug #141821. KNFSD could call into GFS to do a lookup on ".." of the root directory. GFS wasn't handling this correctly.
-
-2004-12-06 David Teigland <teigland at redhat.com>
-
- minor update
-
- don't leave if gfs is mounted
-
- Re-order some initialization so that ccs errors will be caught and reported before fenced forks into the background.
-
-2004-12-03 Ken Preslan <kpreslan at redhat.com>
-
- More excellent comments from ben.m.cahill at intel.com.
-
-2004-12-03 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't send a KILL message if a node has the wrong generation number, try to work it out amicably with a CHECK transition instead.
-
- Add send/recv API to libcman, and some comments to libcman.h
-
-2004-12-03 David Teigland <teigland at redhat.com>
-
- clean up join_ccs code
-
-2004-12-03 Ken Preslan <kpreslan at redhat.com>
-
- D'oh. Missed some files.
-
- o Add "oopses_ok" mount option. This allows GFS to oops instead of panic on assertion failures. This will hopefully allow easier debugging in some situations. But, using this option will make it possible for a GFS oops on one machine to forever stall the filesystem on all other machines in the cluster. Use will *extreme* care. o Start working utility functions to allow better error handling.
-
-2004-12-02 Benjamin Marzinski <bmarzins at redhat.com>
-
- added the stack overflow fix to head (rbz139863) gfs_glock_nq_m(), nq_m_sync(), and gfs_glock_nq_m_atime() no longer have arrays on the stack.
-
-2004-12-02 Ken Preslan <kpreslan at redhat.com>
-
- Declare the RO array in gfs_sort() staticly instead of dynamicly on the stack. :-(
-
- Fix a spot where we weren't propagating away errors.
-
- Update.
-
-2004-12-02 Patrick Caulfield <pcaulfie at redhat.com>
-
- Make sure transitionreason gets set if inherit mastership from a dead master node.
-
-2004-12-02 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- add servicelist to man
-
- spell generation correctly in prints. add servicelist to usage() reoder lock stats.
-
-2004-12-02 David Teigland <teigland at redhat.com>
-
- - update cluster startup tips, including new fenced delay/options - include cluster.conf update procedure from a linux-cluster mail
-
- add fence_tool
-
- Add an msleep(500) to dlm_recoverd in an attempt to avoid the same invalid wakeup we've seen before.
-
- add fence_tool man page
-
- A bunch of improvements: - Wait for the cluster to be quorate before starting or killing fenced. Waiting here lets the join/leave be cancelled easily (not the case if it blocks in SM). - Unfence ourselves before joining the fence domain. Can be skipped with -S. - Accept the c/j/f fenced options and pass them on to fenced when we exec it (since fence_tool is the usual way of starting fenced.) - Get rid of -t timeout option which isn't useful now that we have the c/j/f options [...]
-
- ignore the S option that fence_tool uses and may be inherited with the other args
-
-2004-12-02 Patrick Caulfield <pcaulfie at redhat.com>
-
- Clear joining_node after a client-end transition
-
-2004-12-01 David Teigland <teigland at redhat.com>
-
- only do lvb recovery when a node is removed from the lockspace
-
-2004-12-01 Patrick Caulfield <pcaulfie at redhat.com>
-
- Tidy up the node_id assigning code. With the changes made a while ago, a lot of this has become redundant and has been replaced with something much smaller and tidier. With luck it'll work too.
-
-2004-12-01 David Teigland <teigland at redhat.com>
-
- lvb sequence number should be incremented by dlm_unlock
-
-2004-12-01 Daniel Phillips <phillips at redhat.com>
-
- Turn off tracing output, remove extraneous debug output
-
- - Csnap server now has journalling and recovery, it seems to work - The buffer layer is now a separate compilation unit, Alasdair should be happy. - Kernel client has failover recovery and lock upload support - Miscellaneous bugfixes
-
-2004-12-01 David Teigland <teigland at redhat.com>
-
- DEBUG2 should be off by default
-
- Use sequence numbers to restore the most recent lvb copy during recovery when none of the locks have a definitive copy.
-
- zero the lvb when it's invalid since the dlm will not necessarily do that any more
-
- new cluster.conf tag names
-
- another tag name change
-
-2004-11-30 Jonathan Brassow <jbrassow at redhat.com>
-
- - updated fence_devices/device, but forgot nodes/node
-
- - updates to reflect change in cluster.conf tags
-
- - updates to reflect tag name changes in cluster.conf
-
- - update docs to reflect tag name changes in cluster.conf
-
- - updates for new cluster.conf tags
-
- - update example cluster.conf to reflect changes in tag names
-
-2004-11-30 Chris Feist <cfeist at redhat.com>
-
- Added fence_bladecenter.8 & fenced.8 to the install script for fence manpages.
-
-2004-11-30 Lon Hohberger <lhh at redhat.com>
-
- Reflect jparsons's changes to cluster.conf structure
-
-2004-11-30 Patrick Caulfield <pcaulfie at redhat.com>
-
- header->flags needs to be byteswapped since I made it an int.
-
-2004-11-30 David Teigland <teigland at redhat.com>
-
- begin ccs requests with /cluster instead of //cluster
-
- ccs request began //nodes/ instead of //cluster/nodes/ Both work but the later is consistent with the other uses.
-
- missed clearing VALNOTVALID flag in unlock case
-
- Add -u option to unfence the node. Does nothing if unfencing isn't supported by the agent.
-
- - add code to support unfence option - change default post-join-delay to 6 sec
-
- more helpful error message
-
-2004-11-25 Jonathan Brassow <jbrassow at redhat.com>
-
- - remove some print statements and refine todo list
-
-2004-11-24 David Teigland <teigland at redhat.com>
-
- don't include old license dir
-
- munge usage wording
-
- Fix some problems in the recently added lvb and valnotvalid flag recovery.
-
- add content
-
- Update per recent changes and new preferred option: -n <nodename>
-
- While waiting for a manual ack, also check to see if the node has rejoined the cman cluster -- if it has, take that as an ack. This new check is a no-op when using gulm.
- nodename="hostname" is now the preferred node-specific manual
- fencing data instead of ipaddr="hostname". (The ipaddr form is still
- recognized.)
-
- Similarly, fence_manual -n <nodename> and fence_ack_manual -n <nodename>.
- (-s <ip> is still recognized for fence_ack_manual)
-
- (There has been some discussion about a possible new name for this agent,
- although fence_manual would remain an alias for any new name.)
-
-2004-11-23 Ken Preslan <kpreslan at redhat.com>
-
- More comments from ben.m.cahill at intel.com.
-
-2004-11-23 Patrick Caulfield <pcaulfie at redhat.com>
-
- Tidy the language, fix a few typos, and update it a little.
-
-2004-11-23 David Teigland <teigland at redhat.com>
-
- remove warning and a couple unnecessary type casts
-
-2004-11-22 Jonathan Brassow <jbrassow at redhat.com>
-
- - make the "in_sync" flag log based (rather than module-based) this way, different mirror sets can have their own state of in-sync or not.
- - fix bug that allowed different nodes to have different views of
- who the master is.
-
-2004-11-22 Ken Preslan <kpreslan at redhat.com>
-
- When updating the atime, don't demote the glock back to shared unless someone else is asking for it.
-
-2004-11-22 Patrick Caulfield <pcaulfie at redhat.com>
-
- Make command-line options override CCS rather than the other way round. That really annoyed me.
-
- Remove some redundant code.
-
- Tweaks to init script
-
-2004-11-22 David Teigland <teigland at redhat.com>
-
- The VALNOTVALID flag was being incorrectly cleared during recovery in cases where it was already set prior to recovery.
-
- The lvb wasn't being copied into the master-copy lkb on unlocks, so when the unlock entailed an lvb write, an old value was used. This solves the problem of gfs's cached stat values being wrong.
-
-2004-11-20 Jonathan Brassow <jbrassow at redhat.com>
-
- - a little clean-up - basic optimization (test)
-
-2004-11-19 Lon Hohberger <lhh at redhat.com>
-
- Re-enable support for specifying target nodes for enable/disable/etc.
-
- - Read configuration data before joining the service group - Forward disable requests to the correct member
-
-2004-11-19 Ken Preslan <kpreslan at redhat.com>
-
- Get rid of unneeded return value.
-
-2004-11-19 Lon Hohberger <lhh at redhat.com>
-
- Add checks to make sure the nfs daemons are running.
-
-2004-11-19 Ken Preslan <kpreslan at redhat.com>
-
- o Clean up some memory allocation code o Munge comments
-
- Clean up the statfs code some.
-
-2004-11-19 Patrick Caulfield <pcaulfie at redhat.com>
-
- If a nodes dies after beiung sent a JOINCONF then remove it from all nodes in the cluster, not just us.
- Might fix 133512
-
- Clean joining_nodeid in a few places. Also mark a joining nodeid dead before cancelling a transition.
- Should (probably) fix 139958
-
-2004-11-19 David Teigland <teigland at redhat.com>
-
- Allow delays of -1 to indicate forever.
-
- Three config options for fence deamon can be set in cluster.conf or on command line. The "delay" option added earlier is replaced by "post_join_delay" and the default is 3s. It's the length of time we would wait after adding a new node before fencing any victims (if there are any.) This helps to avoid spurious fencing on cluster startup.
- "post_fail_delay" is the number of seconds we will wait before
- fencing a failed node. This provides a chance for it to rejoin
- the cluster and avoid being fenced. The default is 0s which is
- equivalent to past behavior.
-
- "clean_start" if 1 indicates that all nodes should be assumed in
- a clean state to start. Any nodes in an unknown state when the
- fence domain is formed and enabled will not be fenced. This can
- be dangerous to enable. The default is 0.
-
- These can optionally be added to cluster.conf in the section
- <fence_daemon post_join_delay="x" ...>
- </fence_damon>
-
-2004-11-19 Ken Preslan <kpreslan at redhat.com>
-
- Many more good comments from ben.m.cahill at intel.com.
-
-2004-11-18 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- switched = to += so I can add paths to LIBS
-
- if a plock IS_SETLKW, then it is a *blocking* request.
-
-2004-11-18 Patrick Caulfield <pcaulfie at redhat.com>
-
- Change dead_node_lock to a spinlock and don't hold it for nearly as long. Don't cancel join if we get a WAIT after an ACK. This speeds up bulk rejoins quite a lot and also gets rid of some scary messages.
- Add a BUG() and printks that may help in tracking down 133512
-
-2004-11-17 Chris Feist <cfeist at redhat.com>
-
- Fixed problems w/ make uninstall not working w/ rgmanager.
-
- Uninstall script didn't uninstall gnbd.h properly.
-
-2004-11-17 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- The compiler is generally better at knowing when to try to inline functions than I am. And it gets confused when I am wrong.
-
-2004-11-17 Ken Preslan <kpreslan at redhat.com>
-
- Missed a use of the async flag that was just removed.
-
- o Fix things so a freeze call requesting the transaction lock can't cancel a recovery process requesting the transaction lock. o All our lock modules are now asynchronous. Get rid of support for sync modules.
-
- Get rid of unneeded file.
-
-2004-11-17 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix some comments
-
- Add a compatibility layer (conditionally compiled in) for using a 32bit libdlm on systems with a 64bit kernel.
-
-2004-11-17 David Teigland <teigland at redhat.com>
-
- Add more intelligence to fence daemon to avoid fencing nodes when we detect conditions where it might be likely.
- When fence victims are added following a node /joining/ the fence
- domain (rather than the usual of victims added following a node
- failing), it's a good clue that other nodes may be in the process
- of joining the cluster and therefore unfairly marked for fencing.
-
- When this is detected, delaying for a configurable number of seconds
- before doing the actual fence operation can allow victim nodes some
- time to join the cluster and avoid being fenced. The default delay
- in this event is now at 3s, but increasing it to 10s may be better.
-
- It can optionally be set in cluster.conf by adding:
-
- <fence_daemon delay="10">
- </fenced_damon>
-
-2004-11-17 Jonathan Brassow <jbrassow at redhat.com>
-
- - add cmirror target - fix rgmanager referencing magma-plugins/make/release.mk.input for the tarballs target
-
- - forgot the uninstall script
-
- - cluster mirror
-
- - fix seg fault that occurs when querying ccs with desc that is too large rbz134608
-
-2004-11-16 Ken Preslan <kpreslan at redhat.com>
-
- o Fix bug #133368. Change the code to trigger calls to lm_cancel() on LM_FLAG_PRIORITY requests instead of LM_FLAG_NOEXP requests. o Don't call lm_cancel() as often.
-
-2004-11-16 Lon Hohberger <lhh at redhat.com>
-
- - Add support for "-o" option to control on/off/reboot. - Add support for RPC/TPS/IPS series switches from WTI.
-
- Use -n instead of -p for port number. Ignore case for options read from stdin. Actually handle -v argument.
-
- Add support for the widely-used RPS-10M-HD modules. (2 node clusters ONLY)
-
-2004-11-16 Ken Preslan <kpreslan at redhat.com>
-
- Formatting munge.
-
-2004-11-16 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix broadcast.
-
- Fix debug print
-
- Undo last check-in for this file that came from a bogus tree. wrists have been slapped.
-
-2004-11-15 Patrick Caulfield <pcaulfie at redhat.com>
-
- Make the API a little more consistent. nodeid==0 always means (this node) and GETALLMEMBERS can be called witha NULL parameter to get the number of nodes.
-
- use GET_ALL_MEMBERS to return number of nodes in the cluster as it's consistent with the get_members call.
-
-2004-11-15 David Teigland <teigland at redhat.com>
-
- We should wait for the fence domain join to complete before allowing a gfs mount, and not allow a mount if the node is in the domain but leaving.
-
- Bug in names_equal() caused nodes to never be identified as "first victims". Now that this is fixed, people may start noticing their nodes being fenced when they're not in the cluster and a new fence domain is started.
-
-2004-11-12 David Teigland <teigland at redhat.com>
-
- fix can_avert_fence() function, was using cman api incorrectly
-
-2004-11-12 Patrick Caulfield <pcaulfie at redhat.com>
-
- Udev script (goes in /etc/udev/rules.d) for creating DLM devices.
-
-2004-11-11 Lon Hohberger <lhh at redhat.com>
-
- Clean up bad mallocdbg stuff
-
-2004-11-11 Patrick Caulfield <pcaulfie at redhat.com>
-
- Make the default lockspace AUTOFREE so that it gets deleted when the last user closes it.
-
- Add a flag to userland lockspaces that will cause them to be deleted when the last user closes the device.
-
- Get rid of suprious ASSERT in dlm_unlock that broke cancellations. Remove locking from a routine that is only ever called from ASSERT, it only causes the ASSERT to deadlock without producing any debug info :)
-
- Decrement the module count if returning -EEXIST from dlm_new_lockspace().
-
-2004-11-10 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix refcounting error.
-
- Return the LVB "INVALID" state to users when the LVB has been invalidated.
-
- Byteswap (if appropriate) new rl_flags field.
-
- When comparing node states, "JOINING" is effectively the same as "DEAD", so don't screw up a cluster transition for that small semantic difference.
- Should close #133512
-
-2004-11-10 David Teigland <teigland at redhat.com>
-
- add a log_debug line
-
- freeing a value before using in debug print
-
- add an extra line to syslog to help track what's happening
-
-2004-11-09 Chris Feist <cfeist at redhat.com>
-
- Fixed name of tarball to install.
-
- Created a .PHONY tag for srpms.
-
- No error if srpms already exists.
-
-2004-11-09 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't try to reconnect when we get EOF on a socket.
-
-2004-11-09 Ken Preslan <kpreslan at redhat.com>
-
- Add some locking to the recent list and forward pointer when tearing down the RG list. It's not strictly necessary, since there will be no one allocating during the tear-down. But...
-
- Fix my stupidity.
-
- o Fix bug #135684. Change code to make sure a RG is part of the "recent" list before removing it from that list. Thanks to alexander.laamanen at tecnomen.com o Other allocator cleanups.
-
-2004-11-09 Chris Feist <cfeist at redhat.com>
-
- Updated location of srpms.
-
-2004-11-08 Patrick Caulfield <pcaulfie at redhat.com>
-
- Remember to assign parent during RSB rebuild.
-
- Tidied up the userland/kernel interface so that all the data transfer happens in the read/write path rather having some copy_*_user side-effects. Also tidy the dlm_*_wait() calls so they share code with the normal calls.
- This breaks kernel/userland compatibilty. You must upgrade both kernel and
- userland (libdlm) together!
-
- Move lowcomms_close() outside of the spinlock, as it may want to sleep.
-
-2004-11-08 David Teigland <teigland at redhat.com>
-
- these changes should fix the rare problem of waking a recoverd thread that's already exited
-
-2004-11-05 Patrick Caulfield <pcaulfie at redhat.com>
-
- Only overwrite the user's LVB if the lockop has changed it
-
-2004-11-04 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- Fix lock_gulm.ko for nonSMP kernels. Silly me, spinlock_t has no size when nonSMP. Tried to malloc an array of zero length. Don't do that any more. Thanks to Graham Wood for helping me hunt this one down.
-
-2004-11-04 Chris Feist <cfeist at redhat.com>
-
- Moved specfiles to proper name.
-
- Moved GFS-kernel.spec.in to gfs-kernel.spec.in
-
- Fixed directory locations
-
- Added spec file.
-
- Fixed dlm.spec.in
-
- Added spec file for dlm-kernel
-
- Added spec file for fence
-
-2004-11-04 David Teigland <teigland at redhat.com>
-
- Set the VALBLK flag on the NL locks used for gfs's hold_lvb. Not mixing lvb/non-lvb locks makes the recovery effects more sensible although no different in the end.
-
- Allocate an lvb for a new master rsb during recovery if any VALBLK locks exist, even NL. This is a minor incremental change in lvb recovery.
-
-2004-11-04 Patrick Caulfield <pcaulfie at redhat.com>
-
- lowcomms_close can be called when atomic, so we can't use nodeid2con (which uses a semaphore). Get the connection directly instead. This should be safe because lowcomms_close is called during early recovery.
-
- Keep a local copy of cbinfo->isoob as cbinfo can be freed before reaching the while -- causing an oops.
-
-2004-11-03 Chris Feist <cfeist at redhat.com>
-
- Changed srpm building location.
-
-2004-11-03 Lon Hohberger <lhh at redhat.com>
-
- Fix changes WRT bash 3. Use the 'ip' command instead of ifcfg for now. Don't arping if ipv6.
-
- No longer needed.
-
- Don't free old block if realloc fails
-
-2004-11-03 David Teigland <teigland at redhat.com>
-
- update from src files
-
- remove 2.6.8.1 patches
-
- missed a couple spots when removing rcom stats
-
-2004-11-02 Lon Hohberger <lhh at redhat.com>
-
- Clear out references to mallocdbg. Remove mallocdbg files. Fully clean up memory before exiting. Make sure we free *everything* we allocate.
- Add fixed-size alloc/free file.
-
- Remove mallocdbg references.
-
- Remove mallocdbg files + refs. Give ourselves ways to free/clear out all internal state (msg_shutdown(), clist_purgeall(), etc.).
-
-2004-11-02 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - get lock_gulm.patch uptodate with source.
-
-2004-11-02 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add some locking around queue traversal.
-
-2004-11-02 David Teigland <teigland at redhat.com>
-
- Add a semaphore to serialize recovery with mount-group portion of unmount. This avoids a potential hang during unmount where both the recovery and unmount threads believe the other will call kcl_start_done() to complete the recovery. Unlikely this has been seen in practice, but possible.
-
- remove rcom debugging code that we're not using
-
- allow max nodes to be set from /proc/cluster/lock_dlm/max_nodes
-
-2004-11-02 Chris Feist <cfeist at redhat.com>
-
- Fixed variable in rpm spec file.
-
- Added rpm spec file.
-
- Fixes in the script to build srpms. Fixes in the misc. spec files.
-
-2004-11-01 Chris Feist <cfeist at redhat.com>
-
- Added rpm spec file for gnbd
-
- Fixes to the scripts for building SRPMS.
-
- RPM spec file for magma.
-
- Added a script for building srpms from the individual components.
-
-2004-11-01 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- By default, gulm determins the name of the machine it is on with gethostbyname(). Then it looks up an ip from this name to use as its IP.
- There are now three ways to override these defaults. --name will use the
- name given instead of what is in gethostbyname(). --ip will use that
- address for this machine. (don't be stupid and set it to a value that isn't
- configured to this machine.) And --ifdev will lookup the ip from the
- configured network device. --ip overrides --ifdev.
-
- These options are only available form the command line options.
-
- Fix __you_cannot_kmalloc_that_much by switching the large kmallocs to vmallocs.
-
-2004-10-31 Daniel Phillips <phillips at redhat.com>
-
- Added kernel snapshot read lock upload for failover Added kernel worker daemon recovery for failover
-
-2004-10-29 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- Allow gulm services to lock core. Locked core will ignore the shutdown requests. gulm services that lock core must logout to unlock core. currently anything from kernel space locks core.
-
- Fixed an end case weirdism. Given a cluster with three servers, and at least two clients. Kill the Master, a Slave, and all but one client. Wait for the remaining Slave to become Arbitrating, and completely fence all dead nodes. After all killed nodes reboot, restart lock_gulmd as concurrently as possible. The journals for the mounted clients will not get replyed. The Problem. The lock_gulmd on the Slaves log into the Arbitrator, Arbit becomes Master. Lock_gulmd on killed Client [...]
-
-2004-10-29 Jonathan Brassow <jbrassow at redhat.com>
-
- - ensure that the config_version is an integer
-
-2004-10-29 David Teigland <teigland at redhat.com>
-
- allow drop_locks_count of zero to disable drop callbacks altogether
-
-2004-10-28 Ken Preslan <kpreslan at redhat.com>
-
- More comments from ben.m.cahill at intel.com.
-
-2004-10-28 Chris Feist <cfeist at redhat.com>
-
- Fixed configure script so it would configure rgmanager.
-
-2004-10-28 Jonathan Brassow <jbrassow at redhat.com>
-
- - change a log_msg to log_err, so that the error is printed even if the user does not specify the -v
-
- - fix problem that generated a circular dependency
-
-2004-10-28 Patrick Caulfield <pcaulfie at redhat.com>
-
- Example of using libcman
-
- First cut of a libcman - comments welcome
-
- Add userland API to get the cluster name/ID
-
- Tidy the userland API so it takes nodeid 0 to mean "us"
-
-2004-10-28 David Teigland <teigland at redhat.com>
-
- Cached null locks that had been used with plocks were being freed too early, before the the unlock completion ast.
-
-2004-10-27 Ken Preslan <kpreslan at redhat.com>
-
- Fix minor permissions issue.
-
-2004-10-27 Lon Hohberger <lhh at redhat.com>
-
- Prune tree when a child type is not allowed
-
-2004-10-27 Ken Preslan <kpreslan at redhat.com>
-
- Fix bug #126952
- Now, GFS freezes and unfreezes a filesystem by reading and writing to
- /proc/fs/gfs instead of doing ioctl()s directly on GFS files. This
- fixes a bug where a process trying to unfreeze a filesystem would end
- up blocking behind another process holding a lock on the mountpoint
- and waiting for the filesystem to be unfrozen. This bug has always
- been present, but it's much more visible in the 2.6 code.
-
- Note that the arguments to "gfs_tool [un]freeze" need to be exactly
- what's found in /proc/mounts now.
-
- Also, "gfs_tool margs <mountargs>" replaces the old way of specifying
- extra mount arguments: "echo <mountargs> > /proc/fs/gfs".
-
- Whitespace munging.
-
-2004-10-27 Lon Hohberger <lhh at redhat.com>
-
- * Pass SHAREDIR to build. * Support 'forbid' flag to prevent resource children.
-
-2004-10-27 Chris Feist <cfeist at redhat.com>
-
- Removing accidetally include defines.mk
-
- Added makefile
-
- Updated configure scripts to include a share directory (required by rg_mamanger)
-
-2004-10-27 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- Fixed some queue jumping. If the lock was held shared, and a new request for shared came along, the new request would succeed, even if there was another request in the conflict queues that came prior to it.
-
-2004-10-27 Lon Hohberger <lhh at redhat.com>
-
- Removed. Replaced by clusterfs.sh/netfs.sh
-
-2004-10-27 Chris Feist <cfeist at redhat.com>
-
- Fixed rgmanger build process
-
-2004-10-27 Lon Hohberger <lhh at redhat.com>
-
- Add preliminary netfs (NFS) and clusterfs (e.g. GFS) resource agents. Add verify-all support to all file system agents.
-
-2004-10-27 Chris Feist <cfeist at redhat.com>
-
- Added make directory for rgmanager
-
- Changed the build process for rgmanager so it more closely resembles the other directories in cluster.
-
-2004-10-27 Ken Preslan <kpreslan at redhat.com>
-
- Stop compiler warnings.
-
-2004-10-27 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - If a node remounts on the jid while we are replaying thier journal, don't be mean and mark the jid as being free when we finish. - for real, remove the gulm_jid.h file.
-
-2004-10-26 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - removed node locks. The things they worked around in the past do not need working around anymore. - remove gulm_jid.h works better if in gulm.h (not to mention some bits were wrong.)
-
-2004-10-26 Chris Feist <cfeist at redhat.com>
-
- Updated version number
-
- Added a target to edit the release numbers when preparing tarballs.
-
-2004-10-26 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - stop multiple local jid list scans on the same fs from trampling each other.
-
-2004-10-26 Patrick Caulfield <pcaulfie at redhat.com>
-
- warning - large checkin.
- Change to using kernel_sendmsg & kvecs instead of sock_sendmsg & iovecs.
- This makes the code a lot neater in places and gets rid of some potential
- user/kernel address confusion.
-
- Oh, and it only works on 2.6.8 upwards.
-
-2004-10-26 Lon Hohberger <lhh at redhat.com>
-
- Fix x86_64 build warnings
-
- Fix warning on x86_64
-
-2004-10-26 David Teigland <teigland at redhat.com>
-
- A little optimization I've intended to do forever: get rid of the node list search in name_to_nodeid. Add a nodeid array to just index into.
-
-2004-10-26 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add priority to cman sockets
-
-2004-10-26 Lon Hohberger <lhh at redhat.com>
-
- Copy changes to old cman plugin.
-
- Fix bug feist was seeing during builds on x86_64
-
- Change to match magma API changes (clu_members_lost->memb_lost)
-
- Take out unnecessary printfs. Change to match with new memb_lost/gained functions in magma.
-
- (1) Split up thread and non-thread libraries so applications which do not need pthreads can operate without linking against it. (2) Provide mutual exclusion/sleep hack around default-plugin's locking functions. (3) Change clu_members_lost/clu_members_gained to memb_lost/memb_gained to match up with other functions. (4) Add cp_connect function. (5) Add thread_test program for exercising multithreaded locking using magma's clu_lock/clu_unlock functions. (6) Clean up warnings in cluster_cmd
-
- Ensure we wait for the AST during the unlock as well as the lock. Simplify when we assign/free the lksb in the lock function.
-
-2004-10-25 Lon Hohberger <lhh at redhat.com>
-
- Make all the different libdlm targets use -fPIC during builds for proper symbol relocation on x86_64
-
-2004-10-25 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - sometimes when starting multiple gulm server for the first time, some may drop out due to GenID conflicts. At times other than this startup case, this is what we want. But when we are just starting up like this, we'd rather that the server give it another try. So they do that now.
-
-2004-10-25 Adam Manthei <amanthei at redhat.com>
-
- bug 137035 -- add support for configurable ssl port locations to fence_ilo bug 137037 -- Add support for perl-Crypt-SSLeay package to fence_ilo
-
- man page for fence_bladecenter
-
- Yet another method for fencing the IBM bladecenter. This method requires that the bladecenter is running with firmware new enough that provides a telnet interface to the management module. This effectivley deprecates fence_xcat and is now the preferred fencing agent for the IBM bladecenter.
-
-2004-10-25 Lon Hohberger <lhh at redhat.com>
-
- Per Patrick's comments: open/create lockspace when first lock is taken instead of at init time.
-
-2004-10-25 Patrick Caulfield <pcaulfie at redhat.com>
-
- Remember to free connections[0] if initialisation fails.
-
- Don't deref freed skb. Thanks Ben.
-
- Close any created listening sockets "listen_for_all" fails
-
- Only wake astd when there is work for it to do. Also make the wake condition consistent with the check for work
-
-2004-10-22 Lon Hohberger <lhh at redhat.com>
-
- Add cp_connect() function to library. Make cptester only use cp_* functions.
-
- Use libdlm_lt with cman and sm plugins (removes dependency on dlm_pthread_*). Also make all the return value semantics match.
-
-2004-10-22 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - update the patch.
-
-2004-10-22 Benjamin Marzinski <bmarzins at redhat.com>
-
- removed unneeded variable
-
- Updated gnbd-kernel patches for 2.6.9
-
-2004-10-22 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - Updated lcok_gulm for the 2.6.9 kernel.
-
-2004-10-22 Chris Feist <cfeist at redhat.com>
-
- Added cman-kernel patches for the new 2.6.9 kernel.
-
-2004-10-22 David Teigland <teigland at redhat.com>
-
- update
-
- update from src files
-
- Change the default drop-locks value to 50,000. Both the drop locks value and period are now configurable through proc.
-
-2004-10-22 Patrick Caulfield <pcaulfie at redhat.com>
-
- Revert 1.40 as it causes astd to spin for some reason I haven't fathomed yet.
-
-2004-10-22 David Teigland <teigland at redhat.com>
-
- Update to the new plock lm interface and 2.6.9. This fixes the problem where the dlm and vfs locks could get out of sync.
-
-2004-10-22 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- Don't requeue front on conflict with priority flag. Else there is a race with multiple lock requests with priority flag that deadlocks request.
-
-2004-10-22 Ken Preslan <kpreslan at redhat.com>
-
- Update to 2.6.9. (Lock_dlm and lock_gulm are broken until updated by their owners.)
-
-2004-10-22 Daniel Phillips <phillips at redhat.com>
-
- Fix csnap_create so that csnap_destroy recovers dm devices on error Fiddle with command line arg order, really needs proper arg parsing
-
-2004-10-21 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add some (optional) stats collecting.
-
- Don't call wake_astd when we're doing a remote unlock.
-
- Add lock ORPHAN state, and associated query. Locks go into this state when they are marked PERSISTENT and the user process exits without unlocking.
- Thanks to Stanley Wang of Intel for most of this.
-
-2004-10-21 David Teigland <teigland at redhat.com>
-
- mention how to use a different port for cman
-
- udp, not tcp
-
-2004-10-20 Ken Preslan <kpreslan at redhat.com>
-
- Update patch.
-
- Stuff all of the assert message into the panic call.
-
-2004-10-20 Chris Feist <cfeist at redhat.com>
-
- Removed a debug line from the Makefile, which is not necessary anymore
-
-2004-10-20 David Teigland <teigland at redhat.com>
-
- We need to call process_requestqueue() when finishing a first recovery (upon joining the lockspace). Although rare, it's possible to get dir lookups from other nodes prior to our own finish. These need to be taken off the requestqueue and processed. Hung gfs mounts are one evidence of this bug.
-
-2004-10-19 Benjamin Marzinski <bmarzins at redhat.com>
-
- Fixed gnbd_import and gnbd_export so that -r with no devices returns an error. This still needs to be fixed in the 6.0 code
-
-2004-10-19 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - Added command to gulm_tool to query the services that have connected to a given gulm_core.
-
-2004-10-19 Patrick Caulfield <pcaulfie at redhat.com>
-
- Changed the protocol header to include the source port number so it can be passed to an application. I've moved things around in the header so if you try to use an old cman with this one they should just not see each other.
- Also widen the flags to an int32 so we don't havd to do that ugly shifting
- when checking them...it also keeps the structure aligned correctly.
-
-2004-10-19 David Teigland <teigland at redhat.com>
-
- a "minimum gfs" howto that I wrote up a long time ago: one dedicated gnbd server and two gnbd clients as gfs nodes, haven't actually walked through and tested it, so...
-
- A slight variation on one of the recovery special cases wasn't handled correctly; add small fix and extend comment description.
-
- the journalid code inherited the hold_lvb changes for gfs; it's not necessary so skip
-
- update per build improvements by cfeist and anticipating a 2.6.9 kernel
-
-2004-10-19 Daniel Phillips <phillips at redhat.com>
-
- Agents now instantiate servers using a dlm-based protocol
-
-2004-10-19 Chris Feist <cfeist at redhat.com>
-
- Misspelled the module_dir in the previous checkin. (It was moduledir)
-
- Modified the 'make all' command to install the files into the cluster/build directory. This allows one to do 'make all' and build everything w/o actually installing files somewhere on the system.
-
- Removed old includes from the kernel. Added an include for ${incdir} in case inc dir is not /usr/include
-
-2004-10-18 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add a loopback to the comms layer so that clients can send messages to themselves or other clients on the same node.
- Note that, by default, broadcats sends will still /not/ be copied to the
- local system unless MSG_BCASTSELF is added to the flags.
-
- Compile two DLM libraries, one that needs pthreads, and one that doesn't
-
-2004-10-15 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - i know they're unused, but it hurt my brain less if they're atleast correct.
-
-2004-10-15 Daniel Phillips <phillips at redhat.com>
-
- Add agent.c and sendagent.c
-
-2004-10-15 Jonathan Brassow <jbrassow at redhat.com>
-
- - fix for bug rbz134282 (bad handling of port number specification)
-
-2004-10-15 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - stop printing out lock ids in different formats. its confusing.
-
- Here's a patch to fix a gulm_tool bug that allows a user to enter the commands `gulm_tool nodelistcrap $server` and `gulm_tool nodeinfocrap $server $node`. patch from adam manthei.
-
-2004-10-14 Daniel Phillips <phillips at redhat.com>
-
- Sigh. Get the gfs bits out of the patch
-
- Teach diff about dm-csnap.c and dm-csnap.h
-
-2004-10-14 Patrick Caulfield <pcaulfie at redhat.com>
-
- A simple DLM "hello world" example from Daniel.
-
- Improve support for PERSISTENT locks, and make the lkid checking a bit more paranoid.
-
-2004-10-14 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - This removes the limit of 300 jid mappings.
-
- - get builds with --prefix working.
-
-2004-10-13 Ken Preslan <kpreslan at redhat.com>
-
- Don't align the glock hash buckets. The gfs_sbd structure is now about 10 times smaller.
-
- Formatting.
-
- o Fix bug #135249 with a lot of help from Dave Teigland. Ever since the create transaction was broken into two transactions, it was possible for the second transaction to happen without having to allocate disk space. When this happened, GFS wasn't locking the resource index before searching it. Add the correct locking. o Other munging.
-
-2004-10-13 Patrick Caulfield <pcaulfie at redhat.com>
-
- add DLM_SBF_VALNOTVALID so that the examples compile again. It's not implemented yet, but will be.
-
- Quick overview of the libdlm function calls.
-
- Dear, oh dear this was out of date. This should be a lot better but please report anything still amiss.
-
- Fix lock modes constants that were incorrect.
-
- Simple LVB test prog
-
-2004-10-13 David Teigland <teigland at redhat.com>
-
- use simpler kthread routines for serviced
-
-2004-10-13 Patrick Caulfield <pcaulfie at redhat.com>
-
- Open the default lockspace if dlm_get_fd() is called before any other locking operations. Make sure that any routines calling pthreads are surrounded by #ifdef _REENTRANT so a non-pthread library can still be built.
-
-2004-10-13 David Teigland <teigland at redhat.com>
-
- fix dependency
-
-2004-10-13 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - VFS does weird things with the error results, so before we try to return a gulm error code, flip it to -1. This fixes bz#132772
-
- - don't return positive error codes on loc module mount failures. does not fix bz#132772
-
-2004-10-12 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - plug leaky memory.
-
-2004-10-12 Ken Preslan <kpreslan at redhat.com>
-
- I killed a bunch of people once.
-
-2004-10-12 Patrick Caulfield <pcaulfie at redhat.com>
-
- Move pingtest into userspace and check for invalidated LVBs
- Also some cosmetic changes to the other tests that were lying around
- in this directory when I typed "cvs commit"
-
-2004-10-12 David Teigland <teigland at redhat.com>
-
- another shot at correctly stopping dlm_recoverd thread when shutting down the lockspace, the kthread routines aren't much help in this situation
-
-2004-10-12 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't free "othercon" connections when they are closed as they might still be busy in the read loop.
-
-2004-10-11 Lon Hohberger <lhh at redhat.com>
-
- Handle default value in RA parameters
-
- Remove references to handlers for RAs. They're not needed.
-
-2004-10-11 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - don't logout on kill -TERM
-
-2004-10-11 Patrick Caulfield <pcaulfie at redhat.com>
-
- Quit rx loop if the thread is closing down.
-
-2004-10-11 David Teigland <teigland at redhat.com>
-
- Avoid doing a synchronous unlock in unhold_lvb by just letting the lock_dlm thread delete the lock struct when the unlock completes. This prevents a possible deadlock between lock_dlm threads where one is doing recovery and the other is doing a gfs callback which can do an unhold_lvb.
-
-2004-10-09 Ken Preslan <kpreslan at redhat.com>
-
- o Support for immutable and append-only files with a lot of help from Anton Nekhoroshikh <anton at hq.310.ru> o Use intents to help with O_EXCL creates instead of the kludge we were using before. o Other cleanups.
-
-2004-10-08 Lon Hohberger <lhh at redhat.com>
-
- More doxygen stuff
-
-2004-10-08 Patrick Caulfield <pcaulfie at redhat.com>
-
- Close the lowcomms sockets during recovery rather than as soon as cman notices the node has died. This should help synchronise things a bit better and (hopefully) avoid spurious disconnect/reconnect events that could happen.
-
- Forgot to set node_state when a node is killed via STARTTRANS
-
-2004-10-07 Ken Preslan <kpreslan at redhat.com>
-
- Print a message before, as well as after, trying to mount the lock protocol.
-
-2004-10-07 Daniel Phillips <phillips at redhat.com>
-
- Add "manual" csnap server failover
-
-2004-10-07 Ken Preslan <kpreslan at redhat.com>
-
- Munging capitalization and other stuff.
-
-2004-10-07 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - Initalize entire sockaddr6 for binding.
-
- - Fixed tiny memory leak in config parsing.
-
- - was double decrementing the expired holders counter. stopped that.
-
-2004-10-07 Patrick Caulfield <pcaulfie at redhat.com>
-
- Tidy the close_connection() routine. in addition add a parameter telling it whether to close an attched "othercon" or not as close_connection() is often called to shut down in the event of an error and we only want to close down "this" socket, not others that may be busy.
-
-2004-10-07 Daniel Phillips <phillips at redhat.com>
-
- Updated design document with details on server failover
-
-2004-10-06 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - the kernel side of things for getting the posix range F_GETLK cmd.
-
- - the kludging required server side to get something that posix can use for the F_GETLK command.
-
- - try to be a bit clearer about how you can name thigns in the servers list and what gulm does with that.
-
-2004-10-06 Daniel Phillips <phillips at redhat.com>
-
- Remove out of date 2.4.26 kernel patch csnap-agent now accepts multiple local connections, with polling (and so multiple csnap devices on one node works again).
-
-2004-10-06 David Teigland <teigland at redhat.com>
-
- sync up flags with dlm.h
-
-2004-10-06 Ken Preslan <kpreslan at redhat.com>
-
- More comments from ben.m.cahill at intel.com.
-
-2004-10-05 Lon Hohberger <lhh at redhat.com>
-
- More comments
-
- Add Doxyfile. Add lots of Doxygen-readable comments to code.
-
-2004-10-05 Ken Preslan <kpreslan at redhat.com>
-
- A patch from ben.m.cahill at intel.com to install the gfs_mount man page.
-
- Fix a few bugs in the eattr/acl code. Other munging.
-
- Break compound assert into two.
-
- Munge.
-
- blerg.
-
- A command line tool that's a bit smarter about reading a GFS filesystem than gfs_edit is.
-
-2004-10-05 Patrick Caulfield <pcaulfie at redhat.com>
-
- Update highest_nodeid at the client-end of a transition too. There is a tiny chance this could have been causing some memory corruption crashes.
-
- JOINING timeout should go back to JOINWAIT rather than giving up.
-
-2004-10-04 Lon Hohberger <lhh at redhat.com>
-
- Remove MAX_MSG_SIZE limitation
-
-2004-10-04 Daniel Phillips <phillips at redhat.com>
-
- Move development to 2.6.8.1 Replaced csnap-2.6.7 patch by csnap-2.6.8.1
-
- Renamed service.c to agent.c Added unlink for non-abstract named sockets Cleanups in dm-csnap.c client
-
-2004-10-04 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - fiddled with a few comments. - make the dir that pid lock files go into now. - add name and ip to the cmdline arg help.
-
-2004-10-04 Patrick Caulfield <pcaulfie at redhat.com>
-
- Though Id checked this in last week.
- Cope with sparsely allocated (and large) nodeIds. Gets rid of the
- "max_connections" config variable
-
-2004-10-04 David Teigland <teigland at redhat.com>
-
- update from src files
-
- lock_dlm needs to return EAGAIN itself
-
- we must provide the correct astarg to dlm_unlock now that NULL is valid
-
-2004-10-04 Daniel Phillips <phillips at redhat.com>
-
- Get rid of startup race by having csnap server fork its own daemon after successfully binding to port, instead of letting shell do it.
-
- Change to named socket for device control connection
-
-2004-10-01 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- *sigh* :wq
-
- - fix inaccuracies in the counters.
-
-2004-10-01 Patrick Caulfield <pcaulfie at redhat.com>
-
- Kernel check for max nodeid too. in case anyone bypasses cman_tool
-
-2004-10-01 Daniel Phillips <phillips at redhat.com>
-
- Target now asks for connection when it needs one Service.c now looks more like a failover daemon The real devspam.c data checking utility checked in
-
-2004-09-30 Patrick Caulfield <pcaulfie at redhat.com>
-
- I am an idiot
-
- Honour the wanted_nodeid when we are the first node in the cluster.
-
- Don't say "we are leaving the cluster" when we never actually join it.
-
- Sanity check the nodeID
-
- Make sure the nodeids array is increased enough to cope with very large increments in the nodeid. I don't know why anyone would want to add a node id "1000" to a cluster with 10 nodes in it, but it shouldn't oops when you do :)
-
-2004-09-30 David Teigland <teigland at redhat.com>
-
- always take the ast arg from dlm_unlock(), even when NULL
-
-2004-09-30 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - must remember to decrement holder count when removing holders from list.
-
-2004-09-29 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - changes to match last change in userspace.
-
-2004-09-29 Daniel Phillips <phillips at redhat.com>
-
- Now works with unmodified device mapper, hack removed
-
- Create virtual device by execing dmsetup Add example code for establishing connections
-
-2004-09-28 Daniel Phillips <phillips at redhat.com>
-
- Socket-over-socket control interface now functional
-
-2004-09-28 Lon Hohberger <lhh at redhat.com>
-
- Port from clumanager 1.2.x: potential fix for #114388
-
-2004-09-28 Patrick Caulfield <pcaulfie at redhat.com>
-
- Wait for membershipd to shutdown before starting to clean up.
- This should ensure that the LEAVE message will get sent.
-
- Get rid of REMOTEMEMBER
-
- the kernel's interface numbers start at 1, not zero. So we need to increment "number" before passing it into cman.
-
- Remove state REMOTEMEMBER as it's not been used for ages. I've started the enum at 1 so that the other don't move though...
- Also cope better with dodgy networks during join. Send JOINREQ messages
- until we get a JOINACK or we timeout rather than just sulking.
-
-2004-09-27 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - removed unused function.
-
-2004-09-27 Patrick Caulfield <pcaulfie at redhat.com>
-
- Make /proc/cluster/status a bit more consistent in its output, and also show a little more when when not in a cluster.
-
-2004-09-27 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - removed some code that wasn't called anymore. - added some static initializers.
-
-2004-09-27 Patrick Caulfield <pcaulfie at redhat.com>
-
- Print "left cluster" reasons as text.
-
- Tidy daemon shutdown so that membership is always responsible for sending LEAVE messages and will only do them duting its shutdown.
- There are still a few send_leave() calls in other places but these
- are all just before a panic.
-
- Only stop recoverd if it is running
-
-2004-09-25 Daniel Phillips <phillips at redhat.com>
-
- Actually commit (cvs, why are you so broken?)
-
-2004-09-24 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - have magma use the new quorate info.
-
- - update the gulm lib to reflect new quorate info.
-
- - fixing an ism of gulm's gfs-only past. There was not a way for services on clients to truely know if the gulm servers were in quorate or not. So there is a new message that gets pushed out when quorum is gained or lost. this is related to bz #129879
-
-2004-09-24 Daniel Phillips <phillips at redhat.com>
-
- Added devspam.c device data verification utility Added socket-over-socket connection passing, not tested yet!
-
-2004-09-24 David Teigland <teigland at redhat.com>
-
- use down_interruptible, fcntl may return EINTR
-
-2004-09-23 Lon Hohberger <lhh at redhat.com>
-
- First pass at resource tree deltas (tested).
-
-2004-09-23 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - these build again. (forgot to update them with library.)
-
-2004-09-23 Patrick Caulfield <pcaulfie at redhat.com>
-
- Free unused direntry structs when releasing a lockspace.
-
-2004-09-23 David Teigland <teigland at redhat.com>
-
- An agent's error message should now be recorded in syslog (worked in my test). Not sure why WIFEXITED didn't work as expected.
-
-2004-09-22 Benjamin Marzinski <bmarzins at redhat.com>
-
- fixed printing issue for 6.1
-
-2004-09-22 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- Basic posix range locks work in gulm now. Lots of changes required to the gulm lock module to get this working.
- In order to get the plock code in place, the main lock request
- pathways were rebuilt. This made the code cleaner, as there were
- some pretty darn scary things going on before. The down side to this
- is that I changed the lock pathways for everything. The basics do
- seem to work though.
-
- Much of the non-working bits of the jid code were removed. So we're
- still stuck at max cluster size of 300. Will deal with this later.
-
- Through the course of this, I found some files with code I wasn't
- using. They got removed.
-
- Some code was moved around. Some was pulled out of where it was
- randomly shoved originally, and put into its own file.
-
- There is most likely some other cleanup type things that can still
- be done.
-
-
- Mount/unmount on two nodes has been tested.
- ~5 minute runs with make_panic has been tested.
- Couple of plocks can be grabed and released.
- There have been NO recovery tests done yet.
-
-2004-09-22 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add module ownership to various structures so we don't get unloaded whilst busy.
- Might fix bz 133142 but I want to do some more testing first.
-
- Fix bug in debugging routine. I hope we don't need it any more though...
-
- Use C99 initialisers. Also include module reference in file_ops.
-
-2004-09-21 Benjamin Marzinski <bmarzins at redhat.com>
-
- even though you now fence nodes by their cluster name, not their IP address, fence_gnbd still needed an 'ipaddr' parameter, and the man page still said that you should use hostname or IP address. 'ipaddr' is now deprecated, and a warning is printed when it's used. The new parameter is 'nodename'. The man page was also updated.
-
-2004-09-21 Ken Preslan <kpreslan at redhat.com>
-
- Make an assert be more verbose.
-
- Do better asserting in glock_hold().
-
-2004-09-21 Patrick Caulfield <pcaulfie at redhat.com>
-
- Yet another one of those "I can't beleive we've not seen it before" bugs.
- When we close a connection lowcomms now removes any pending writes to
- that node from the writequeue too. I bet this has been responsible for
- some wierd behaviour in the past...
-
-2004-09-21 David Teigland <teigland at redhat.com>
-
- change the way we check for local plock conflicts
-
-2004-09-21 Patrick Caulfield <pcaulfie at redhat.com>
-
- Always return non-zero exit code if we hit an error.
-
-2004-09-21 Benjamin Marzinski <bmarzins at redhat.com>
-
- Updated patches to 2.6.8.1
-
-2004-09-20 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix that deadlock that's been there for ages but only ever pops its head up when you're looking for some other bug.
-
- Tidy.
-
-2004-09-17 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add (untested) SELinux support
-
- Be a bit more paranoid about creating the DLM device node. If it doesn't exist but the lockspace does, then look up the minor in /proc/misc and create it.
-
-2004-09-17 David Teigland <teigland at redhat.com>
-
- get rid of "dir entry exists" messages
-
- add a couple syslog messages when nodes are fenced
-
-2004-09-16 Jonathan Brassow <jbrassow at redhat.com>
-
- - fix for bug rbz 132680
- When an update was issued, the new conf got written to all nodes, but the
- daemon did not pick it up in memory until a request was made. So, if
- an additional update was done from another node before a request was
- made and it failed, the current in-memory (stale) version was rewritten
- to disk.
-
-2004-09-15 Jonathan Brassow <jbrassow at redhat.com>
-
- - remove unneeded print - add debugging line
-
-2004-09-15 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - The first pass at getting range locking for gulm. This is server changes only. So far the basics seem to work. gulm should be implementing range locks that are compatible to what posix range locks expect. Gulm is lazy about merging ranges though, but this shouldn't affect the usage any.
-
-2004-09-15 Jonathan Brassow <jbrassow at redhat.com>
-
- - fix make clean so it cleans up binaries in bin dirs - add pthread_detach to ccsd (cluster_mgr.c) - print select failure in ccsd if not EINTR
-
-2004-09-15 Patrick Caulfield <pcaulfie at redhat.com>
-
- Add support for allocated node IDs, both on the command-line and from CCS
-
- Add support for assigned nodeids so that people can have permanent node IDs assigned in cluster.conf if they really want it.
- Also tidied the joinconf code so that the validation is in a seperate routine.
- Yes, I know I should have seperated these out into two commits. Sorry.
-
-2004-09-15 David Teigland <teigland at redhat.com>
-
- Put a lock around start and exit of dlm_recoverd thread. This should fix the oops I got waking a dlm_recoverd that wasn't there.
-
-2004-09-14 Benjamin Marzinski <bmarzins at redhat.com>
-
- there was a problem with running two gnbd_clusterd processes at the same time. This fixes that problem.
-
-2004-09-14 Adam Manthei <amanthei at redhat.com>
-
- fix typos that Erling found.
-
- move some functions around so that the script compiles
-
-2004-09-14 Lon Hohberger <lhh at redhat.com>
-
- Update tasks
-
-2004-09-14 Patrick Caulfield <pcaulfie at redhat.com>
-
- Remove ourself from the waitqueue when told to quit.
-
-2004-09-14 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - added --use_ccs to --help
-
- - added --use_ccs to man page.
-
-2004-09-14 Ken Preslan <kpreslan at redhat.com>
-
- This should be a fix for bug #126531.
- The issue has to do with the fact that GFS locking is only invoked by
- a mmap during the page fault. There is no way for GFS to know that
- the process causing the page fault has finished reading or writing to
- the page for now. The way GFS has worked in the past is that as soon
- as the page fault has completed, the lock protecting the file is
- available to be demoted or dropped at the request of a callback from
- another machine. This means that a newly faulted-in page could get
- yanked out from under a process before it gets a chance to do
- sufficient work on the page.
-
- This checking provides a way for the page fault code to make a
- machine be greedy with a lock for a certain period of time. This
- means that after the fault, GFS will ignore callbacks for a certain
- period of time. After that time, GFS will respond to any callbacks
- that have arrived and then mark the file's lock as being able to be
- made greedy again. The code is setup so that the amount of time that
- the lock is marked greedy is dependent on how much page faults traffic
- there is on that file. When there is a lot of traffic, the time
- increases. When there is a little traffic, the time decreases.
-
- Whitespace munging.
-
-2004-09-13 Jonathan Brassow <jbrassow at redhat.com>
-
- - fix memory leak + other minor anoyances
-
-2004-09-13 Lon Hohberger <lhh at redhat.com>
-
- Zero out struct sockaddr_in6 structures before using...
-
-2004-09-13 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - from the top, its lib/libgulm.a now. - clear out socket_in6 before using them.
-
- - from the top, its src/lock_gulmd and src/gulm_tool now.
-
- - moved the option parsing code to where it was a while ago. I didn't make any comments last time as why I moved it to where it was, so while I imagin I had good reason, I cannot recall what ti was. So putting it back, but leaving crumbs just in case. - If you want gulm to get configs from ccs, you must pass the --use_ccs option. The code that auto-detected ccs is broken, and I've got bigger things to do for now. I'll deal with this again later. - added some command line op [...]
-
-2004-09-13 Lon Hohberger <lhh at redhat.com>
-
- Remove MAX_MSG_SIZE limitation
-
-2004-09-13 Adam Manthei <amanthei at redhat.com>
-
- man page updates for the fence_rib and fence_ilo agents.
-
- adding the Net::SSLeay version of the fence_rib agent. This should be used by those with iLO interfaces instead of the fence_rib (stunnel) version of the agent.
-
- Add ribcl version 2.0 support to fence_rib.
- Note that later versions of the iLO firmware may not work well with stunnel,
- Therefor it is better to use fence_ilo which uses the Net::SSLeay perl module
- instead.
-
-2004-09-13 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - cleaned up the makefile as per aj req.
-
-2004-09-13 Lon Hohberger <lhh at redhat.com>
-
- dumb was requiring libxml2 to build for no reason
-
-2004-09-13 Patrick Caulfield <pcaulfie at redhat.com>
-
- Remove distracting comment to which the answer was "no, it doesn't"
-
-2004-09-13 Lon Hohberger <lhh at redhat.com>
-
- Periodic status checks, updated resource agents, misc. bugfixes
-
-2004-09-13 A. J. Lewis <alewis at redhat.com>
-
- o allow CFLAGS to be added to from the command line
-
-2004-09-13 Patrick Caulfield <pcaulfie at redhat.com>
-
- Allow a bit more flexibility in how nodes are specified in cluster.conf You can now use fully-qualified host names as well as abbreviated host names. If you do use FQDNs in there then uname must return the full name too OR you can override the hostname by using -n on the command-line.
- For cman, I recommend NOT using full hostnames in cluster.conf
-
- There is a small chance that rem_node could be NULL when passed into process_cnxman_message if people are doing silly join/leave test loops :)
-
-2004-09-11 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - temporarily remove ccs from gulm. Its way not working. Need to figure out why, but tired of people telling about it not working when I already know.
-
-2004-09-10 Ken Preslan <kpreslan at redhat.com>
-
- Add a missing -Wall.
-
-2004-09-10 A. J. Lewis <alewis at redhat.com>
-
- o CFLAGS+= instead of CFLAGS= so you can add options from the cmdline
-
-2004-09-10 Adam Manthei <amanthei at redhat.com>
-
- From Lazar Obradovic:
- this is a patch to allow fence_ibmblade to use udp port other than
- standard snmp (udp/161).
-
- Main reason for this is that IBM BladeCenter MM supports only 3 hosts
- and not hostgroups per community, and only 3 communities, which puts a
- limit to maximum of 9 nodes in a cluster.
-
- This is somewhat inconvinient, so, as a workaround, one can install a
- udp forwarder on some node(s) (preferably outside cluster) and use only
- its address in IBM BladeMM configuration. Port Forwarder will probably
- have to use some other port that standard snmp, not to block snmp access
- of "relay" node, so that's what this patch is all about.
-
-2004-09-10 Patrick Caulfield <pcaulfie at redhat.com>
-
- Make sure we wake the membership thread before waiting for it to complete
-
- Make all node removal happen in remove_node(). This has the nice side effect that kernel listeners get notified of all nodes that ar removed :-)
-
-2004-09-09 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - use safer naming for the dump files that go into /tmp.
-
-2004-09-09 Patrick Caulfield <pcaulfie at redhat.com>
-
- Clear the use_count if shut down with "force"
-
- Free cluster ref if we fail to start.
-
- Don't get blinkered when in NEWCLUSTER modes...there may still be things out there!
- or, (in sensible language)
-
- Also send JOINREQ message when in NEWCLUSTER as well as STARTING states.
-
-2004-09-08 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - found some stuff I forgot to remove.
-
-2004-09-08 Ken Preslan <kpreslan at redhat.com>
-
- Great comments from ben.m.cahill at intel.com.
-
-2004-09-08 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - turned off a couple debugging things.
-
- - The first 'half' of range lock support for gulm. Doesn't actually do range locks, but all of the io for them should be there. - Adds support for finer grained uniqueness of lock holders. Very easy to use this to provide per process locks. (magma plug for gulm now does this.) - Everything should work as before. Only notable changes should be the libgulm.h and output of dump files.
-
-2004-09-08 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix a subtle bug in the node IDs code where a node could get a different node ID than last time if all the other members who knew about it before have also been down in the meantime.
- It also fixes a possible issue wherere nodes didn't have the same information
- about DEAD nodes, as only MEMBER nodes were propogared at join time.
-
- Now, MEMBER & DEAD nodes details are distributed so that the whole node view
- should be completely consistent across the cluster.
-
- Tweak the way NEWCLUSTER works in an attempt to prevent the splits that can happen if a new nodes all try to join/form a cluster at the time.
- Based on an idea by dct, this sends NEWCLUSTER messages out repeatedly
- after a time of patient watching and waiting. there then could be
- a tie-break based on the IP addresses.
-
- This is for bz #126991.
-
-2004-09-08 Ken Preslan <kpreslan at redhat.com>
-
- Added "cmd" argument to lm_plock().
-
-2004-09-07 Lon Hohberger <lhh at redhat.com>
-
- OCF Actions + Autostart param addition
-
-2004-09-07 Ken Preslan <kpreslan at redhat.com>
-
- Dave pointed out that I screwed up plocks.
-
-2004-09-07 David Teigland <teigland at redhat.com>
-
- - if a first start was aborted after getting past node setup, the nodes would be left over for the subsequent start -- need to clear them - remove some unused code from nodes file and tidy clearing nodes list
-
- use kthread routines
-
-2004-09-06 Patrick Caulfield <pcaulfie at redhat.com>
-
- Improve (I think) the usage message. Well, it's more verbose anyway.
-
-2004-09-06 David Teigland <teigland at redhat.com>
-
- gfs needs a positive error from plock_get if there's a conflict
-
-2004-09-06 Patrick Caulfield <pcaulfie at redhat.com>
-
- Change cman_tool kill to take a node name instead of a node number. This is more useful and more intuitive and more consistent.
-
- Rename "local_nodeid" so it doesn't clash with kernel's internal use.
-
-2004-09-06 David Teigland <teigland at redhat.com>
-
- use kthread routines
-
- remove a couple log_debug's
-
-2004-09-03 Daniel Phillips <phillips at redhat.com>
-
- Initial add, csnap code and docs
-
-2004-09-03 Jonathan Brassow <jbrassow at redhat.com>
-
- - this should get rid of the ENETUNREACH problems... as well as the CONNREFUSED that AJ was seeing.
- The new 'struct sockaddr_storage' structure I was using was not being
- memset before being populated. So, there were some extra fields at
- the end that were not right. Specifically, strace showed:
-
- NORMAL (no failure):
- sendto(11, "\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20, 0, {sa_family=AF_INET6, sin6_port=htons(50007), inet_pton(AF_INET6, "ff02::3:1", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 20
-
- BAD (returns ENETUNREACH):
- sendto(10, "\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20, 0, {sa_family=AF_INET6, sin6_port=htons(50007), inet_pton(AF_INET6, "ff02::3:1", &sin6_addr), sin6_flowinfo=34, sin6_scope_id=4144328704}, 28) = -1 ENETUNREACH (Network is unreachable)
-
- So, it appears that sin6_flowinfo and sin6_scope_id were crap.
-
-2004-09-03 Ken Preslan <kpreslan at redhat.com>
-
- The -mm kernel that includes our flock patch.
-
-2004-09-03 David Teigland <teigland at redhat.com>
-
- update from src files
-
- Changes to how dlm flags are used based on dlm changes. Change the way we deal with gfs's "hold_lvb" requirement: use a separate NL lock to represent a "held lvb" instead of replacing unlocks with conversions to NL. This way unlocks from gfs are always handled consistently, with a corresponding dlm unlock.
-
- Change the lock granting logic to mirror the behavior of VMS. The effect of QUECVT and EXPEDITE flags have also been changed to match VMS. A couple new flags have been added to allow for non-vms-like behavior that's required when using range locks.
-
-2004-09-03 Ken Preslan <kpreslan at redhat.com>
-
- o Fix the BLKGETSIZE64 ioctl for Linux 2.6. o Use lseek() to to determine the device size if BLKGETSIZE64 and BLKGETSIZE fail.
-
- Get rid of a couple more 2TB checks.
-
-2004-09-02 Jonathan Brassow <jbrassow at redhat.com>
-
- - a couple minor updates to multicast code - add a '-t' option for specifying ttl, default is still 1 (IPv4) - use 224.0.2.5 (IPv4) and ff02::3:1 (IPv6) as default multicast addrs
-
-2004-09-01 Jonathan Brassow <jbrassow at redhat.com>
-
- - correctly specify the libdir in configure as /usr/lib - add IPv6 support to ccsd - add multicast support to ccsd - make the ccsd port numbers configurable - update ccsd man page - make the config file location tunable - make pid (lockfile) location tunable - still debating whether to turn on the option
-
-2004-09-01 Ken Preslan <kpreslan at redhat.com>
-
- Get rid of some pool crap. Get rid of an arbitrary 2TB limit that was there to keep 2.4 from screwing up.
-
- Ben Cahill's new man page.
-
- Update patches.
-
-2004-08-31 Ken Preslan <kpreslan at redhat.com>
-
- Rework patch to fit with Trond's comments.
-
-2004-08-31 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - fixed a few ickys. - added some tests.
-
-2004-08-31 Ken Preslan <kpreslan at redhat.com>
-
- Print out PIDs.
-
-2004-08-30 Ken Preslan <kpreslan at redhat.com>
-
- Fix s_maxbytes.
-
-2004-08-30 Lon Hohberger <lhh at redhat.com>
-
- Fix build
-
- * src/resources/*: Add status/monitor actions to metadata * include/list.h: Update to fix compiler warnings. This is not complete; it's better to add a 'field' to structures requiring list specs. * src/clulib/vft.c: Remove unnecessary pthread locks. * src/daemons/*: Misc. code cleanups.
-
-2004-08-30 Ken Preslan <kpreslan at redhat.com>
-
- Patches for a kernel that supports the new plock interface.
-
-2004-08-27 Ken Preslan <kpreslan at redhat.com>
-
- Rearrange some asserts.
-
- Munge.
-
- Reimplemented the flock patch to work similarly to the new way plocks will work in 2.8.9. The FS acquires the VFS flock from its code.
-
- Helper scripts for "gfs_tool lockdump".
-
-2004-08-26 Jonathan Brassow <jbrassow at redhat.com>
-
- - use indexing rather than ccs list handling to retrieve node names That way fence_init will not fail in the single node case.
-
-2004-08-26 Adam Manthei <amanthei at redhat.com>
-
- I forgot to add Lazar Obradovic's fencing agents to the bin Makefile. Thanks go to anton at hq.310.ru for pointing that out.
-
-2004-08-26 Patrick Caulfield <pcaulfie at redhat.com>
-
- So /that's/ why it was up there...
-
- A couple of endian fixes. mixed-endian clusters now seem to pass a cursory test.
-
- Don't send HELLO as soon as the kthread is started as that might b e too early.
-
- Fix stupid cut & paste bug with IPV6 multicast.
-
-2004-08-25 Lon Hohberger <lhh at redhat.com>
-
- Unbreak gulm.
-
-2004-08-25 Patrick Caulfield <pcaulfie at redhat.com>
-
- Get rid of some debugging info that is no longer relevant (or even compiles). Also fix some that is.
-
- pack the comms structures. They are already well-aligned but the compiler does exceed its orders slightly in this case.
-
- use REPLYEXP for ISLISTENING messages
-
-2004-08-25 David Teigland <teigland at redhat.com>
-
- change the order in which we set up join/leave values so another thread can't see the SEVENT flag set before the pointer is set.
-
-2004-08-24 Adam Manthei <amanthei at redhat.com>
-
- Fencing agents contributed by Lazar Obradovic <laza at yu.net> for o Qlogic SAN Box2 o IBM Blade Center (requires SNMP support. Can be used instead of the xcat fencing agent)
-
-2004-08-24 Patrick Caulfield <pcaulfie at redhat.com>
-
- Be a little less ACK-happy during transition. ACKs can now be embedded in data messages so, where we know there will be a reply there is no need for a separate ACK.
-
- Run dlm_recoverd only when we need to do recovery.
-
- Return the lockid to userland as soon as we know it.
-
-2004-08-24 David Teigland <teigland at redhat.com>
-
- patches for 2.6.8.1
-
- use kthread routines to start/stop ast thread
-
-2004-08-23 Ken Preslan <kpreslan at redhat.com>
-
- Update to 2.6.8.1.
-
-2004-08-23 Patrick Caulfield <pcaulfie at redhat.com>
-
- Use seq_file for /proc/cluster/services so we don't crash the kernel if there are more than a few lockspaces/GFS mounts etc.
-
- Setting a bad example...
-
-2004-08-23 David Teigland <teigland at redhat.com>
-
- Use a recovery daemon per lockspace. This avoids deadlock when nodes recover multiple lockspaces in different orders.
-
-2004-08-23 Patrick Caulfield <pcaulfie at redhat.com>
-
- Update libdlm doc.
-
-2004-08-20 Patrick Caulfield <pcaulfie at redhat.com>
-
- Also include the pid in LKB rebuild
-
- Add PID to a lock which can be returned using the Query API.
- Thanks to Jeff Orlin for most of this code.
-
-2004-08-19 Jonathan Brassow <jbrassow at redhat.com>
-
- - forgot to remove eattr from the Makefile
-
- - don't need the gfs_eattr man page, as the tool no longer exists
-
-2004-08-19 Patrick Caulfield <pcaulfie at redhat.com>
-
- Tidy LVB handling
-
-2004-08-19 David Teigland <teigland at redhat.com>
-
- a couple error messages
-
-2004-08-18 Patrick Caulfield <pcaulfie at redhat.com>
-
- Change AF_ number to 30 so it doesn't conflict with bluetooth. TIPC also uses this number and you're unlikely to be using both together.
-
- Create /dev/misc with reasonable permissions.
-
- Don't hang lkbs off the ownerqueue list as we don't have any control over their lifetime. Now that LKBs are destroyed before the ASTs are run this causes real problems.
- The ownerqueue is now strung through the lock_info structs themselves
- and we free those up when we can see that the lkb has been removed
- by the DLM core.
-
- This (for me) fixes Lon's SMP oops and also the dlmlock hang/oops
- mentioned in bugzilla #130148
-
-2004-08-18 David Teigland <teigland at redhat.com>
-
- if the first start is cancelled by a stop before finishing, reset the last_start value (same as with dlm and fence services) and discard nodes saved from initial invalidated start.
-
- Use a separate DELAY_RECOVERY flag to postpone join/leave processing during recovery. This leaves the DELAY flag used only for retries when joins/leaves conflict. The interference between recoveries and delayed join/leave processing could lead to stalled recovery or a timer oops.
-
- some spacing cleanup
-
-2004-08-17 Benjamin Marzinski <bmarzins at redhat.com>
-
- Forgot to update kernel stuff.
-
-2004-08-17 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix userspace LVBs (thanks, Jeff) Fix assert when creating sublocks - if we get asked to create a sublock on a master node then that's quite correct.
-
- Remove duplicate check.
-
-2004-08-16 Benjamin Marzinski <bmarzins at redhat.com>
-
- updated Makefile so that it make distclean works
-
-2004-08-16 Jonathan Brassow <jbrassow at redhat.com>
-
- - it wasn't a good idea to add rm -f /lib/libmagma* to the make file
-
-2004-08-15 Benjamin Marzinski <bmarzins at redhat.com>
-
- Oops. Forgot to update the man pages.
-
-2004-08-14 Benjamin Marzinski <bmarzins at redhat.com>
-
- Bunch of gnbd fixes. The big one is that gnbd_monitor works like it's supposed to... Or at least if it doesn't, it's a bug, as opposed to just not being done. Most of the changes are under the covers, so accept for a more verbose gnbd_monitor list, all the UIs are the same.
-
-2004-08-13 Lon Hohberger <lhh at redhat.com>
-
- Temporary sledgehammer lock fix
-
- Clean up build
-
- Change cflags to make it build on newer compilers for now
-
-2004-08-13 Jonathan Brassow <jbrassow at redhat.com>
-
- - cman_tool.8 was still referenced in the cman_tool directory
-
-2004-08-13 Lon Hohberger <lhh at redhat.com>
-
- Initial checkin of rgmanager
-
-2004-08-13 David Teigland <teigland at redhat.com>
-
- update from src files
-
-2004-08-13 Patrick Caulfield <pcaulfie at redhat.com>
-
- Knock the "I'm not getting out of bed for a message that small" size down to 20 bytes as the recovery code is quite capable of sending 21 byte messages.
-
-2004-08-13 David Teigland <teigland at redhat.com>
-
- update from src files
-
- use the force=2 option for dlm_release_lockspace() to disregard any existing locks
-
- remove assertion that's not correct when multiple lock requests are in progress on the same resource at once (e.g. plocks from lock_dlm).
-
- moved to man dir
-
- install man dir
-
- move cman_tool.8 into man dir, add Makefile to install
-
- man page for cluster.conf
-
-2004-08-12 Lon Hohberger <lhh at redhat.com>
-
- Remove crc32.c & build req. on it.
-
-2004-08-12 Jonathan Brassow <jbrassow at redhat.com>
-
- - move some stuff around. - fix brokenness when update occur simultaneously - more error checking
-
-2004-08-12 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't update the bastaddr/param for a convert until the conversion has actually completed.. Patch from Jeff Orlin.
- Don't remove convert cancels from the list of locks owned by this process.
-
-2004-08-12 David Teigland <teigland at redhat.com>
-
- previous fix incomplete, one other copy to zero
-
- when a recovery interrupts first start, the last_start value needs to be reset to 0 too to avoid assertion failure
-
- copy the current config_version into the cl_version struct in GET_VERSION.
-
- "cman_tool version -r <config>" can be used to update the config version of all cluster members.
-
- more refining of whether we deliver or skip bast delivery
-
-2004-08-11 Patrick Caulfield <pcaulfie at redhat.com>
-
- I think it would be a really nice idea to actually pass the flags into the kernel, rather than ignoring them, don't you ?
-
- If the dlm_unlock() call fails, the put the lock back on the ownerqueue so it gets unlocked wen the device is closed.
-
- Don't grant locks that have are waiting for unlock.
-
- Don't deliver blocking ASTs to locks that are in progress.
-
-2004-08-11 David Teigland <teigland at redhat.com>
-
- - rebuild_freemem() was being called too early - the grantqueue must be checked for NOREBUILD locks when deciding if an rsb should be remastered
-
- better format for lock dump on assert
-
- change flag name to reflect expanded use
-
- basts don't apply to the "plock update" lock, so don't provide a bast function. also use the delete_lp routine to free it.
-
-2004-08-10 Benjamin Marzinski <bmarzins at redhat.com>
-
- link to the pthread library because magma needs it now.
-
-2004-08-10 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't cleanr li_flags after setting the FIRSTLOCK bit
-
- Put some locking around the lockspace list. Tidy up how the user_ls gets freed.
-
- Fix a couple of error paths so they set errno.
-
- Use re-entrant gethostbyname2_r as we are juggling two hostent structures at the same time when starting multicast. previously the multicast address overwrite the local address as gethostbyname uses a static buffer.
-
- reinstate copy of lock name that got lost in the last change.
-
-2004-08-10 David Teigland <teigland at redhat.com>
-
- Make sure plock lp is off all lists before deleting, doesn't appear to fix bug, though. Only allow one lock_dlm thread to do process recoveries when they pile up.
-
-2004-08-10 Adam Manthei <amanthei at redhat.com>
-
- fix a regex that ernoeously allowed the agent to access devices it shouldn't when using non admin users (see bug #129521)
-
- Fix for bug #129521
- o modifies regex's so that non-admin accounts can navigate the menus
- o better invalid user/passwd detection
-
-2004-08-09 Lon Hohberger <lhh at redhat.com>
-
- Fix mutex deadlocks around cluster lock/unlock calls
-
-2004-08-09 Patrick Caulfield <pcaulfie at redhat.com>
-
- Return error if we can't start all the listening sockets.
-
- Set return code if we can't leave the cluster.
-
- Userspace side of last checkin - sync routines for locking.
- Make sure this new library is only installed when you have the matching kernel
- changes available too.
-
- The "lets get all the API changes done in one day" checkin. Add Jeff (sorry, I've forgotten your last name)'s sync API call for userspace along with a separate astarg for blocking ASTs
-
- Use new ioctl interface to start the cluster.
-
- Replaced setsockopts with ioctls.
-
-2004-08-06 Lon Hohberger <lhh at redhat.com>
-
- Make ccsd give element name back with relevant cdata
-
-2004-08-06 David Teigland <teigland at redhat.com>
-
- plain make in cluster dir doesn't work, but make install should
-
-2004-08-05 Lon Hohberger <lhh at redhat.com>
-
- Remove old message encapsulation pieces and dependency on crc32.c
-
-2004-08-05 Jonathan Brassow <jbrassow at redhat.com>
-
- - take a stab at the cluster.conf.5 man page
-
- - incorrect synopsis
-
- - ccs is located in 7 not 8
-
- ccs is located in 7, not 8
-
-2004-08-05 David Teigland <teigland at redhat.com>
-
- When granting locks, ignore locks on the wait queue that are also on the lockqueue.
-
- remove another assert
-
- A bunch of fixes related to dir lookup's, EEXIST errors from lookups, EINVAL errors from requests. Most prevalent when doing lots of flocks or plocks.
-
-2004-08-05 Jonathan Brassow <jbrassow at redhat.com>
-
- - misc prog for magma.
-
-2004-08-04 Jonathan Brassow <jbrassow at redhat.com>
-
- - the sm plugin for magma seems to emit CE_NULL instead of CE_MEMB_CHANGE when a node leaves or joins... Therefore, we must reread the membership list even when receiving CE_NULL.
-
- - allow ccs to reload config file if the node is quorate (covers the case were ccs needs a restart)
- - return EINVAL if a cluster name is specified that is different than
- the one that is loaded.
-
-2004-08-04 David Teigland <teigland at redhat.com>
-
- try to clear up the build steps
-
-2004-08-04 Patrick Caulfield <pcaulfie at redhat.com>
-
- Example init script for cman/dlm/fence/clvm
-
- Change the initialisation order, so if we get into the kernel twice by some strange behaviour, the error is less alarming.
-
-2004-08-03 Benjamin Marzinski <bmarzins at redhat.com>
-
- Removed the dependency on "all" from the "uninstall" target
-
-2004-08-03 Jonathan Brassow <jbrassow at redhat.com>
-
- - add cmd to remove old libs that were located in /lib (as part of the uninstall target)
-
-2004-08-03 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - this is the opteron stack bug fix here too. don't think any one has seen it on this code. but it hurts nothing to just put the fix in right away.
-
-2004-08-03 Patrick Caulfield <pcaulfie at redhat.com>
-
- Always copy ast bits, even on convert (kernel vesion).
-
- Always copy AST parameters, even for converts.
-
- Remove some redundant code. sockaddr_cl no longer contains anything that kcl_get_node_by_addr can use.
-
-2004-08-03 David Teigland <teigland at redhat.com>
-
- - when processing a combined delete and completion ast, do the deletion first. This avoids the next request coming and and finding the rsb between the ast and the release_rsb which can lead to other problems. - return -EEXIST from a dir lookup when the node looking up the res is already the master. A request needs to be processed differently when this happens. There are larger problems related to both of these, but these changes are legitimate even after the bigger changes tha [...]
-
-2004-07-30 Patrick Caulfield <pcaulfie at redhat.com>
-
- Do the parameter overrides correctly. Thanks for spotting that, Jeff!
-
-2004-07-29 David Teigland <teigland at redhat.com>
-
- update from src files
-
-2004-07-28 David Teigland <teigland at redhat.com>
-
- The lock counter used for DROPLOCKS callback wasn't accurate. It now tracks the "locks held" value reported by gfs_tool counters. These callbacks don't keep a lid on the number of locks but slows the growth anyway. They now operate above 10,000 locks, delivered once a minute.
-
- Send a DROPLOCKS callback to gfs once every minute while the number of outstanding local locks is over 20,000. Doesn't appear to be too effective but it might be in some cases.
-
- retry calls to ccs_connect if they return an error
-
-2004-07-27 Jonathan Brassow <jbrassow at redhat.com>
-
- - specifying a cluster name is only valid when the force command is used.
-
-2004-07-27 Lon Hohberger <lhh at redhat.com>
-
- Cleanup of useless variable
-
-2004-07-27 David Teigland <teigland at redhat.com>
-
- print the actual error value ccs returns
-
-2004-07-27 Jonathan Brassow <jbrassow at redhat.com>
-
- - must zero out rset variable before populating.
-
-2004-07-26 Jonathan Brassow <jbrassow at redhat.com>
-
- - when cman shuts down (as when cman_tool leave happens) close the connection and attempt to reinitiate connection.
- This may be what is causing rbz128571.
-
- - multicast option is not ready yet. Fail if it is specified.
-
- - add some man pages
-
-2004-07-26 David Teigland <teigland at redhat.com>
-
- Add locking around ls_requestqueue as it's accessed by both dlm_recoverd and dlm_recvd.
-
- tidy DLM_ASSERT statements
-
- Do reference counting on lockspace structs. Looping mount/umount operations on multiple nodes would quickly result in a ls struct being freed while dlm_recoverd was still finishing a previous recovery on it.
-
-2004-07-26 Patrick Caulfield <pcaulfie at redhat.com>
-
- Clear the "cluster_is_quorate" flag at shutdown
-
-2004-07-23 Jonathan Brassow <jbrassow at redhat.com>
-
- - sometimes getsockopt would report that bcast was enabled when it wasn't. Since it doesn't hurt to set the flag regardless, we now set the bcast flag w/o checking to see if it is enabled already.
-
-2004-07-23 David Teigland <teigland at redhat.com>
-
- die if we cannot talk with ccs when starting up
-
-2004-07-23 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix race on islistening queries.
-
- Pass the unqualified name into the kernel, so the cluster node name never has domain names attached to it.
-
-2004-07-23 David Teigland <teigland at redhat.com>
-
- - clvmd_fix_conf.sh usage was wrong - add info about building modules outside kernel tree - cluster.xml has changed to cluster.conf
-
- When a request completion is received in lock_dlm during recovery, the lock must be demoted to NL and rerequested in the originally requested mode after recovery completes (only NOEXP requests can be completed for gfs during recovery.)
- When a lock was rerequested, the QUECVT flag was always being set even
- though the lock may also have the EXPEDITE (gfs's PRIORITY) flag set.
- It's illegal to use EXPEDITE and QUECVT together, so we now only set
- QUECVT if EXPEDITE isn't. An assertion fails if both flags are used.
-
- remove a printk that can be annoying
-
- fenced was not correctly matching fqdn's from cman and basic hostnames from ccs
-
-2004-07-22 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - decent start of documenting cmdline args and config file for gulm. still needs some work.
-
- - gulm will now get its configs from ccsd. I'll be adjusting man pages next so syntax will be there.
-
-2004-07-22 Jonathan Brassow <jbrassow at redhat.com>
-
- - update configure scripts to set %{libdir} to /usr/lib
- - make ccs use magma and magmamsg
- - change from using /etc/cluster/cluster.xml to /etc/cluster/cluster.conf
-
- - put in a forgotten unlock in an error condition in magma
-
-2004-07-22 Patrick Caulfield <pcaulfie at redhat.com>
-
- Get rid of zero-initialisers as the compiler (or is it the linker? I always forget) does this for us.
- Include the quorate state in HELLO messages.
-
-2004-07-22 David Teigland <teigland at redhat.com>
-
- update from src files
-
- - Improve/fix the way we lock the rootres list. The two rwsem's we were using still weren't sufficient for cases where release_rsb was called while traversing the root list. Replace the two sems with one new "ls_root_lock". I hope this fixes the rootres list corruption I was seeing. It's much saner locking in any case.
- - Add some log_debug() statements for cases where dlm_unlock() returns
- an EINVAL error so we can figure out what went wrong if the lock_dlm
- assert fails.
-
- - Have next_move() detect the case where a first start on the ls is
- interrupted by a recovery event. I expect this will fix the related
- assert failure that was reported, although I've can't reproduce to
- confirm.
-
- on assert failure dump dlm's debug buffer
-
- An unlock request is waiting for a reply from a master node. That master node fails causing a recovery event. As of yesterday we simply treat these unlock requests as completed and don't rebuild them during recovery. Before queueing the completion ast for these unlock requests the lkb must be removed from the rsb queue and the lockqueue. An assertion failure was caused by not doing this.
-
- add BUG() to assertion
-
- initialize cluster_is_quorate to 0
-
-2004-07-21 David Teigland <teigland at redhat.com>
-
- update from src files
-
-2004-07-21 Patrick Caulfield <pcaulfie at redhat.com>
-
- neaten up some bits by calling send_kill() rather than building up our own KILL message.
-
-2004-07-21 David Teigland <teigland at redhat.com>
-
- if remote_stage2() gets a request, it should return EINVAL if: - no rsb exists for the named resource - the rsb exists but the nodeid is -1 - the rsb exists with some remote master specified The last case wasn't recognized and was causing an assertion failure. (The last two cases together are equivalent to res_nodeid != 0.)
-
-2004-07-21 Patrick Caulfield <pcaulfie at redhat.com>
-
- A couple of endian fixes.
-
-2004-07-21 David Teigland <teigland at redhat.com>
-
- In-progress unlock requests interrupted by a recovery event weren't always handled correctly. I also no longer get failed dir removals during recovery.
-
-2004-07-20 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - reshaped the way i was building the lock key names. This new method avoids a limit of 8 bytes for node names.
-
- - CFLAGS in make/defines.mk is ignored if you don't use += in the Makefiles
-
-2004-07-20 Patrick Caulfield <pcaulfie at redhat.com>
-
- Distinguish between not being able to get the cluster ACTIVE state, and the cluster actually being active.
-
-2004-07-20 Ken Preslan <kpreslan at redhat.com>
-
- Suiddir support suggested by anton at hq.310.ru.
-
-2004-07-20 Patrick Caulfield <pcaulfie at redhat.com>
-
- Tidy up temp nodeids after a transition.
-
-2004-07-20 David Teigland <teigland at redhat.com>
-
- tidy a bit of code that decides if a new master should be looked up. makes it easier to experiment with new code in this area.
-
- if deserialise_lkb finds the lkb already exists, advance the pointer so we can correctly read the next item and print a debug message so we know if this is actually happening.
-
- pass the dlm_header into add_to_requestqueue so we can print the cmd
-
- recycle dir entries when rebuilding res directory instead of freeing and immediately reallocating thousands of them.
-
-2004-07-20 Patrick Caulfield <pcaulfie at redhat.com>
-
- Don't clear the temp_nodeid until we've /really/ finished with it. should finally nail #126526
-
- Fix race where two reads/accepts could arrive in quick sucession but only the first would be serviced. This fix does both reads AND accepts as opposed to the last one which only did reads.
- I reckon this should fix bug #126758
-
-2004-07-20 David Teigland <teigland at redhat.com>
-
- print rsb in remote_stage2 assertion
-
-2004-07-20 Jonathan Brassow <jbrassow at redhat.com>
-
- - remember to closedir()
-
-2004-07-19 Patrick Caulfield <pcaulfie at redhat.com>
-
- Install man page
-
- Man page for cman_tool
-
- Print error if no nodeIDs are passed to "cman_tool kill"
-
- Tidy up accept path a bit.
-
-2004-07-17 Ken Preslan <kpreslan at redhat.com>
-
- Reordered munging of modes on inode create.
-
-2004-07-16 David Teigland <teigland at redhat.com>
-
- update from src files
-
- - the new MASTER rsb flag wasn't being set during recovery when an rsb from a departed node was remastered; this prevented the dir entry for the rsb from eventually being removed which made all further requests on that rsb invalid
- - take dirtbl lock when clearing dir during recovery even though
- it's not strictly necessary
-
- - save dir nodeid in release_rsb instead of calculating it twice
-
-2004-07-16 Patrick Caulfield <pcaulfie at redhat.com>
-
- If there's anything left to read after recvmsg, then make sure we get it.
-
- oops, remove annoying (and badly formatted) debug prints
-
- Validate nodeIDs
-
-2004-07-16 David Teigland <teigland at redhat.com>
-
- dlm_unlock_stage2: copy new lvb from lkb before granting new locks to ensure they get the latest copy.
-
- Three different problems resulting from recent change to quit doing a convert-to-NL on a gfs unlock: - dlm_unlock wasn't passing VALBLK flag to write lvb on unlock - wake/complete for synchronous (internal) unlocks rather than gfs callback - lm_hold_lvb() wasn't preserving lvb contents since a dlm_unlock would free the lkb and rsb. Now if there's an lvb to preserve, convert to NL on a lm_unlock() and do dlm_unlock on lm_unhold_lvb().
-
-2004-07-15 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix some small odd bugs in startup conditions: - when taking over as master, make sure we always get a nodeid for the new node in a NEWNODE transition - Fix some potential oopses in error messages - Allow a JOINACK_NAK message to come after a JOINACK_ACK in case the ACKing node has to back down as master.
-
-2004-07-15 Lon Hohberger <lhh at redhat.com>
-
- Fix breakage in SM plugin when querying group membership w/o logging in; install in /usr
-
-2004-07-15 David Teigland <teigland at redhat.com>
-
- the recently changed version of release_rsb() checks the new RESFL_MASTER flag to decide if a dir_remove is necessary. rsb's remastered during recovery weren't having this flag set.
-
- get rid of the _recovery version of dir_lookup which only related to sequence numbers
-
- remove "resdata" from function names since we've renamed things
-
- - /proc/cluster/dlm_dir to dump resource directory - change 5s constant for recovery wait timer into config.recover_timer - simplify logic that decides if dir removal is needed - add more detail to some log_debug statements - a call to release_rsb() was missing in remote_stage2 after successful lookup of rsb with nodeid of -1 (where einval is returned) - change log_debug to log_all in dir removal errors which should now be very uncommon (if they occur at all) - add a call to schedul [...]
-
-2004-07-15 Jonathan Brassow <jbrassow at redhat.com>
-
- - couple changes to make files
-
-2004-07-14 Patrick Caulfield <pcaulfie at redhat.com>
-
- Clean up the temp nodeIDs list at shutdown.
-
-2004-07-14 David Teigland <teigland at redhat.com>
-
- - change in the way name_to_directory_nodeid works. get rid of the bitmask step and just do a modulus on the hash value. the bitmask introduced an imbalance with some node counts that could cause a more heavily weighted node to be more prone to run out of memory (esp during recovery.)
- - change the way we handle the case where a granted message arrives before
- the reply to the original request. take the request out of the queue
- right away and assign the remote lkid instead of waiting for the delayed
- reply. this is a rare circumstance but removes potential for problems.
-
-2004-07-13 Jonathan Brassow <jbrassow at redhat.com>
-
- - add targets to the make file for updating subtrees to latest tags.
-
-2004-07-13 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - <can't say anything nice>
-
-2004-07-13 Patrick Caulfield <pcaulfie at redhat.com>
-
- Make DLM_LSF_NOCONVGRANT the default for userland lockspaces.
-
-2004-07-13 David Teigland <teigland at redhat.com>
-
- update from src files
-
-2004-07-13 Patrick Caulfield <pcaulfie at redhat.com>
-
- Missed a couple of files from the last tidying commit
-
- Remove resdir sequence number from all structs as it's no longer used.
-
-2004-07-13 David Teigland <teigland at redhat.com>
-
- Change the way lm_dlm_unlock() works. We previously demoted to NL on a lm unlock and then did a dlm_unlock() on the lm put_lock. Now do a full dlm_unlock() for each lm unlock. This avoids some odd problems in some gfs tests. We can reintroduce a convert-to-NL optimization later on if need be.
-
-2004-07-13 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix an obscure but potentially nasty race on the resource directory.
-
-2004-07-12 Ken Preslan <kpreslan at redhat.com>
-
- Change the way a switch statement works to prevent GCC from doing stupid stuff on a PPC box.
- [ Arkadiusz Miskiewicz <arekm at pld-linux.org> ]
-
-2004-07-12 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - removed the unneeded utils_verb_flags stuff from lock_gulm.ko
-
-2004-07-12 David Teigland <teigland at redhat.com>
-
- mess with tabs (unaligned in cvsweb...)
-
- remove stray printk
-
- Naming changes. Get rid of struct typedefs and gd_ prefix. Improve some of the structure names. Use consistent hash table method for rsb/lkb/dir lists.
-
-2004-07-09 Benjamin Marzinski <bmarzins at redhat.com>
-
- Fixed some login structure size issues, so that gnbd clients and servers can be different architectures. 32 bit servers can now have 64 bit clients, etc. Also cleaned up code to get rid of compile warnings on 64 bit machies.
-
-2004-07-09 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - fixes bug #126970 ifelseifelseifelse doesn't work without the elses.
-
-2004-07-09 David Teigland <teigland at redhat.com>
-
- a recent checkin incorrectly switched unlock_stage2 to reference an lkb after it was potentially freed.
-
- - set lkb nodeid to -1 when it's created. this prevents an assert during recovery on an lkb for which the rsb master is being looked up (recent shift in assigning lkb nodeid exposed this) - add print_lkb/print_rsb to some existing asserts
-
- in dlm_lock_stage1 set lkb nodeid to the rsb's nodeid only after the rsb is certain to have the correct nodeid itself.
-
- - in unlock get the rsb after holding the in_recovery lock otherwise an in-progress request is not redirected after recovery - add an assert
-
- pjc found spot where lock struct wasn't being freed
-
-2004-07-09 Adam Manthei <amanthei at redhat.com>
-
- diff -u -r1.3 fence_apc.pl --- fence_apc.pl 8 Jul 2004 22:06:34 -0000 1.3 +++ fence_apc.pl 9 Jul 2004 01:01:52 -0000 @@ -34,7 +34,7 @@ # should be more than 1 my $open_wait = 5; # Seconds to wait between each telnet attempt my $telnet_timeout = 20; # Seconds to wait for matching telent response -my $debuglog = '/tmp/apclog' # Location of debugging log when in verbose mode +my $debuglog = '/tmp/apclog';# Location of debugg [...]
-
-2004-07-09 Benjamin Marzinski <bmarzins at redhat.com>
-
- added -fPIC to the makefiles, so the cman.so, gulm.so, etc.. would compile on x86_64
-
-2004-07-09 Adam Manthei <amanthei at redhat.com>
-
- o added support for APC 79XX
- o additional error checking for masterswitch setups. Not specifying a
- a switch # to operate on will cause an error if there is more than
- one switch present.
-
- o whitespace cleanup
-
-2004-07-08 Patrick Caulfield <pcaulfie at redhat.com>
-
- Stop users calling dlm_[ls_]_pthread_init() more than once. Reset fd flags on return from dlm_dispatch().
-
- Add timeout feature for resdir entries so they don't go away as soon as the last lock is dequeued. You can configure the time using a config entry, set this to zero to get the old behaviour
-
-2004-07-07 Patrick Caulfield <pcaulfie at redhat.com>
-
- Fix assertion.
-
-2004-07-07 David Teigland <teigland at redhat.com>
-
- loosen assertion to allow us to send an rsb lookup to ourselves this can legitimately happen during recovery by resend_cluster_requests
-
- update from src files
-
- - when an assertion fails dump all rsb's and lkb's to console
-
- - when a dlm_unlock() removes the last lkb from an rsb, reset the master nodeid in the rsb to -1 to force a subsequent dlm_lock() to look up the potentially new master. Add find_rsb_to_unlock() for this which holds a lock to make the test and set atomic wrt new dlm_lock()'s. - lots of assertions added - lots of log_debug()'s added (/proc/cluster/dlm_debug)
-
-2004-07-06 David Teigland <teigland at redhat.com>
-
- remove and clean up some debugging
-
- - Patrick's fix to set rsb nodeid to -1 during unlock crept into a previous checkin. - Modify release_rsb() to cope with -1 nodeids and properly remove resource directory entries.
-
-2004-07-05 Patrick Caulfield <pcaulfie at redhat.com>
-
- Tidy atomic decrement.
-
- Add support for more VMS-like locking mode where new locks will not be granted if there are already locks waiting for conversion.
- This is enabled per lockspace and is OFF by default.
-
- Fix a couple of 64bit compiler warnings.
-
- Add in more architectures. Note: this is /not/ a list of supported architectures, in fact very few other than i386 have been tested (and then not for some time). But fixes for other architectures are welcomed.
-
-2004-07-05 David Teigland <teigland at redhat.com>
-
- minor changes to resource directory lookups. - increment rd entry's seq number safely by holding the rd lock - don't pass rd structs to callers since there's no reference counting on them; just return the nodeid and seq values instead. safer and cleaner approach. - add debugging code which will be reduced when current problems are sorted out (strname used for debug prints will be removed)
-
-2004-07-03 Benjamin Marzinski <bmarzins at redhat.com>
-
- Fixed some annoying bugs. Previously, when you unimported a gnbd (with gnbd_import -R or -r) you could try to kill a gnbd_recvd process that was already dead.. This would result in you killing the pid -1, and bad things happening.
- Also, gnbd_monitor wasn't accepting connections, which was causing commands
- to hang. This problem was introduced in fixing an earlier bug.
-
- Both these issues are fixed.
-
-2004-07-02 Jonathan Brassow <jbrassow at redhat.com>
-
- - work around broken exit
-
-2004-07-02 David Teigland <teigland at redhat.com>
-
- fix log message
-
- better log message
-
- include directory sequence numbers in prints
-
- another warning and assertion
-
- a bunch of assertions to catch errors early on
-
-2004-07-02 Benjamin Marzinski <bmarzins at redhat.com>
-
- Changed the /dev/gnbd_ctl node I make from major 11 to major 10, which is what misc devices are. I don't know why I haven't seen any issues with this until now.... As far as I can tell, gnbd_import shouldn't have been working at all. If anyone has been seeing
- gnbd_recvd[8311]: ERROR [gnbd_recvd.c:190] cannot open gnbd control device : No such device or address
-
- messages, they should go away now.
-
-2004-07-01 Lon Hohberger <lhh at redhat.com>
-
- Rename variables/macros/structures to not use leading __
-
-2004-07-01 Patrick Caulfield <pcaulfie at redhat.com>
-
- Make sure that the backout time for a "NEWCLUSTER" message is less than the joinwait time.
-
-2004-07-01 Benjamin Marzinski <bmarzins at redhat.com>
-
- initialize the polls array. This will make sure that gnbd_monitor realizes that there is free space to add a new connection.
-
- updated gnbd kernel patch to include recent changes
-
-2004-06-30 Ken Preslan <kpreslan at redhat.com>
-
- Bring patch uptodate with the sources.
-
-2004-06-29 Jonathan Brassow <jbrassow at redhat.com>
-
- - change log code to not print log_msg if verbose is not set. - fix problem where ccsd exits if cman_tool leave is performed.
- If a cman_tool leave occurs, ccsd will drop into non-quorate mode -
- disallowing connections unless they are forced - which should only
- be done by cluster managers.
-
-2004-06-29 Lon Hohberger <lhh at redhat.com>
-
- Make dumb driver act like there's a real, one-node cluster.
-
-2004-06-29 Benjamin Marzinski <bmarzins at redhat.com>
-
- missing "_" in gnbd_monitor... caused gnbd_import to fail with uncached devices
-
- devfs was set to use /dev/gnbd/<minor>, but gnbd_import sets the gnbds cluster unique name in /dev/gnbd/<name>.. This was causing problems for devfs users. The devfs links for gnbd devices will now be in /dev/gnbd_minor/<minor> These should never be used, since this device name is not consistent across the cluster.
-
-2004-06-29 David Teigland <teigland at redhat.com>
-
- update from src files
-
- Fix the way we do lkb deletions. The DELAST flag is removed and a delete arg is passed to queue_ast() when the lkb should be deleted following the ast delivery. In the past, setting the the DELAST flag on an lkb could result in it being detected by an in-progress deliver_ast() and the lkb being deleted early. I'm hopeful this was the cause of the oopses we'd see in process_asts().
-
- include lockspace.h
-
-2004-06-28 Benjamin Marzinski <bmarzins at redhat.com>
-
- fixed obvious error.. If the gnbd_ctl device wasn't present, I was trying to remove it, causing:
- gnbd_import: ERROR cannot remove /dev/gnbd_ctl : No such file or directory
-
-2004-06-28 Michael Conrad Tadpol Tilstra <mtilstra at redhat.com>
-
- - this is the idea I have for having gulm use ccs. This code here compiles, but has not been tested. Further, gulm will not use ccs, unless you compile with -DREADYFORCCS I am a little leary about some of the string fiddling I did, which is why I want to test it first. But being that I'm going on vacation soon, I wanted to leave you all with this code. Feel free to play, but do no be suprised by bugs. - fiddled with the symbols exported by libgulm.
-
-2004-06-28 Lon Hohberger <lhh at redhat.com>
-
- Display node IDs as 64-bit hex
-
- Fix wrong-side of ipv6 addr->node ID assignment
-
- Fix build problems breaking open(/usr/lib/magma/plugins, O_DIRECTORY...)
-
- Fix build problems; fix plugins to not use cml_free
-
-2004-06-28 Adam Manthei <amanthei at redhat.com>
-
- Addresses an issue that was seen w/ the APC Masterswitch. logins can fail if the APC is logged into too fast. This update does two things to reduce the likelihood of this bug:
- 1. It trys to logout cleanly instead of just closing the telnet connection
- 2. retrys twice upon login failure.
-
- There is a bug in the APC that will cause it to reset itself from time to
- time. There doesn't appear to be anything that we can do about that though.
-
- Thanks (and blame! :) go to Erling for helping resolve the issue.
-
-2004-06-28 Lon Hohberger <lhh at redhat.com>
-
- Magma plugins API fixes for GuLM, CMAN, CMAN/SM
-
-2004-06-28 Patrick Caulfield <pcaulfie at redhat.com>
-
- Some older systems need explicit -lpthread
-
-2004-06-28 David Teigland <teigland at redhat.com>
-
- allocate name space for max length, not actual length sm_ioctl's copy_from_user always copies the max length in register
-
- use copy_from_user to get the register name always copy in max name length and then find string len
-
- put lockfile in /var/lock/ by default
-
- some tidying and improve error messages
-
-2004-06-26 David Teigland <teigland at redhat.com>
-
- change build/install order
-
-2004-06-25 Ken Preslan <kpreslan at redhat.com>
-
- Switch to using a fixed version of OGFS' shell sort.
-
- Make sure the VFS ACL code is compiled in if GFS in enabled.
-
-2004-06-25 Benjamin Marzinski <bmarzins at redhat.com>
-
- The GNBD clients and servers now distinguish eachother via nodename, instead of IP. This was keeping gnbd from working smoothly with gulm on machines with one ip interface for lock traffic and one for block traffic. Also it removes some ipv4 to ipv6 headaches. The clients now connect to the server via ipv4 or ipv6.. ipv6 prefferentially. You can force a connection from the client to the sever to go over a specific path by using the ip address instead of the hostname. A bunch of code [...]
-
-2004-06-25 Jonathan Brassow <jbrassow at redhat.com>
-
- - check in patch for making links correctly in make file
- ~ patch by Arkadiusz Miskiewicz
-
-2004-06-25 David Teigland <teigland at redhat.com>
-
- ChangeSet at 1.1683.1.1, 2004-06-25 11:19:18+01:00, patrick at jeltz.pjc.net Fix oops in dlm_query.
-
-2004-06-25 Patrick Caulfield <pcaulfie at redhat.com>
-
- Create /dev/misc if it doesn't exist.
-
-2004-06-25 David Teigland <teigland at redhat.com>
-
- ChangeSet at 1.1684, 2004-06-24 23:22:05+08:00, teigland at redhat.com DLM: fix compile error (undefined proc_ls_name) if PROCLOCKS config is off
- ChangeSet at 1.1681.1.1, 2004-06-24 05:14:16-05:00, pcaulfie at tng2-1.lab.msp.redhat.com
- membership.c:
- Save or create a temp nodeid for a new node that joined via a NOMINATE message.
- should fix bug #126526
- cnxman.c:
- endian fix for temp nodeids
- cnxman-private.h:
- Prototype for new_temp_nodeid()
-
-2004-06-25 Ken Preslan <kpreslan at redhat.com>
-
- HCH's suggested cleanups to the GFS mount/unmount code.
-
-2004-06-24 Jonathan Brassow <jbrassow at redhat.com>
-
- - you meant clu_fence not cp_fence, I assume.
-
-2004-06-24 Lon Hohberger <lhh at redhat.com>
-
- Fixes from Ben Marzinski
-
-2004-06-24 Jonathan Brassow <jbrassow at redhat.com>
-
- - update make files
-
- - make gnbd buildable outside kernel
-
- - add ability to compile outside kernel
- - requires dlm-kernel and cman-kernel are installed
-
-2004-06-24 Lon Hohberger <lhh at redhat.com>
-
- Replace missing clu_fence() API call.
-
-2004-06-24 Jonathan Brassow <jbrassow at redhat.com>
-
- - targets to build outside the kernel.
- - requires that cman-kernel has been installed
-
-2004-06-24 David Teigland <teigland at redhat.com>
-
- ChangeSet at 1.1682, 2004-06-24 13:34:54+08:00, teigland at redhat.com DLM: newly added log_debug() in next_move() used gr pointer after freeing
-
-2004-06-24 Alasdair G. Kergon <agk at redhat.com>
-
- initial checkin
-
- Initial checkin.
diff --git a/Makefile.am b/Makefile.am
index e5ee320..4560002 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,4 +1,4 @@
-EXTRA_DIST = autogen.sh make/fencebuild.mk scripts/fenceparse \
+EXTRA_DIST = autogen.sh make/fencebuild.mk \
.version make/release.mk \
make/git-version-gen make/gitlog-to-changelog tests
@@ -11,8 +11,6 @@ MAINTAINERCLEANFILES = Makefile.in aclocal.m4 configure depcomp \
make/clusterautoconfig.h.in~ autoscan.log \
configure.scan
-noinst_HEADERS = make/copyright.cf
-
ACLOCAL_AMFLAGS = -I m4
SUBDIRS = fence/agents/lib fence doc
diff --git a/Makefile.in b/Makefile.in
deleted file mode 100644
index fe4096a..0000000
--- a/Makefile.in
+++ /dev/null
@@ -1,900 +0,0 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = { \
- if test -z '$(MAKELEVEL)'; then \
- false; \
- elif test -n '$(MAKE_HOST)'; then \
- true; \
- elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
- true; \
- else \
- false; \
- fi; \
-}
-am__make_running_with_option = \
- 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 \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- 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; \
- 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@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = .
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ac_python_module.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
- $(am__configure_deps) $(noinst_HEADERS) $(am__DIST_COMMON)
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno config.status.lineno
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/make/clusterautoconfig.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-SOURCES =
-DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
- ctags-recursive dvi-recursive html-recursive info-recursive \
- install-data-recursive install-dvi-recursive \
- install-exec-recursive install-html-recursive \
- install-info-recursive install-pdf-recursive \
- install-ps-recursive install-recursive installcheck-recursive \
- installdirs-recursive pdf-recursive ps-recursive \
- tags-recursive uninstall-recursive
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-HEADERS = $(noinst_HEADERS)
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
- distclean-recursive maintainer-clean-recursive
-am__recursive_targets = \
- $(RECURSIVE_TARGETS) \
- $(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
-CTAGS = ctags
-CSCOPE = cscope
-DIST_SUBDIRS = $(SUBDIRS)
-am__DIST_COMMON = $(srcdir)/Makefile.in \
- $(top_srcdir)/make/clusterautoconfig.h.in compile config.guess \
- config.sub install-sh ltmain.sh missing
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-am__remove_distdir = \
- if test -d "$(distdir)"; then \
- find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
- && rm -rf "$(distdir)" \
- || { sleep 5 && rm -rf "$(distdir)"; }; \
- else :; fi
-am__post_remove_distdir = $(am__remove_distdir)
-am__relativize = \
- dir0=`pwd`; \
- sed_first='s,^\([^/]*\)/.*$$,\1,'; \
- sed_rest='s,^[^/]*/*,,'; \
- sed_last='s,^.*/\([^/]*\)$$,\1,'; \
- sed_butlast='s,/*[^/]*$$,,'; \
- while test -n "$$dir1"; do \
- first=`echo "$$dir1" | sed -e "$$sed_first"`; \
- if test "$$first" != "."; then \
- if test "$$first" = ".."; then \
- dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
- dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
- else \
- first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
- if test "$$first2" = "$$first"; then \
- dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
- else \
- dir2="../$$dir2"; \
- fi; \
- dir0="$$dir0"/"$$first"; \
- fi; \
- fi; \
- dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
- done; \
- reldir="$$dir2"
-DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 $(distdir).tar.xz
-GZIP_ENV = --best
-DIST_TARGETS = dist-xz dist-bzip2 dist-gzip
-distuninstallcheck_listfiles = find . -type f -print
-am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
- | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
-distcleancheck_listfiles = find . -type f -print
-ACLOCAL = @ACLOCAL@
-AGENTS_LIST = @AGENTS_LIST@
-AMTAR = @AMTAR@
-AMTTOOL_PATH = @AMTTOOL_PATH@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CLUSTERDATA = @CLUSTERDATA@
-CLUSTERVARRUN = @CLUSTERVARRUN@
-COROSYNC_CMAPCTL_PATH = @COROSYNC_CMAPCTL_PATH@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFAULT_CONFIG_DIR = @DEFAULT_CONFIG_DIR@
-DEFAULT_CONFIG_FILE = @DEFAULT_CONFIG_FILE@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FENCEAGENTSLIBDIR = @FENCEAGENTSLIBDIR@
-FGREP = @FGREP@
-GNUTLSCLI_PATH = @GNUTLSCLI_PATH@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-IPMITOOL_PATH = @IPMITOOL_PATH@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LOGDIR = @LOGDIR@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-MPATH_PATH = @MPATH_PATH@
-NM = @NM@
-NMEDIT = @NMEDIT@
-NOVA_PATH = @NOVA_PATH@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OPENSTACK_PATH = @OPENSTACK_PATH@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-POWERMAN_PATH = @POWERMAN_PATH@
-PYTHON = @PYTHON@
-PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
-PYTHON_PLATFORM = @PYTHON_PLATFORM@
-PYTHON_PREFIX = @PYTHON_PREFIX@
-PYTHON_VERSION = @PYTHON_VERSION@
-RANLIB = @RANLIB@
-SBD_PATH = @SBD_PATH@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SG_PERSIST_PATH = @SG_PERSIST_PATH@
-SG_TURS_PATH = @SG_TURS_PATH@
-SHELL = @SHELL@
-SNMPBIN = @SNMPBIN@
-SNMPGET_PATH = @SNMPGET_PATH@
-SNMPSET_PATH = @SNMPSET_PATH@
-SNMPWALK_PATH = @SNMPWALK_PATH@
-SSH_PATH = @SSH_PATH@
-STRIP = @STRIP@
-SUDO_PATH = @SUDO_PATH@
-TELNET_PATH = @TELNET_PATH@
-VERSION = @VERSION@
-VGS_PATH = @VGS_PATH@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-pkgpyexecdir = @pkgpyexecdir@
-pkgpythondir = @pkgpythondir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-pyexecdir = @pyexecdir@
-pythondir = @pythondir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-EXTRA_DIST = autogen.sh make/fencebuild.mk scripts/fenceparse \
- .version make/release.mk \
- make/git-version-gen make/gitlog-to-changelog tests
-
-AUTOMAKE_OPTIONS = foreign
-MAINTAINERCLEANFILES = Makefile.in aclocal.m4 configure depcomp \
- config.guess config.sub missing install-sh \
- autoheader automake autoconf libtool libtoolize \
- ltmain.sh compile make/clusterautoconfig.h.in \
- make/clusterautoconfig.h.in~ autoscan.log \
- configure.scan
-
-noinst_HEADERS = make/copyright.cf
-ACLOCAL_AMFLAGS = -I m4
-SUBDIRS = fence/agents/lib fence doc
-BUILT_SOURCES = .version
-gen_start_date = 2000-01-01
-all: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) all-recursive
-
-.SUFFIXES:
-am--refresh: Makefile
- @:
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
- $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- echo ' $(SHELL) ./config.status'; \
- $(SHELL) ./config.status;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- $(SHELL) ./config.status --recheck
-
-$(top_srcdir)/configure: $(am__configure_deps)
- $(am__cd) $(srcdir) && $(AUTOCONF)
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-$(am__aclocal_m4_deps):
-
-make/clusterautoconfig.h: make/stamp-h1
- @test -f $@ || rm -f make/stamp-h1
- @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) make/stamp-h1
-
-make/stamp-h1: $(top_srcdir)/make/clusterautoconfig.h.in $(top_builddir)/config.status
- @rm -f make/stamp-h1
- cd $(top_builddir) && $(SHELL) ./config.status make/clusterautoconfig.h
-$(top_srcdir)/make/clusterautoconfig.h.in: $(am__configure_deps)
- ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
- rm -f make/stamp-h1
- touch $@
-
-distclean-hdr:
- -rm -f make/clusterautoconfig.h make/stamp-h1
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-distclean-libtool:
- -rm -f libtool config.lt
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run 'make' without going through this Makefile.
-# To change the values of 'make' variables: instead of editing Makefiles,
-# (1) if the variable is set in 'config.status', edit 'config.status'
-# (which will cause the Makefiles to be regenerated when you run 'make');
-# (2) otherwise, pass the desired values on the 'make' command line.
-$(am__recursive_targets):
- @fail=; \
- if $(am__make_keepgoing); then \
- failcom='fail=yes'; \
- else \
- failcom='exit 1'; \
- fi; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- case "$@" in \
- distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
- *) list='$(SUBDIRS)' ;; \
- esac; \
- for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-recursive
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
- include_option=--etags-include; \
- empty_fix=.; \
- else \
- include_option=--include; \
- empty_fix=; \
- fi; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test ! -f $$subdir/TAGS || \
- set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
- fi; \
- done; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-recursive
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && 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:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
- -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
-
-distdir: $(DISTFILES)
- $(am__remove_distdir)
- test -d "$(distdir)" || mkdir "$(distdir)"
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
- @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- $(am__make_dryrun) \
- || test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
- $(am__relativize); \
- new_distdir=$$reldir; \
- dir1=$$subdir; dir2="$(top_distdir)"; \
- $(am__relativize); \
- new_top_distdir=$$reldir; \
- echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
- echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
- ($(am__cd) $$subdir && \
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$new_top_distdir" \
- distdir="$$new_distdir" \
- am__remove_distdir=: \
- am__skip_length_check=: \
- am__skip_mode_fix=: \
- distdir) \
- || exit 1; \
- fi; \
- done
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$(top_distdir)" distdir="$(distdir)" \
- dist-hook
- -test -n "$(am__skip_mode_fix)" \
- || find "$(distdir)" -type d ! -perm -755 \
- -exec chmod u+rwx,go+rx {} \; -o \
- ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
- || chmod -R a+r "$(distdir)"
-dist-gzip: distdir
- tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
- $(am__post_remove_distdir)
-dist-bzip2: distdir
- tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
- $(am__post_remove_distdir)
-
-dist-lzip: distdir
- tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
- $(am__post_remove_distdir)
-dist-xz: distdir
- tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
- $(am__post_remove_distdir)
-
-dist-tarZ: 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
- tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
- $(am__post_remove_distdir)
-
-dist-shar: distdir
- @echo WARNING: "Support for shar distribution archives 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
- $(am__post_remove_distdir)
-
-dist-zip: distdir
- -rm -f $(distdir).zip
- zip -rq $(distdir).zip $(distdir)
- $(am__post_remove_distdir)
-
-dist dist-all:
- $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
- $(am__post_remove_distdir)
-
-# This target untars the dist file and tries a VPATH configuration. Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
- case '$(DIST_ARCHIVES)' in \
- *.tar.gz*) \
- GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
- *.tar.bz2*) \
- bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
- *.tar.lz*) \
- lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
- *.tar.xz*) \
- xz -dc $(distdir).tar.xz | $(am__untar) ;;\
- *.tar.Z*) \
- uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
- *.shar.gz*) \
- GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
- *.zip*) \
- unzip $(distdir).zip ;;\
- esac
- chmod -R a-w $(distdir)
- chmod u+w $(distdir)
- mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
- chmod a-w $(distdir)
- test -d $(distdir)/_build || exit 0; \
- dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
- && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
- && am__cwd=`pwd` \
- && $(am__cd) $(distdir)/_build/sub \
- && ../../configure \
- $(AM_DISTCHECK_CONFIGURE_FLAGS) \
- $(DISTCHECK_CONFIGURE_FLAGS) \
- --srcdir=../.. --prefix="$$dc_install_base" \
- && $(MAKE) $(AM_MAKEFLAGS) \
- && $(MAKE) $(AM_MAKEFLAGS) dvi \
- && $(MAKE) $(AM_MAKEFLAGS) check \
- && $(MAKE) $(AM_MAKEFLAGS) install \
- && $(MAKE) $(AM_MAKEFLAGS) installcheck \
- && $(MAKE) $(AM_MAKEFLAGS) uninstall \
- && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
- distuninstallcheck \
- && chmod -R a-w "$$dc_install_base" \
- && ({ \
- (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
- distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
- } || { rm -rf "$$dc_destdir"; exit 1; }) \
- && rm -rf "$$dc_destdir" \
- && $(MAKE) $(AM_MAKEFLAGS) dist \
- && rm -rf $(DIST_ARCHIVES) \
- && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
- && cd "$$am__cwd" \
- || exit 1
- $(am__post_remove_distdir)
- @(echo "$(distdir) archives ready for distribution: "; \
- 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'
-distuninstallcheck:
- @test -n '$(distuninstallcheck_dir)' || { \
- echo 'ERROR: trying to run $@ with an empty' \
- '$$(distuninstallcheck_dir)' >&2; \
- exit 1; \
- }; \
- $(am__cd) '$(distuninstallcheck_dir)' || { \
- echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
- exit 1; \
- }; \
- test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
- || { echo "ERROR: files left after uninstall:" ; \
- if test -n "$(DESTDIR)"; then \
- echo " (check DESTDIR support)"; \
- fi ; \
- $(distuninstallcheck_listfiles) ; \
- exit 1; } >&2
-distcleancheck: distclean
- @if test '$(srcdir)' = . ; then \
- echo "ERROR: distcleancheck can only run from a VPATH build" ; \
- exit 1 ; \
- fi
- @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
- || { echo "ERROR: files left in build directory after distclean:" ; \
- $(distcleancheck_listfiles) ; \
- exit 1; } >&2
-check-am: all-am
-check: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) check-recursive
-all-am: Makefile $(HEADERS)
-installdirs: installdirs-recursive
-installdirs-am:
-install: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
- -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
- -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
-clean: clean-recursive
-
-clean-am: clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-recursive
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-hdr \
- distclean-libtool distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-html-am:
-
-info: info-recursive
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-recursive
-
-install-dvi-am:
-
-install-exec-am: install-exec-local
-
-install-html: install-html-recursive
-
-install-html-am:
-
-install-info: install-info-recursive
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-recursive
-
-install-pdf-am:
-
-install-ps: install-ps-recursive
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -rf $(top_srcdir)/autom4te.cache
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic \
- maintainer-clean-local
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am: uninstall-local
-
-.MAKE: $(am__recursive_targets) all check install install-am \
- install-strip
-
-.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
- am--refresh check check-am clean clean-cscope clean-generic \
- clean-libtool cscope cscopelist-am ctags ctags-am dist \
- dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \
- dist-tarZ dist-xz dist-zip distcheck distclean \
- distclean-generic distclean-hdr distclean-libtool \
- distclean-tags distcleancheck distdir distuninstallcheck dvi \
- dvi-am html html-am info info-am install install-am \
- install-data install-data-am install-dvi install-dvi-am \
- install-exec install-exec-am install-exec-local install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- installdirs-am maintainer-clean maintainer-clean-generic \
- maintainer-clean-local mostlyclean mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
- uninstall-am uninstall-local
-
-.PRECIOUS: Makefile
-
-
-install-exec-local:
- $(INSTALL) -d $(DESTDIR)/$(LOGDIR)
- $(INSTALL) -d $(DESTDIR)/$(CLUSTERVARRUN)
-
-uninstall-local:
- rmdir $(DESTDIR)/$(LOGDIR) || :;
- rmdir $(DESTDIR)/$(CLUSTERVARRUN) || :;
-.version:
- echo $(VERSION) > $@-t && mv $@-t $@
-
-dist-hook: gen-ChangeLog
- echo $(VERSION) > $(distdir)/.tarball-version
-.PHONY: gen-ChangeLog
-gen-ChangeLog:
- if test -d .git; then \
- $(top_srcdir)/make/gitlog-to-changelog \
- --since=$(gen_start_date) > $(distdir)/cl-t; \
- rm -f $(distdir)/ChangeLog; \
- mv $(distdir)/cl-t $(distdir)/ChangeLog; \
- fi
-
-# this will get rid of "libtoolized" m4 files
-maintainer-clean-local:
- rm -rf $(filter-out \
- $(top_srcdir)/m4/ac_python_module.m4,$(wildcard \
- $(top_srcdir)/m4/*.m4))
-
-# 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.
-.NOEXPORT:
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..d03589c
--- /dev/null
+++ b/README.md
@@ -0,0 +1,13 @@
+Fence agents
+============
+Fence agents were developed as device "drivers" which are able to prevent computers from destroying data on shared storage. Their aim is to isolate a corrupted computer, using one of three methods:
+
+ * Power - A computer that is switched off cannot corrupt data, but it is important to not do a "soft-reboot" as we won't know if this is possible. This also works for virtual machines when the fence device is a hypervisor.
+ * Network - Switches can prevent routing to a given computer, so even if a computer is powered on it won't be able to harm the data.
+ * Configuration - Fibre-channel switches or SCSI devices allow us to limit who can write to managed disks.
+
+Fence agents do not use configuration files, as configuration management is outside of their scope. All of the configuration has to be specified either as command-line arguments or lines of standard input (see the complete list for more info).
+
+Because many fence agents are quite similar to each other, a fencing library (in Python) was developed. Please use it for further development. Creating or modifying a new fence agent should be quite simple using this library.
+
+Detailed user and developer documentation can be found here: [https://docs.pagure.org/ClusterLabs.fence-agents/FenceAgentAPI.md](https://docs.pagure.org/ClusterLabs.fence-agents/FenceAgentAPI.md)
diff --git a/aclocal.m4 b/aclocal.m4
deleted file mode 100644
index b410cb7..0000000
--- a/aclocal.m4
+++ /dev/null
@@ -1,1393 +0,0 @@
-# generated automatically by aclocal 1.15 -*- Autoconf -*-
-
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
-
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
-m4_ifndef([AC_AUTOCONF_VERSION],
- [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
-[m4_warning([this file was generated for autoconf 2.69.
-You have another version of autoconf. It may work, but is not guaranteed to.
-If you have problems, you may need to regenerate the build system entirely.
-To do so, use the procedure documented by the package, typically 'autoreconf'.])])
-
-# Copyright (C) 2002-2014 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_AUTOMAKE_VERSION(VERSION)
-# ----------------------------
-# Automake X.Y traces this macro to ensure aclocal.m4 has been
-# generated from the m4 files accompanying Automake X.Y.
-# (This private macro should not be called outside this file.)
-AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.15'
-dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
-dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.15], [],
- [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
-])
-
-# _AM_AUTOCONF_VERSION(VERSION)
-# -----------------------------
-# aclocal traces this macro to find the Autoconf version.
-# This is a private macro too. Using m4_define simplifies
-# the logic in aclocal, which can simply ignore this definition.
-m4_define([_AM_AUTOCONF_VERSION], [])
-
-# AM_SET_CURRENT_AUTOMAKE_VERSION
-# -------------------------------
-# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
-# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
-AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.15])dnl
-m4_ifndef([AC_AUTOCONF_VERSION],
- [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
-
-# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
-# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to
-# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
-#
-# Of course, Automake must honor this variable whenever it calls a
-# tool from the auxiliary directory. The problem is that $srcdir (and
-# therefore $ac_aux_dir as well) can be either absolute or relative,
-# depending on how configure is run. This is pretty annoying, since
-# it makes $ac_aux_dir quite unusable in subdirectories: in the top
-# source directory, any form will work fine, but in subdirectories a
-# relative path needs to be adjusted first.
-#
-# $ac_aux_dir/missing
-# fails when called from a subdirectory if $ac_aux_dir is relative
-# $top_srcdir/$ac_aux_dir/missing
-# fails if $ac_aux_dir is absolute,
-# fails when called from a subdirectory in a VPATH build with
-# a relative $ac_aux_dir
-#
-# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
-# are both prefixed by $srcdir. In an in-source build this is usually
-# harmless because $srcdir is '.', but things will broke when you
-# start a VPATH build or use an absolute $srcdir.
-#
-# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
-# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
-# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
-# and then we would define $MISSING as
-# MISSING="\${SHELL} $am_aux_dir/missing"
-# This will work as long as MISSING is not called from configure, because
-# unfortunately $(top_srcdir) has no meaning in configure.
-# However there are other variables, like CC, which are often used in
-# configure, and could therefore not use this "fixed" $ac_aux_dir.
-#
-# Another solution, used here, is to always expand $ac_aux_dir to an
-# absolute PATH. The drawback is that using absolute paths prevent a
-# configured tree to be moved without reconfiguration.
-
-AC_DEFUN([AM_AUX_DIR_EXPAND],
-[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
-# Expand $ac_aux_dir to an absolute path.
-am_aux_dir=`cd "$ac_aux_dir" && pwd`
-])
-
-# AM_CONDITIONAL -*- Autoconf -*-
-
-# Copyright (C) 1997-2014 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_CONDITIONAL(NAME, SHELL-CONDITION)
-# -------------------------------------
-# Define a conditional.
-AC_DEFUN([AM_CONDITIONAL],
-[AC_PREREQ([2.52])dnl
- m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
- [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
-AC_SUBST([$1_TRUE])dnl
-AC_SUBST([$1_FALSE])dnl
-_AM_SUBST_NOTMAKE([$1_TRUE])dnl
-_AM_SUBST_NOTMAKE([$1_FALSE])dnl
-m4_define([_AM_COND_VALUE_$1], [$2])dnl
-if $2; then
- $1_TRUE=
- $1_FALSE='#'
-else
- $1_TRUE='#'
- $1_FALSE=
-fi
-AC_CONFIG_COMMANDS_PRE(
-[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
- AC_MSG_ERROR([[conditional "$1" was never defined.
-Usually this means the macro was only invoked conditionally.]])
-fi])])
-
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-
-# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
-# written in clear, in which case automake, when reading aclocal.m4,
-# will think it sees a *use*, and therefore will trigger all it's
-# C support machinery. Also note that it means that autoscan, seeing
-# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
-
-
-# _AM_DEPENDENCIES(NAME)
-# ----------------------
-# See how the compiler implements dependency checking.
-# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
-# We try a few techniques and use that to set a single cache variable.
-#
-# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
-# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
-# dependency, and given that the user is not expected to run this macro,
-# just rely on AC_PROG_CC.
-AC_DEFUN([_AM_DEPENDENCIES],
-[AC_REQUIRE([AM_SET_DEPDIR])dnl
-AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
-AC_REQUIRE([AM_MAKE_INCLUDE])dnl
-AC_REQUIRE([AM_DEP_TRACK])dnl
-
-m4_if([$1], [CC], [depcc="$CC" am_compiler_list=],
- [$1], [CXX], [depcc="$CXX" am_compiler_list=],
- [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
- [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
- [$1], [UPC], [depcc="$UPC" am_compiler_list=],
- [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
- [depcc="$$1" am_compiler_list=])
-
-AC_CACHE_CHECK([dependency style of $depcc],
- [am_cv_$1_dependencies_compiler_type],
-[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named 'D' -- because '-MD' means "put the output
- # in D".
- rm -rf conftest.dir
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_$1_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
- fi
- am__universal=false
- m4_case([$1], [CC],
- [case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac],
- [CXX],
- [case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac])
-
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
- # Solaris 10 /bin/sh.
- echo '/* dummy */' > sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- # We check with '-c' and '-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle '-M -o', and we need to detect this. Also, some Intel
- # versions had trouble with output in subdirs.
- am__obj=sub/conftest.${OBJEXT-o}
- am__minus_obj="-o $am__obj"
- case $depmode in
- gcc)
- # This depmode causes a compiler race in universal mode.
- test "$am__universal" = false || continue
- ;;
- nosideeffect)
- # After this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested.
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- msvc7 | msvc7msys | msvisualcpp | msvcmsys)
- # This compiler won't grok '-c -o', but also, the minuso test has
- # not run yet. These depmodes are late enough in the game, and
- # so weak that their functioning should not be impacted.
- am__obj=conftest.${OBJEXT-o}
- am__minus_obj=
- ;;
- none) break ;;
- esac
- if depmode=$depmode \
- source=sub/conftest.c object=$am__obj \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_$1_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_$1_dependencies_compiler_type=none
-fi
-])
-AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
-AM_CONDITIONAL([am__fastdep$1], [
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
-])
-
-
-# AM_SET_DEPDIR
-# -------------
-# Choose a directory name for dependency files.
-# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
-AC_DEFUN([AM_SET_DEPDIR],
-[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
-])
-
-
-# AM_DEP_TRACK
-# ------------
-AC_DEFUN([AM_DEP_TRACK],
-[AC_ARG_ENABLE([dependency-tracking], [dnl
-AS_HELP_STRING(
- [--enable-dependency-tracking],
- [do not reject slow dependency extractors])
-AS_HELP_STRING(
- [--disable-dependency-tracking],
- [speeds up one-time build])])
-if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
- am__nodep='_no'
-fi
-AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
-AC_SUBST([AMDEPBACKSLASH])dnl
-_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
-AC_SUBST([am__nodep])dnl
-_AM_SUBST_NOTMAKE([am__nodep])dnl
-])
-
-# Generate code to set up dependency tracking. -*- Autoconf -*-
-
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-
-# _AM_OUTPUT_DEPENDENCY_COMMANDS
-# ------------------------------
-AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
-[{
- # Older Autoconf quotes --file arguments for eval, but not when files
- # are listed without --file. Let's play safe and only enable the eval
- # if we detect the quoting.
- case $CONFIG_FILES in
- *\'*) eval set x "$CONFIG_FILES" ;;
- *) set x $CONFIG_FILES ;;
- esac
- shift
- for mf
- do
- # Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named 'Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # Grep'ing the whole file is not good either: AIX grep has a line
- # limit of 2048, but all sed's we know have understand at least 4000.
- if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
- dirpart=`AS_DIRNAME("$mf")`
- else
- continue
- fi
- # Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running 'make'.
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
- test -z "$DEPDIR" && continue
- am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "$am__include" && continue
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # Find all dependency output files, they are included files with
- # $(DEPDIR) in their names. We invoke sed twice because it is the
- # simplest approach to changing $(DEPDIR) to its actual value in the
- # expansion.
- for file in `sed -n "
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
- fdir=`AS_DIRNAME(["$file"])`
- AS_MKDIR_P([$dirpart/$fdir])
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
- done
- done
-}
-])# _AM_OUTPUT_DEPENDENCY_COMMANDS
-
-
-# AM_OUTPUT_DEPENDENCY_COMMANDS
-# -----------------------------
-# This macro should only be invoked once -- use via AC_REQUIRE.
-#
-# This code is only required when automatic dependency tracking
-# is enabled. FIXME. This creates each '.P' file that we will
-# need in order to bootstrap the dependency handling code.
-AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
-[AC_CONFIG_COMMANDS([depfiles],
- [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
- [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
-])
-
-# Do all the work for Automake. -*- Autoconf -*-
-
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This macro actually does too much. Some checks are only needed if
-# your package does certain things. But this isn't really a big deal.
-
-dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
-m4_define([AC_PROG_CC],
-m4_defn([AC_PROG_CC])
-[_AM_PROG_CC_C_O
-])
-
-# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
-# AM_INIT_AUTOMAKE([OPTIONS])
-# -----------------------------------------------
-# The call with PACKAGE and VERSION arguments is the old style
-# call (pre autoconf-2.50), which is being phased out. PACKAGE
-# and VERSION should now be passed to AC_INIT and removed from
-# the call to AM_INIT_AUTOMAKE.
-# We support both call styles for the transition. After
-# the next Automake release, Autoconf can make the AC_INIT
-# arguments mandatory, and then we can depend on a new Autoconf
-# release and drop the old call support.
-AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.65])dnl
-dnl Autoconf wants to disallow AM_ names. We explicitly allow
-dnl the ones we care about.
-m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
-AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
-AC_REQUIRE([AC_PROG_INSTALL])dnl
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
- # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
- # is not polluted with repeated "-I."
- AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
- # test to see if srcdir already configured
- if test -f $srcdir/config.status; then
- AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
- fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-AC_SUBST([CYGPATH_W])
-
-# Define the identity of the package.
-dnl Distinguish between old-style and new-style calls.
-m4_ifval([$2],
-[AC_DIAGNOSE([obsolete],
- [$0: two- and three-arguments forms are deprecated.])
-m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
- AC_SUBST([PACKAGE], [$1])dnl
- AC_SUBST([VERSION], [$2])],
-[_AM_SET_OPTIONS([$1])dnl
-dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
-m4_if(
- m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
- [ok:ok],,
- [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
-
-_AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
- AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
-
-# Some tools Automake needs.
-AC_REQUIRE([AM_SANITY_CHECK])dnl
-AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
-AM_MISSING_PROG([AUTOCONF], [autoconf])
-AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
-AM_MISSING_PROG([AUTOHEADER], [autoheader])
-AM_MISSING_PROG([MAKEINFO], [makeinfo])
-AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
-AC_REQUIRE([AC_PROG_MKDIR_P])dnl
-# For better backward compatibility. To be removed once Automake 1.9.x
-# dies out for good. For more background, see:
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
-AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
-# We need awk for the "check" target (and possibly the TAP driver). The
-# system "awk" is bad on some platforms.
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([AC_PROG_MAKE_SET])dnl
-AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
- [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
- [_AM_PROG_TAR([v7])])])
-_AM_IF_OPTION([no-dependencies],,
-[AC_PROVIDE_IFELSE([AC_PROG_CC],
- [_AM_DEPENDENCIES([CC])],
- [m4_define([AC_PROG_CC],
- m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [_AM_DEPENDENCIES([CXX])],
- [m4_define([AC_PROG_CXX],
- m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_OBJC],
- [_AM_DEPENDENCIES([OBJC])],
- [m4_define([AC_PROG_OBJC],
- m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
- [_AM_DEPENDENCIES([OBJCXX])],
- [m4_define([AC_PROG_OBJCXX],
- m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
-])
-AC_REQUIRE([AM_SILENT_RULES])dnl
-dnl The testsuite driver may need to know about EXEEXT, so add the
-dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This
-dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
-AC_CONFIG_COMMANDS_PRE(dnl
-[m4_provide_if([_AM_COMPILER_EXEEXT],
- [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
-
-# POSIX will say in a future version that running "rm -f" with no argument
-# is OK; and we want to be able to make that assumption in our Makefile
-# recipes. So use an aggressive probe to check that the usage we want is
-# actually supported "in the wild" to an acceptable degree.
-# See automake bug#10828.
-# To make any issue more visible, cause the running configure to be aborted
-# by default if the 'rm' program in use doesn't match our expectations; the
-# user can still override this though.
-if rm -f && rm -fr && rm -rf; then : OK; else
- cat >&2 <<'END'
-Oops!
-
-Your 'rm' program seems unable to run without file operands specified
-on the command line, even when the '-f' option is present. This is contrary
-to the behaviour of most rm programs out there, and not conforming with
-the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
-
-Please tell bug-automake at gnu.org about your system, including the value
-of your $PATH and any error possibly output before this message. This
-can help us improve future automake versions.
-
-END
- if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
- echo 'Configuration will proceed anyway, since you have set the' >&2
- echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
- echo >&2
- else
- cat >&2 <<'END'
-Aborting the configuration process, to ensure you take notice of the issue.
-
-You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <http://www.gnu.org/software/coreutils/>.
-
-If you want to complete the configuration process using your problematic
-'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
-to "yes", and re-run configure.
-
-END
- AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
- fi
-fi
-dnl The trailing newline in this macro's definition is deliberate, for
-dnl backward compatibility and to allow trailing 'dnl'-style comments
-dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
-])
-
-dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
-dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
-dnl mangled by Autoconf and run in a shell conditional statement.
-m4_define([_AC_COMPILER_EXEEXT],
-m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
-
-# When config.status generates a header, we must update the stamp-h file.
-# This file resides in the same directory as the config header
-# that is generated. The stamp files are numbered to have different names.
-
-# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
-# loop where config.status creates the headers, so we can generate
-# our stamp files there.
-AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
-[# Compute $1's index in $config_headers.
-_am_arg=$1
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- $_am_arg | $_am_arg:* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_INSTALL_SH
-# ------------------
-# Define $install_sh.
-AC_DEFUN([AM_PROG_INSTALL_SH],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-if test x"${install_sh+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
- *)
- install_sh="\${SHELL} $am_aux_dir/install-sh"
- esac
-fi
-AC_SUBST([install_sh])])
-
-# Copyright (C) 2003-2014 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# Check whether the underlying file-system supports filenames
-# with a leading dot. For instance MS-DOS doesn't.
-AC_DEFUN([AM_SET_LEADING_DOT],
-[rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-AC_SUBST([am__leading_dot])])
-
-# Check to see how 'make' treats includes. -*- Autoconf -*-
-
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_MAKE_INCLUDE()
-# -----------------
-# Check to see how make treats includes.
-AC_DEFUN([AM_MAKE_INCLUDE],
-[am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
- @echo this is the am__doit target
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-AC_MSG_CHECKING([for style of include used by $am_make])
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from 'make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
- am__include=include
- am__quote=
- _am_result=GNU
- ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
- echo '.include "confinc"' > confmf
- case `$am_make -s -f confmf 2> /dev/null` in #(
- *the\ am__doit\ target*)
- am__include=.include
- am__quote="\""
- _am_result=BSD
- ;;
- esac
-fi
-AC_SUBST([am__include])
-AC_SUBST([am__quote])
-AC_MSG_RESULT([$_am_result])
-rm -f confinc confmf
-])
-
-# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-
-# Copyright (C) 1997-2014 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_MISSING_PROG(NAME, PROGRAM)
-# ------------------------------
-AC_DEFUN([AM_MISSING_PROG],
-[AC_REQUIRE([AM_MISSING_HAS_RUN])
-$1=${$1-"${am_missing_run}$2"}
-AC_SUBST($1)])
-
-# AM_MISSING_HAS_RUN
-# ------------------
-# Define MISSING if not defined so far and test if it is modern enough.
-# If it is, set am_missing_run to use it, otherwise, to nothing.
-AC_DEFUN([AM_MISSING_HAS_RUN],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([missing])dnl
-if test x"${MISSING+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
- *)
- MISSING="\${SHELL} $am_aux_dir/missing" ;;
- esac
-fi
-# Use eval to expand $SHELL
-if eval "$MISSING --is-lightweight"; then
- am_missing_run="$MISSING "
-else
- am_missing_run=
- AC_MSG_WARN(['missing' script is too old or missing])
-fi
-])
-
-# Helper functions for option handling. -*- Autoconf -*-
-
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_MANGLE_OPTION(NAME)
-# -----------------------
-AC_DEFUN([_AM_MANGLE_OPTION],
-[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
-
-# _AM_SET_OPTION(NAME)
-# --------------------
-# Set option NAME. Presently that only means defining a flag for this option.
-AC_DEFUN([_AM_SET_OPTION],
-[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
-
-# _AM_SET_OPTIONS(OPTIONS)
-# ------------------------
-# OPTIONS is a space-separated list of Automake options.
-AC_DEFUN([_AM_SET_OPTIONS],
-[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
-
-# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
-# -------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-AC_DEFUN([_AM_IF_OPTION],
-[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_PROG_CC_C_O
-# ---------------
-# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC
-# to automatically call this.
-AC_DEFUN([_AM_PROG_CC_C_O],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([compile])dnl
-AC_LANG_PUSH([C])dnl
-AC_CACHE_CHECK(
- [whether $CC understands -c and -o together],
- [am_cv_prog_cc_c_o],
- [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
- # Make sure it works both with $CC and with simple cc.
- # Following AC_PROG_CC_C_O, we do the test twice because some
- # compilers refuse to overwrite an existing .o file with -o,
- # though they will create one.
- am_cv_prog_cc_c_o=yes
- for am_i in 1 2; do
- if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
- && test -f conftest2.$ac_objext; then
- : OK
- else
- am_cv_prog_cc_c_o=no
- break
- fi
- done
- rm -f core conftest*
- unset am_i])
-if test "$am_cv_prog_cc_c_o" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
-fi
-AC_LANG_POP([C])])
-
-# For backward compatibility.
-AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
-
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-
-# AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
-# ---------------------------------------------------------------------------
-# Adds support for distributing Python modules and packages. To
-# install modules, copy them to $(pythondir), using the python_PYTHON
-# automake variable. To install a package with the same name as the
-# automake package, install to $(pkgpythondir), or use the
-# pkgpython_PYTHON automake variable.
-#
-# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as
-# locations to install python extension modules (shared libraries).
-# Another macro is required to find the appropriate flags to compile
-# extension modules.
-#
-# If your package is configured with a different prefix to python,
-# users will have to add the install directory to the PYTHONPATH
-# environment variable, or create a .pth file (see the python
-# documentation for details).
-#
-# If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will
-# cause an error if the version of python installed on the system
-# doesn't meet the requirement. MINIMUM-VERSION should consist of
-# numbers and dots only.
-AC_DEFUN([AM_PATH_PYTHON],
- [
- dnl Find a Python interpreter. Python versions prior to 2.0 are not
- dnl supported. (2.0 was released on October 16, 2000).
- m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
-[python python2 python3 python3.3 python3.2 python3.1 python3.0 python2.7 dnl
- python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0])
-
- AC_ARG_VAR([PYTHON], [the Python interpreter])
-
- m4_if([$1],[],[
- dnl No version check is needed.
- # Find any Python interpreter.
- if test -z "$PYTHON"; then
- AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :)
- fi
- am_display_PYTHON=python
- ], [
- dnl A version check is needed.
- if test -n "$PYTHON"; then
- # If the user set $PYTHON, use it and don't search something else.
- AC_MSG_CHECKING([whether $PYTHON version is >= $1])
- AM_PYTHON_CHECK_VERSION([$PYTHON], [$1],
- [AC_MSG_RESULT([yes])],
- [AC_MSG_RESULT([no])
- AC_MSG_ERROR([Python interpreter is too old])])
- am_display_PYTHON=$PYTHON
- else
- # Otherwise, try each interpreter until we find one that satisfies
- # VERSION.
- AC_CACHE_CHECK([for a Python interpreter with version >= $1],
- [am_cv_pathless_PYTHON],[
- for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do
- test "$am_cv_pathless_PYTHON" = none && break
- AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break])
- done])
- # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
- if test "$am_cv_pathless_PYTHON" = none; then
- PYTHON=:
- else
- AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON])
- fi
- am_display_PYTHON=$am_cv_pathless_PYTHON
- fi
- ])
-
- if test "$PYTHON" = :; then
- dnl Run any user-specified action, or abort.
- m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])])
- else
-
- dnl Query Python for its version number. Getting [:3] seems to be
- dnl the best way to do this; it's what "site.py" does in the standard
- dnl library.
-
- AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
- [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`])
- AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
-
- dnl Use the values of $prefix and $exec_prefix for the corresponding
- dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made
- dnl distinct variables so they can be overridden if need be. However,
- dnl general consensus is that you shouldn't need this ability.
-
- AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
- AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
-
- dnl At times (like when building shared libraries) you may want
- dnl to know which OS platform Python thinks this is.
-
- AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
- [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`])
- AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
-
- # Just factor out some code duplication.
- am_python_setup_sysconfig="\
-import sys
-# Prefer sysconfig over distutils.sysconfig, for better compatibility
-# with python 3.x. See automake bug#10227.
-try:
- import sysconfig
-except ImportError:
- can_use_sysconfig = 0
-else:
- can_use_sysconfig = 1
-# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs:
-# <https://github.com/pypa/virtualenv/issues/118>
-try:
- from platform import python_implementation
- if python_implementation() == 'CPython' and sys.version[[:3]] == '2.7':
- can_use_sysconfig = 0
-except ImportError:
- pass"
-
- dnl Set up 4 directories:
-
- dnl pythondir -- where to install python scripts. This is the
- dnl site-packages directory, not the python standard library
- dnl directory like in previous automake betas. This behavior
- dnl is more consistent with lispdir.m4 for example.
- dnl Query distutils for this directory.
- AC_CACHE_CHECK([for $am_display_PYTHON script directory],
- [am_cv_python_pythondir],
- [if test "x$prefix" = xNONE
- then
- am_py_prefix=$ac_default_prefix
- else
- am_py_prefix=$prefix
- fi
- am_cv_python_pythondir=`$PYTHON -c "
-$am_python_setup_sysconfig
-if can_use_sysconfig:
- sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
-else:
- from distutils import sysconfig
- sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
-sys.stdout.write(sitedir)"`
- case $am_cv_python_pythondir in
- $am_py_prefix*)
- am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
- am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
- ;;
- *)
- case $am_py_prefix in
- /usr|/System*) ;;
- *)
- am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
- ;;
- esac
- ;;
- esac
- ])
- AC_SUBST([pythondir], [$am_cv_python_pythondir])
-
- dnl pkgpythondir -- $PACKAGE directory under pythondir. Was
- dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is
- dnl more consistent with the rest of automake.
-
- AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
-
- dnl pyexecdir -- directory for installing python extension modules
- dnl (shared libraries)
- dnl Query distutils for this directory.
- AC_CACHE_CHECK([for $am_display_PYTHON extension module directory],
- [am_cv_python_pyexecdir],
- [if test "x$exec_prefix" = xNONE
- then
- am_py_exec_prefix=$am_py_prefix
- else
- am_py_exec_prefix=$exec_prefix
- fi
- am_cv_python_pyexecdir=`$PYTHON -c "
-$am_python_setup_sysconfig
-if can_use_sysconfig:
- sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'})
-else:
- from distutils import sysconfig
- sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix')
-sys.stdout.write(sitedir)"`
- case $am_cv_python_pyexecdir in
- $am_py_exec_prefix*)
- am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
- am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
- ;;
- *)
- case $am_py_exec_prefix in
- /usr|/System*) ;;
- *)
- am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
- ;;
- esac
- ;;
- esac
- ])
- AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
-
- dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE)
-
- AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
-
- dnl Run any user-specified action.
- $2
- fi
-
-])
-
-
-# AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
-# ---------------------------------------------------------------------------
-# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION.
-# Run ACTION-IF-FALSE otherwise.
-# This test uses sys.hexversion instead of the string equivalent (first
-# word of sys.version), in order to cope with versions such as 2.2c1.
-# This supports Python 2.0 or higher. (2.0 was released on October 16, 2000).
-AC_DEFUN([AM_PYTHON_CHECK_VERSION],
- [prog="import sys
-# split strings by '.' and convert to numeric. Append some zeros
-# because we need at least 4 digits for the hex conversion.
-# map returns an iterator in Python 3.0 and a list in 2.x
-minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]]
-minverhex = 0
-# xrange is not present in Python 3.0 and range returns an iterator
-for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]]
-sys.exit(sys.hexversion < minverhex)"
- AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])
-
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_RUN_LOG(COMMAND)
-# -------------------
-# Run COMMAND, save the exit status in ac_status, and log it.
-# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
-AC_DEFUN([AM_RUN_LOG],
-[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
- ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
- (exit $ac_status); }])
-
-# Check to make sure that the build environment is sane. -*- Autoconf -*-
-
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_SANITY_CHECK
-# ---------------
-AC_DEFUN([AM_SANITY_CHECK],
-[AC_MSG_CHECKING([whether build environment is sane])
-# Reject unsafe characters in $srcdir or the absolute working directory
-# name. Accept space and tab only in the latter.
-am_lf='
-'
-case `pwd` in
- *[[\\\"\#\$\&\'\`$am_lf]]*)
- AC_MSG_ERROR([unsafe absolute working directory name]);;
-esac
-case $srcdir in
- *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
- AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
-esac
-
-# Do 'set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- am_has_slept=no
- for am_try in 1 2; do
- echo "timestamp, slept: $am_has_slept" > conftest.file
- set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
- if test "$[*]" = "X"; then
- # -L didn't work.
- set X `ls -t "$srcdir/configure" conftest.file`
- fi
- if test "$[*]" != "X $srcdir/configure conftest.file" \
- && test "$[*]" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
- alias in your environment])
- fi
- if test "$[2]" = conftest.file || test $am_try -eq 2; then
- break
- fi
- # Just in case.
- sleep 1
- am_has_slept=yes
- done
- test "$[2]" = conftest.file
- )
-then
- # Ok.
- :
-else
- AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-AC_MSG_RESULT([yes])
-# If we didn't sleep, we still need to ensure time stamps of config.status and
-# generated files are strictly newer.
-am_sleep_pid=
-if grep 'slept: no' conftest.file >/dev/null 2>&1; then
- ( sleep 1 ) &
- am_sleep_pid=$!
-fi
-AC_CONFIG_COMMANDS_PRE(
- [AC_MSG_CHECKING([that generated files are newer than configure])
- if test -n "$am_sleep_pid"; then
- # Hide warnings about reused PIDs.
- wait $am_sleep_pid 2>/dev/null
- fi
- AC_MSG_RESULT([done])])
-rm -f conftest.file
-])
-
-# Copyright (C) 2009-2014 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_SILENT_RULES([DEFAULT])
-# --------------------------
-# Enable less verbose build rules; with the default set to DEFAULT
-# ("yes" being less verbose, "no" or empty being verbose).
-AC_DEFUN([AM_SILENT_RULES],
-[AC_ARG_ENABLE([silent-rules], [dnl
-AS_HELP_STRING(
- [--enable-silent-rules],
- [less verbose build output (undo: "make V=1")])
-AS_HELP_STRING(
- [--disable-silent-rules],
- [verbose build output (undo: "make V=0")])dnl
-])
-case $enable_silent_rules in @%:@ (((
- yes) AM_DEFAULT_VERBOSITY=0;;
- no) AM_DEFAULT_VERBOSITY=1;;
- *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
-esac
-dnl
-dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
-dnl do not support nested variable expansions.
-dnl See automake bug#9928 and bug#10237.
-am_make=${MAKE-make}
-AC_CACHE_CHECK([whether $am_make supports nested variables],
- [am_cv_make_support_nested_variables],
- [if AS_ECHO([['TRUE=$(BAR$(V))
-BAR0=false
-BAR1=true
-V=1
-am__doit:
- @$(TRUE)
-.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
- am_cv_make_support_nested_variables=yes
-else
- am_cv_make_support_nested_variables=no
-fi])
-if test $am_cv_make_support_nested_variables = yes; then
- dnl Using '$V' instead of '$(V)' breaks IRIX make.
- AM_V='$(V)'
- AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-else
- AM_V=$AM_DEFAULT_VERBOSITY
- AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-fi
-AC_SUBST([AM_V])dnl
-AM_SUBST_NOTMAKE([AM_V])dnl
-AC_SUBST([AM_DEFAULT_V])dnl
-AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
-AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
-AM_BACKSLASH='\'
-AC_SUBST([AM_BACKSLASH])dnl
-_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
-])
-
-# Copyright (C) 2001-2014 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_INSTALL_STRIP
-# ---------------------
-# One issue with vendor 'install' (even GNU) is that you can't
-# specify the program used to strip binaries. This is especially
-# annoying in cross-compiling environments, where the build's strip
-# is unlikely to handle the host's binaries.
-# Fortunately install-sh will honor a STRIPPROG variable, so we
-# always use install-sh in "make install-strip", and initialize
-# STRIPPROG with the value of the STRIP variable (set by the user).
-AC_DEFUN([AM_PROG_INSTALL_STRIP],
-[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using 'strip' when the user
-# run "make install-strip". However 'strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the 'STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
-if test "$cross_compiling" != no; then
- AC_CHECK_TOOL([STRIP], [strip], :)
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-AC_SUBST([INSTALL_STRIP_PROGRAM])])
-
-# Copyright (C) 2006-2014 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_SUBST_NOTMAKE(VARIABLE)
-# ---------------------------
-# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
-# This macro is traced by Automake.
-AC_DEFUN([_AM_SUBST_NOTMAKE])
-
-# AM_SUBST_NOTMAKE(VARIABLE)
-# --------------------------
-# Public sister of _AM_SUBST_NOTMAKE.
-AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
-
-# Check how to create a tarball. -*- Autoconf -*-
-
-# Copyright (C) 2004-2014 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# _AM_PROG_TAR(FORMAT)
-# --------------------
-# Check how to create a tarball in format FORMAT.
-# FORMAT should be one of 'v7', 'ustar', or 'pax'.
-#
-# Substitute a variable $(am__tar) that is a command
-# writing to stdout a FORMAT-tarball containing the directory
-# $tardir.
-# tardir=directory && $(am__tar) > result.tar
-#
-# Substitute a variable $(am__untar) that extract such
-# a tarball read from stdin.
-# $(am__untar) < result.tar
-#
-AC_DEFUN([_AM_PROG_TAR],
-[# Always define AMTAR for backward compatibility. Yes, it's still used
-# in the wild :-( We should find a proper way to deprecate it ...
-AC_SUBST([AMTAR], ['$${TAR-tar}'])
-
-# We'll loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-
-m4_if([$1], [v7],
- [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
-
- [m4_case([$1],
- [ustar],
- [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
- # There is notably a 21 bits limit for the UID and the GID. In fact,
- # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
- # and bug#13588).
- am_max_uid=2097151 # 2^21 - 1
- am_max_gid=$am_max_uid
- # The $UID and $GID variables are not portable, so we need to resort
- # to the POSIX-mandated id(1) utility. Errors in the 'id' calls
- # below are definitely unexpected, so allow the users to see them
- # (that is, avoid stderr redirection).
- am_uid=`id -u || echo unknown`
- am_gid=`id -g || echo unknown`
- AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
- if test $am_uid -le $am_max_uid; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- _am_tools=none
- fi
- AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
- if test $am_gid -le $am_max_gid; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- _am_tools=none
- fi],
-
- [pax],
- [],
-
- [m4_fatal([Unknown tar format])])
-
- AC_MSG_CHECKING([how to create a $1 tar archive])
-
- # Go ahead even if we have the value already cached. We do so because we
- # need to set the values for the 'am__tar' and 'am__untar' variables.
- _am_tools=${am_cv_prog_tar_$1-$_am_tools}
-
- for _am_tool in $_am_tools; do
- case $_am_tool in
- gnutar)
- for _am_tar in tar gnutar gtar; do
- AM_RUN_LOG([$_am_tar --version]) && break
- done
- am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
- am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
- am__untar="$_am_tar -xf -"
- ;;
- plaintar)
- # Must skip GNU tar: if it does not support --format= it doesn't create
- # ustar tarball either.
- (tar --version) >/dev/null 2>&1 && continue
- am__tar='tar chf - "$$tardir"'
- am__tar_='tar chf - "$tardir"'
- am__untar='tar xf -'
- ;;
- pax)
- am__tar='pax -L -x $1 -w "$$tardir"'
- am__tar_='pax -L -x $1 -w "$tardir"'
- am__untar='pax -r'
- ;;
- cpio)
- am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
- am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
- am__untar='cpio -i -H $1 -d'
- ;;
- none)
- am__tar=false
- am__tar_=false
- am__untar=false
- ;;
- esac
-
- # If the value was cached, stop now. We just wanted to have am__tar
- # and am__untar set.
- test -n "${am_cv_prog_tar_$1}" && break
-
- # tar/untar a dummy directory, and stop if the command works.
- rm -rf conftest.dir
- mkdir conftest.dir
- echo GrepMe > conftest.dir/file
- AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
- rm -rf conftest.dir
- if test -s conftest.tar; then
- AM_RUN_LOG([$am__untar <conftest.tar])
- AM_RUN_LOG([cat conftest.dir/file])
- grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
- fi
- done
- rm -rf conftest.dir
-
- AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
- AC_MSG_RESULT([$am_cv_prog_tar_$1])])
-
-AC_SUBST([am__tar])
-AC_SUBST([am__untar])
-]) # _AM_PROG_TAR
-
-m4_include([m4/ac_python_module.m4])
-m4_include([m4/libtool.m4])
-m4_include([m4/ltoptions.m4])
-m4_include([m4/ltsugar.m4])
-m4_include([m4/ltversion.m4])
-m4_include([m4/lt~obsolete.m4])
diff --git a/compile b/compile
deleted file mode 100755
index a85b723..0000000
--- a/compile
+++ /dev/null
@@ -1,347 +0,0 @@
-#! /bin/sh
-# Wrapper for compilers which do not understand '-c -o'.
-
-scriptversion=2012-10-14.11; # UTC
-
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
-# Written by Tom Tromey <tromey at cygnus.com>.
-#
-# 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
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# This file is maintained in Automake, please report
-# bugs to <bug-automake at gnu.org> or send patches to
-# <automake-patches at gnu.org>.
-
-nl='
-'
-
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent tools from complaining about whitespace usage.
-IFS=" "" $nl"
-
-file_conv=
-
-# func_file_conv build_file lazy
-# Convert a $build file to $host form and store it in $file
-# Currently only supports Windows hosts. If the determined conversion
-# type is listed in (the comma separated) LAZY, no conversion will
-# take place.
-func_file_conv ()
-{
- file=$1
- case $file in
- / | /[!/]*) # absolute file, and not a UNC file
- if test -z "$file_conv"; then
- # lazily determine how to convert abs files
- case `uname -s` in
- MINGW*)
- file_conv=mingw
- ;;
- CYGWIN*)
- file_conv=cygwin
- ;;
- *)
- file_conv=wine
- ;;
- esac
- fi
- case $file_conv/,$2, in
- *,$file_conv,*)
- ;;
- mingw/*)
- file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
- ;;
- cygwin/*)
- file=`cygpath -m "$file" || echo "$file"`
- ;;
- wine/*)
- file=`winepath -w "$file" || echo "$file"`
- ;;
- esac
- ;;
- esac
-}
-
-# func_cl_dashL linkdir
-# Make cl look for libraries in LINKDIR
-func_cl_dashL ()
-{
- func_file_conv "$1"
- if test -z "$lib_path"; then
- lib_path=$file
- else
- lib_path="$lib_path;$file"
- fi
- linker_opts="$linker_opts -LIBPATH:$file"
-}
-
-# func_cl_dashl library
-# Do a library search-path lookup for cl
-func_cl_dashl ()
-{
- lib=$1
- found=no
- save_IFS=$IFS
- IFS=';'
- for dir in $lib_path $LIB
- do
- IFS=$save_IFS
- if $shared && test -f "$dir/$lib.dll.lib"; then
- found=yes
- lib=$dir/$lib.dll.lib
- break
- fi
- if test -f "$dir/$lib.lib"; then
- found=yes
- lib=$dir/$lib.lib
- break
- fi
- if test -f "$dir/lib$lib.a"; then
- found=yes
- lib=$dir/lib$lib.a
- break
- fi
- done
- IFS=$save_IFS
-
- if test "$found" != yes; then
- lib=$lib.lib
- fi
-}
-
-# func_cl_wrapper cl arg...
-# Adjust compile command to suit cl
-func_cl_wrapper ()
-{
- # Assume a capable shell
- lib_path=
- shared=:
- linker_opts=
- for arg
- do
- if test -n "$eat"; then
- eat=
- else
- case $1 in
- -o)
- # configure might choose to run compile as 'compile cc -o foo foo.c'.
- eat=1
- case $2 in
- *.o | *.[oO][bB][jJ])
- func_file_conv "$2"
- set x "$@" -Fo"$file"
- shift
- ;;
- *)
- func_file_conv "$2"
- set x "$@" -Fe"$file"
- shift
- ;;
- esac
- ;;
- -I)
- eat=1
- func_file_conv "$2" mingw
- set x "$@" -I"$file"
- shift
- ;;
- -I*)
- func_file_conv "${1#-I}" mingw
- set x "$@" -I"$file"
- shift
- ;;
- -l)
- eat=1
- func_cl_dashl "$2"
- set x "$@" "$lib"
- shift
- ;;
- -l*)
- func_cl_dashl "${1#-l}"
- set x "$@" "$lib"
- shift
- ;;
- -L)
- eat=1
- func_cl_dashL "$2"
- ;;
- -L*)
- func_cl_dashL "${1#-L}"
- ;;
- -static)
- shared=false
- ;;
- -Wl,*)
- arg=${1#-Wl,}
- save_ifs="$IFS"; IFS=','
- for flag in $arg; do
- IFS="$save_ifs"
- linker_opts="$linker_opts $flag"
- done
- IFS="$save_ifs"
- ;;
- -Xlinker)
- eat=1
- linker_opts="$linker_opts $2"
- ;;
- -*)
- set x "$@" "$1"
- shift
- ;;
- *.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
- func_file_conv "$1"
- set x "$@" -Tp"$file"
- shift
- ;;
- *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
- func_file_conv "$1" mingw
- set x "$@" "$file"
- shift
- ;;
- *)
- set x "$@" "$1"
- shift
- ;;
- esac
- fi
- shift
- done
- if test -n "$linker_opts"; then
- linker_opts="-link$linker_opts"
- fi
- exec "$@" $linker_opts
- exit 1
-}
-
-eat=
-
-case $1 in
- '')
- echo "$0: No command. Try '$0 --help' for more information." 1>&2
- exit 1;
- ;;
- -h | --h*)
- cat <<\EOF
-Usage: compile [--help] [--version] PROGRAM [ARGS]
-
-Wrapper for compilers which do not understand '-c -o'.
-Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
-arguments, and rename the output as expected.
-
-If you are trying to build a whole package this is not the
-right script to run: please start by reading the file 'INSTALL'.
-
-Report bugs to <bug-automake at gnu.org>.
-EOF
- exit $?
- ;;
- -v | --v*)
- echo "compile $scriptversion"
- exit $?
- ;;
- cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
- func_cl_wrapper "$@" # Doesn't return...
- ;;
-esac
-
-ofile=
-cfile=
-
-for arg
-do
- if test -n "$eat"; then
- eat=
- else
- case $1 in
- -o)
- # configure might choose to run compile as 'compile cc -o foo foo.c'.
- # So we strip '-o arg' only if arg is an object.
- eat=1
- case $2 in
- *.o | *.obj)
- ofile=$2
- ;;
- *)
- set x "$@" -o "$2"
- shift
- ;;
- esac
- ;;
- *.c)
- cfile=$1
- set x "$@" "$1"
- shift
- ;;
- *)
- set x "$@" "$1"
- shift
- ;;
- esac
- fi
- shift
-done
-
-if test -z "$ofile" || test -z "$cfile"; then
- # If no '-o' option was seen then we might have been invoked from a
- # pattern rule where we don't need one. That is ok -- this is a
- # normal compilation that the losing compiler can handle. If no
- # '.c' file was seen then we are probably linking. That is also
- # ok.
- exec "$@"
-fi
-
-# Name of file we expect compiler to create.
-cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
-
-# Create the lock directory.
-# Note: use '[/\\:.-]' here to ensure that we don't use the same name
-# that we are using for the .o file. Also, base the name on the expected
-# object file name, since that is what matters with a parallel build.
-lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
-while true; do
- if mkdir "$lockdir" >/dev/null 2>&1; then
- break
- fi
- sleep 1
-done
-# FIXME: race condition here if user kills between mkdir and trap.
-trap "rmdir '$lockdir'; exit 1" 1 2 15
-
-# Run the compile.
-"$@"
-ret=$?
-
-if test -f "$cofile"; then
- test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
-elif test -f "${cofile}bj"; then
- test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
-fi
-
-rmdir "$lockdir"
-exit $ret
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
-# time-stamp-end: "; # UTC"
-# End:
diff --git a/config.guess b/config.guess
deleted file mode 100755
index dbfb978..0000000
--- a/config.guess
+++ /dev/null
@@ -1,1421 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-# Copyright 1992-2015 Free Software Foundation, Inc.
-
-timestamp='2015-01-01'
-
-# 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 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# 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; maintained since 2000 by Ben Elliston.
-#
-# 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
-#
-# Please send patches to <config-patches at gnu.org>.
-
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION]
-
-Output the configuration name of the system \`$me' is run on.
-
-Operation modes:
- -h, --help print this help, then exit
- -t, --time-stamp print date of last modification, then exit
- -v, --version print version number, then exit
-
-Report bugs and patches to <config-patches at gnu.org>."
-
-version="\
-GNU config.guess ($timestamp)
-
-Originally written by Per Bothner.
-Copyright 1992-2015 Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions. There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
- case $1 in
- --time-stamp | --time* | -t )
- echo "$timestamp" ; exit ;;
- --version | -v )
- echo "$version" ; exit ;;
- --help | --h* | -h )
- echo "$usage"; exit ;;
- -- ) # Stop option processing
- shift; break ;;
- - ) # Use stdin as input.
- break ;;
- -* )
- echo "$me: invalid option $1$help" >&2
- exit 1 ;;
- * )
- break ;;
- esac
-done
-
-if test $# != 0; then
- echo "$me: too many arguments$help" >&2
- exit 1
-fi
-
-trap 'exit 1' 1 2 15
-
-# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
-# compiler to aid in system detection is discouraged as it requires
-# temporary files to be created and, as you can see below, it is a
-# headache to deal with in a portable fashion.
-
-# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
-# use `HOST_CC' if defined, but it is deprecated.
-
-# Portable tmp directory creation inspired by the Autoconf team.
-
-set_cc_for_build='
-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
-: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
-dummy=$tmp/dummy ;
-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
-case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,) echo "int x;" > $dummy.c ;
- for c in cc gcc c89 c99 ; do
- if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
- CC_FOR_BUILD="$c"; break ;
- fi ;
- done ;
- if test x"$CC_FOR_BUILD" = x ; then
- CC_FOR_BUILD=no_compiler_found ;
- fi
- ;;
- ,,*) CC_FOR_BUILD=$CC ;;
- ,*,*) CC_FOR_BUILD=$HOST_CC ;;
-esac ; set_cc_for_build= ;'
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi at noc.rutgers.edu 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
- PATH=$PATH:/.attbin ; export PATH
-fi
-
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=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.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
- *:NetBSD:*:*)
- # NetBSD (nbsd) targets should (where applicable) match one or
- # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
- # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
- # switched to ELF, *-*-netbsd* would select the old
- # object file format. This provides both forward
- # compatibility and a consistent mechanism for selecting the
- # object file format.
- #
- # Note: NetBSD doesn't particularly care about the vendor
- # portion of the name. We always set it to "unknown".
- sysctl="sysctl -n hw.machine_arch"
- UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
- /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
- case "${UNAME_MACHINE_ARCH}" in
- armeb) machine=armeb-unknown ;;
- arm*) machine=arm-unknown ;;
- sh3el) machine=shl-unknown ;;
- sh3eb) machine=sh-unknown ;;
- sh5el) machine=sh5le-unknown ;;
- *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
- esac
- # The Operating System including object format, if it has switched
- # to ELF recently, or will in the future.
- case "${UNAME_MACHINE_ARCH}" in
- arm*|i386|m68k|ns32k|sh3*|sparc|vax)
- eval $set_cc_for_build
- if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep -q __ELF__
- then
- # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
- # Return netbsd for either. FIX?
- os=netbsd
- else
- os=netbsdelf
- fi
- ;;
- *)
- os=netbsd
- ;;
- esac
- # The OS release
- # Debian GNU/NetBSD machines have a different userland, and
- # thus, need a distinct triplet. However, they do not need
- # kernel version information, so it can be replaced with a
- # suitable tag, in the style of linux-gnu.
- case "${UNAME_VERSION}" in
- Debian*)
- release='-gnu'
- ;;
- *)
- release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
- ;;
- esac
- # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
- # contains redundant information, the shorter form:
- # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "${machine}-${os}${release}"
- exit ;;
- *:Bitrig:*:*)
- UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
- exit ;;
- *:OpenBSD:*:*)
- UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
- exit ;;
- *:ekkoBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
- exit ;;
- *:SolidBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
- exit ;;
- macppc:MirBSD:*:*)
- echo powerpc-unknown-mirbsd${UNAME_RELEASE}
- exit ;;
- *:MirBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
- exit ;;
- alpha:OSF1:*:*)
- case $UNAME_RELEASE in
- *4.0)
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
- ;;
- *5.*)
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
- ;;
- esac
- # According to Compaq, /usr/sbin/psrinfo has been available on
- # OSF/1 and Tru64 systems produced since 1995. I hope that
- # covers most systems running today. This code pipes the CPU
- # types through head -n 1, so we only detect the type of CPU 0.
- ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
- case "$ALPHA_CPU_TYPE" in
- "EV4 (21064)")
- UNAME_MACHINE="alpha" ;;
- "EV4.5 (21064)")
- UNAME_MACHINE="alpha" ;;
- "LCA4 (21066/21068)")
- UNAME_MACHINE="alpha" ;;
- "EV5 (21164)")
- UNAME_MACHINE="alphaev5" ;;
- "EV5.6 (21164A)")
- UNAME_MACHINE="alphaev56" ;;
- "EV5.6 (21164PC)")
- UNAME_MACHINE="alphapca56" ;;
- "EV5.7 (21164PC)")
- UNAME_MACHINE="alphapca57" ;;
- "EV6 (21264)")
- UNAME_MACHINE="alphaev6" ;;
- "EV6.7 (21264A)")
- UNAME_MACHINE="alphaev67" ;;
- "EV6.8CB (21264C)")
- UNAME_MACHINE="alphaev68" ;;
- "EV6.8AL (21264B)")
- UNAME_MACHINE="alphaev68" ;;
- "EV6.8CX (21264D)")
- UNAME_MACHINE="alphaev68" ;;
- "EV6.9A (21264/EV69A)")
- UNAME_MACHINE="alphaev69" ;;
- "EV7 (21364)")
- UNAME_MACHINE="alphaev7" ;;
- "EV7.9 (21364A)")
- UNAME_MACHINE="alphaev79" ;;
- esac
- # A Pn.n version is a patched version.
- # A Vn.n version is a released version.
- # A Tn.n version is a released field test version.
- # A Xn.n version is an unreleased experimental baselevel.
- # 1.2 uses "1.2" for uname -r.
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
- exitcode=$?
- trap '' 0
- exit $exitcode ;;
- Alpha\ *:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # Should we change UNAME_MACHINE based on the output of uname instead
- # of the specific Alpha model?
- echo alpha-pc-interix
- exit ;;
- 21064:Windows_NT:50:3)
- echo alpha-dec-winnt3.5
- exit ;;
- Amiga*:UNIX_System_V:4.0:*)
- echo m68k-unknown-sysv4
- exit ;;
- *:[Aa]miga[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-amigaos
- exit ;;
- *:[Mm]orph[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-morphos
- exit ;;
- *:OS/390:*:*)
- echo i370-ibm-openedition
- exit ;;
- *:z/VM:*:*)
- echo s390-ibm-zvmoe
- exit ;;
- *:OS400:*:*)
- echo powerpc-ibm-os400
- exit ;;
- arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix${UNAME_RELEASE}
- exit ;;
- arm*:riscos:*:*|arm*:RISCOS:*:*)
- echo arm-unknown-riscos
- exit ;;
- SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
- echo hppa1.1-hitachi-hiuxmpp
- exit ;;
- Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
- # akee at wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
- echo pyramid-pyramid-sysv3
- else
- echo pyramid-pyramid-bsd
- fi
- exit ;;
- NILE*:*:*:dcosx)
- echo pyramid-pyramid-svr4
- exit ;;
- DRS?6000:unix:4.0:6*)
- echo sparc-icl-nx6
- exit ;;
- DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
- case `/usr/bin/uname -p` in
- sparc) echo sparc-icl-nx7; exit ;;
- esac ;;
- s390x:SunOS:*:*)
- echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- sun4H:SunOS:5.*:*)
- echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
- echo i386-pc-auroraux${UNAME_RELEASE}
- exit ;;
- i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
- eval $set_cc_for_build
- SUN_ARCH="i386"
- # If there is a compiler, see if it is configured for 64-bit objects.
- # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
- # This test works for both compilers.
- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
- if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
- then
- SUN_ARCH="x86_64"
- fi
- fi
- echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- sun4*:SunOS:6*:*)
- # According to config.sub, this is the proper way to canonicalize
- # SunOS6. Hard to guess exactly what SunOS6 will be like, but
- # it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- sun4*:SunOS:*:*)
- case "`/usr/bin/arch -k`" in
- Series*|S4*)
- UNAME_RELEASE=`uname -v`
- ;;
- esac
- # Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
- exit ;;
- sun3*:SunOS:*:*)
- echo m68k-sun-sunos${UNAME_RELEASE}
- exit ;;
- sun*:*:4.2BSD:*)
- UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
- test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
- case "`/bin/arch`" in
- sun3)
- echo m68k-sun-sunos${UNAME_RELEASE}
- ;;
- sun4)
- echo sparc-sun-sunos${UNAME_RELEASE}
- ;;
- esac
- exit ;;
- aushp:SunOS:*:*)
- echo sparc-auspex-sunos${UNAME_RELEASE}
- exit ;;
- # The situation for MiNT is a little confusing. The machine name
- # can be virtually everything (everything which is not
- # "atarist" or "atariste" at least should have a processor
- # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
- # to the lowercase version "mint" (or "freemint"). Finally
- # the system name "TOS" denotes a system which is actually not
- # MiNT. But MiNT is downward compatible to TOS, so this should
- # be no problem.
- atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
- atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
- *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
- milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint${UNAME_RELEASE}
- exit ;;
- hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint${UNAME_RELEASE}
- exit ;;
- *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint${UNAME_RELEASE}
- exit ;;
- m68k:machten:*:*)
- echo m68k-apple-machten${UNAME_RELEASE}
- exit ;;
- powerpc:machten:*:*)
- echo powerpc-apple-machten${UNAME_RELEASE}
- exit ;;
- RISC*:Mach:*:*)
- echo mips-dec-mach_bsd4.3
- exit ;;
- RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix${UNAME_RELEASE}
- exit ;;
- VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix${UNAME_RELEASE}
- exit ;;
- 2020:CLIX:*:* | 2430:CLIX:*:*)
- echo clipper-intergraph-clix${UNAME_RELEASE}
- exit ;;
- mips:*:*:UMIPS | mips:*:*:RISCos)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
-#ifdef __cplusplus
-#include <stdio.h> /* for printf() prototype */
- int main (int argc, char *argv[]) {
-#else
- int main (argc, argv) int argc; char *argv[]; {
-#endif
- #if defined (host_mips) && defined (MIPSEB)
- #if defined (SYSTYPE_SYSV)
- printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_SVR4)
- printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
- printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
- #endif
- #endif
- exit (-1);
- }
-EOF
- $CC_FOR_BUILD -o $dummy $dummy.c &&
- dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
- SYSTEM_NAME=`$dummy $dummyarg` &&
- { echo "$SYSTEM_NAME"; exit; }
- echo mips-mips-riscos${UNAME_RELEASE}
- exit ;;
- Motorola:PowerMAX_OS:*:*)
- echo powerpc-motorola-powermax
- exit ;;
- Motorola:*:4.3:PL8-*)
- echo powerpc-harris-powermax
- exit ;;
- Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
- echo powerpc-harris-powermax
- exit ;;
- Night_Hawk:Power_UNIX:*:*)
- echo powerpc-harris-powerunix
- exit ;;
- m88k:CX/UX:7*:*)
- echo m88k-harris-cxux7
- exit ;;
- m88k:*:4*:R4*)
- echo m88k-motorola-sysv4
- exit ;;
- m88k:*:3*:R3*)
- echo m88k-motorola-sysv3
- exit ;;
- AViiON:dgux:*:*)
- # DG/UX returns AViiON for all architectures
- UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
- then
- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
- [ ${TARGET_BINARY_INTERFACE}x = x ]
- then
- echo m88k-dg-dgux${UNAME_RELEASE}
- else
- echo m88k-dg-dguxbcs${UNAME_RELEASE}
- fi
- else
- echo i586-dg-dgux${UNAME_RELEASE}
- fi
- exit ;;
- M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- echo m88k-dolphin-sysv3
- exit ;;
- M88*:*:R3*:*)
- # Delta 88k system running SVR3
- echo m88k-motorola-sysv3
- exit ;;
- XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
- echo m88k-tektronix-sysv3
- exit ;;
- Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
- echo m68k-tektronix-bsd
- exit ;;
- *:IRIX*:*:*)
- echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
- exit ;;
- ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
- i*86:AIX:*:*)
- echo i386-ibm-aix
- exit ;;
- ia64:AIX:*:*)
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
- else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
- fi
- echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
- exit ;;
- *:AIX:2:3)
- if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <sys/systemcfg.h>
-
- main()
- {
- if (!__power_pc())
- exit(1);
- puts("powerpc-ibm-aix3.2.5");
- exit(0);
- }
-EOF
- if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
- then
- echo "$SYSTEM_NAME"
- else
- echo rs6000-ibm-aix3.2.5
- fi
- elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
- echo rs6000-ibm-aix3.2.4
- else
- echo rs6000-ibm-aix3.2
- fi
- exit ;;
- *:AIX:*:[4567])
- IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
- if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
- IBM_ARCH=rs6000
- else
- IBM_ARCH=powerpc
- fi
- if [ -x /usr/bin/lslpp ] ; then
- IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
- awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
- else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
- fi
- echo ${IBM_ARCH}-ibm-aix${IBM_REV}
- exit ;;
- *:AIX:*:*)
- echo rs6000-ibm-aix
- exit ;;
- ibmrt:4.4BSD:*|romp-ibm:BSD:*)
- echo romp-ibm-bsd4.4
- exit ;;
- ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
- echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
- exit ;; # report: romp-ibm BSD 4.3
- *:BOSX:*:*)
- echo rs6000-bull-bosx
- exit ;;
- DPX/2?00:B.O.S.:*:*)
- echo m68k-bull-sysv3
- exit ;;
- 9000/[34]??:4.3bsd:1.*:*)
- echo m68k-hp-bsd
- exit ;;
- hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
- echo m68k-hp-bsd4.4
- exit ;;
- 9000/[34678]??:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- case "${UNAME_MACHINE}" in
- 9000/31? ) HP_ARCH=m68000 ;;
- 9000/[34]?? ) HP_ARCH=m68k ;;
- 9000/[678][0-9][0-9])
- if [ -x /usr/bin/getconf ]; then
- sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
- case "${sc_cpu_version}" in
- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
- 532) # CPU_PA_RISC2_0
- case "${sc_kernel_bits}" in
- 32) HP_ARCH="hppa2.0n" ;;
- 64) HP_ARCH="hppa2.0w" ;;
- '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
- esac ;;
- esac
- fi
- if [ "${HP_ARCH}" = "" ]; then
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
-
- #define _HPUX_SOURCE
- #include <stdlib.h>
- #include <unistd.h>
-
- int main ()
- {
- #if defined(_SC_KERNEL_BITS)
- long bits = sysconf(_SC_KERNEL_BITS);
- #endif
- long cpu = sysconf (_SC_CPU_VERSION);
-
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
- case CPU_PA_RISC2_0:
- #if defined(_SC_KERNEL_BITS)
- switch (bits)
- {
- case 64: puts ("hppa2.0w"); break;
- case 32: puts ("hppa2.0n"); break;
- default: puts ("hppa2.0"); break;
- } break;
- #else /* !defined(_SC_KERNEL_BITS) */
- puts ("hppa2.0"); break;
- #endif
- default: puts ("hppa1.0"); break;
- }
- exit (0);
- }
-EOF
- (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
- test -z "$HP_ARCH" && HP_ARCH=hppa
- fi ;;
- esac
- if [ ${HP_ARCH} = "hppa2.0w" ]
- then
- eval $set_cc_for_build
-
- # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
- # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
- # generating 64-bit code. GNU and HP use different nomenclature:
- #
- # $ CC_FOR_BUILD=cc ./config.guess
- # => hppa2.0w-hp-hpux11.23
- # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
- # => hppa64-hp-hpux11.23
-
- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
- grep -q __LP64__
- then
- HP_ARCH="hppa2.0w"
- else
- HP_ARCH="hppa64"
- fi
- fi
- echo ${HP_ARCH}-hp-hpux${HPUX_REV}
- exit ;;
- ia64:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- echo ia64-hp-hpux${HPUX_REV}
- exit ;;
- 3050*:HI-UX:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <unistd.h>
- int
- main ()
- {
- long cpu = sysconf (_SC_CPU_VERSION);
- /* The order matters, because CPU_IS_HP_MC68K erroneously returns
- true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
- results, however. */
- if (CPU_IS_PA_RISC (cpu))
- {
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
- default: puts ("hppa-hitachi-hiuxwe2"); break;
- }
- }
- else if (CPU_IS_HP_MC68K (cpu))
- puts ("m68k-hitachi-hiuxwe2");
- else puts ("unknown-hitachi-hiuxwe2");
- exit (0);
- }
-EOF
- $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
- { echo "$SYSTEM_NAME"; exit; }
- echo unknown-hitachi-hiuxwe2
- exit ;;
- 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
- echo hppa1.1-hp-bsd
- exit ;;
- 9000/8??:4.3bsd:*:*)
- echo hppa1.0-hp-bsd
- exit ;;
- *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
- echo hppa1.0-hp-mpeix
- exit ;;
- hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
- echo hppa1.1-hp-osf
- exit ;;
- hp8??:OSF1:*:*)
- echo hppa1.0-hp-osf
- exit ;;
- i*86:OSF1:*:*)
- if [ -x /usr/sbin/sysversion ] ; then
- echo ${UNAME_MACHINE}-unknown-osf1mk
- else
- echo ${UNAME_MACHINE}-unknown-osf1
- fi
- exit ;;
- parisc*:Lites*:*:*)
- echo hppa1.1-hp-lites
- exit ;;
- C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
- echo c1-convex-bsd
- exit ;;
- C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit ;;
- C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- echo c34-convex-bsd
- exit ;;
- C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- echo c38-convex-bsd
- exit ;;
- C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
- echo c4-convex-bsd
- exit ;;
- CRAY*Y-MP:*:*:*)
- echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*[A-Z]90:*:*:*)
- echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
- | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
- -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
- -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*TS:*:*:*)
- echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*T3E:*:*:*)
- echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*SV1:*:*:*)
- echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- *:UNICOS/mp:*:*)
- echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
- FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
- 5000:UNIX_System_V:4.*:*)
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
- i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
- echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
- exit ;;
- sparc*:BSD/OS:*:*)
- echo sparc-unknown-bsdi${UNAME_RELEASE}
- exit ;;
- *:BSD/OS:*:*)
- echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
- exit ;;
- *:FreeBSD:*:*)
- UNAME_PROCESSOR=`/usr/bin/uname -p`
- case ${UNAME_PROCESSOR} in
- amd64)
- echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
- *)
- echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
- esac
- exit ;;
- i*:CYGWIN*:*)
- echo ${UNAME_MACHINE}-pc-cygwin
- exit ;;
- *:MINGW64*:*)
- echo ${UNAME_MACHINE}-pc-mingw64
- exit ;;
- *:MINGW*:*)
- echo ${UNAME_MACHINE}-pc-mingw32
- exit ;;
- *:MSYS*:*)
- echo ${UNAME_MACHINE}-pc-msys
- exit ;;
- i*:windows32*:*)
- # uname -m includes "-pc" on this system.
- echo ${UNAME_MACHINE}-mingw32
- exit ;;
- i*:PW*:*)
- echo ${UNAME_MACHINE}-pc-pw32
- exit ;;
- *:Interix*:*)
- case ${UNAME_MACHINE} in
- x86)
- echo i586-pc-interix${UNAME_RELEASE}
- exit ;;
- authenticamd | genuineintel | EM64T)
- echo x86_64-unknown-interix${UNAME_RELEASE}
- exit ;;
- IA64)
- echo ia64-unknown-interix${UNAME_RELEASE}
- exit ;;
- esac ;;
- [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
- echo i${UNAME_MACHINE}-pc-mks
- exit ;;
- 8664:Windows_NT:*)
- echo x86_64-pc-mks
- exit ;;
- i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
- # UNAME_MACHINE based on the output of uname instead of i386?
- echo i586-pc-interix
- exit ;;
- i*:UWIN*:*)
- echo ${UNAME_MACHINE}-pc-uwin
- exit ;;
- amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
- echo x86_64-unknown-cygwin
- exit ;;
- p*:CYGWIN*:*)
- echo powerpcle-unknown-cygwin
- exit ;;
- prep*:SunOS:5.*:*)
- echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- *:GNU:*:*)
- # the GNU system
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
- exit ;;
- *:GNU/*:*:*)
- # 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/[-(].*//'`-${LIBC}
- exit ;;
- i*86:Minix:*:*)
- echo ${UNAME_MACHINE}-pc-minix
- exit ;;
- aarch64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- aarch64_be:Linux:*:*)
- UNAME_MACHINE=aarch64_be
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- alpha:Linux:*:*)
- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
- EV5) UNAME_MACHINE=alphaev5 ;;
- EV56) UNAME_MACHINE=alphaev56 ;;
- PCA56) UNAME_MACHINE=alphapca56 ;;
- PCA57) UNAME_MACHINE=alphapca56 ;;
- EV6) UNAME_MACHINE=alphaev6 ;;
- EV67) UNAME_MACHINE=alphaev67 ;;
- EV68*) UNAME_MACHINE=alphaev68 ;;
- esac
- objdump --private-headers /bin/sh | grep -q ld.so.1
- if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- arc:Linux:*:* | arceb:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- arm*:Linux:*:*)
- eval $set_cc_for_build
- if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep -q __ARM_EABI__
- then
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- else
- if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep -q __ARM_PCS_VFP
- then
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
- else
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
- fi
- fi
- exit ;;
- avr32*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- cris:Linux:*:*)
- echo ${UNAME_MACHINE}-axis-linux-${LIBC}
- exit ;;
- crisv32:Linux:*:*)
- echo ${UNAME_MACHINE}-axis-linux-${LIBC}
- exit ;;
- frv:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- hexagon:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- i*86:Linux:*:*)
- echo ${UNAME_MACHINE}-pc-linux-${LIBC}
- exit ;;
- ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- m32r*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- m68*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- mips:Linux:*:* | mips64:Linux:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #undef CPU
- #undef ${UNAME_MACHINE}
- #undef ${UNAME_MACHINE}el
- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=${UNAME_MACHINE}el
- #else
- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=${UNAME_MACHINE}
- #else
- CPU=
- #endif
- #endif
-EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
- ;;
- openrisc*:Linux:*:*)
- echo or1k-unknown-linux-${LIBC}
- exit ;;
- or32:Linux:*:* | or1k*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- padre:Linux:*:*)
- echo sparc-unknown-linux-${LIBC}
- exit ;;
- parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-${LIBC}
- exit ;;
- parisc:Linux:*:* | hppa:Linux:*:*)
- # Look for CPU level
- case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
- PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
- *) echo hppa-unknown-linux-${LIBC} ;;
- esac
- exit ;;
- ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-${LIBC}
- exit ;;
- ppc:Linux:*:*)
- echo powerpc-unknown-linux-${LIBC}
- exit ;;
- ppc64le:Linux:*:*)
- echo powerpc64le-unknown-linux-${LIBC}
- exit ;;
- ppcle:Linux:*:*)
- echo powerpcle-unknown-linux-${LIBC}
- exit ;;
- s390:Linux:*:* | s390x:Linux:*:*)
- echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
- exit ;;
- sh64*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- sh*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- sparc:Linux:*:* | sparc64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- tile*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- vax:Linux:*:*)
- echo ${UNAME_MACHINE}-dec-linux-${LIBC}
- exit ;;
- x86_64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- xtensa*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- i*86:DYNIX/ptx:4*:*)
- # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
- # earlier versions are messed up and put the nodename in both
- # sysname and nodename.
- echo i386-sequent-sysv4
- exit ;;
- i*86:UNIX_SV:4.2MP:2.*)
- # Unixware is an offshoot of SVR4, but it has its own version
- # number series starting with 2...
- # I am not positive that other SVR4 systems won't match this,
- # I just have to hope. -- rms.
- # Use sysv4.2uw... so that sysv4* matches it.
- echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
- exit ;;
- i*86:OS/2:*:*)
- # If we were able to find `uname', then EMX Unix compatibility
- # is probably installed.
- echo ${UNAME_MACHINE}-pc-os2-emx
- exit ;;
- i*86:XTS-300:*:STOP)
- echo ${UNAME_MACHINE}-unknown-stop
- exit ;;
- i*86:atheos:*:*)
- echo ${UNAME_MACHINE}-unknown-atheos
- exit ;;
- i*86:syllable:*:*)
- echo ${UNAME_MACHINE}-pc-syllable
- exit ;;
- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
- echo i386-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- i*86:*DOS:*:*)
- echo ${UNAME_MACHINE}-pc-msdosdjgpp
- exit ;;
- i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
- UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
- if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
- echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
- else
- echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
- fi
- exit ;;
- i*86:*:5:[678]*)
- # UnixWare 7.x, OpenUNIX and OpenServer 6.
- case `/bin/uname -X | grep "^Machine"` in
- *486*) UNAME_MACHINE=i486 ;;
- *Pentium) UNAME_MACHINE=i586 ;;
- *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
- esac
- echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
- exit ;;
- i*86:*:3.2:*)
- if test -f /usr/options/cb.name; then
- UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
- echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
- elif /bin/uname -X 2>/dev/null >/dev/null ; then
- UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
- (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
- (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
- && UNAME_MACHINE=i586
- (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
- && UNAME_MACHINE=i686
- (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
- && UNAME_MACHINE=i686
- echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
- else
- echo ${UNAME_MACHINE}-pc-sysv32
- fi
- exit ;;
- pc:*:*:*)
- # Left here for compatibility:
- # uname -m prints for DJGPP always 'pc', but it prints nothing about
- # the processor, so we play safe by assuming i586.
- # Note: whatever this is, it MUST be the same as what config.sub
- # prints for the "djgpp" host, or else GDB configury will decide that
- # this is a cross-build.
- echo i586-pc-msdosdjgpp
- exit ;;
- Intel:Mach:3*:*)
- echo i386-pc-mach3
- exit ;;
- paragon:*:*:*)
- echo i860-intel-osf1
- exit ;;
- i860:*:4.*:*) # i860-SVR4
- if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
- else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
- fi
- exit ;;
- mini*:CTIX:SYS*5:*)
- # "miniframe"
- echo m68010-convergent-sysv
- exit ;;
- mc68k:UNIX:SYSTEM5:3.51m)
- echo m68k-convergent-sysv
- exit ;;
- M680?0:D-NIX:5.3:*)
- echo m68k-diab-dnix
- exit ;;
- M68*:*:R3V[5678]*:*)
- test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
- 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
- OS_REL=''
- test -r /etc/.relid \
- && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
- /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
- 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4; exit; } ;;
- NCR*:*:4.2:* | MPRAS*:*:4.2:*)
- OS_REL='.3'
- test -r /etc/.relid \
- && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
- /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
- /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
- m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
- echo m68k-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- mc68030:UNIX_System_V:4.*:*)
- echo m68k-atari-sysv4
- exit ;;
- TSUNAMI:LynxOS:2.*:*)
- echo sparc-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- rs6000:LynxOS:2.*:*)
- echo rs6000-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
- echo powerpc-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- SM[BE]S:UNIX_SV:*:*)
- echo mips-dde-sysv${UNAME_RELEASE}
- exit ;;
- RM*:ReliantUNIX-*:*:*)
- echo mips-sni-sysv4
- exit ;;
- RM*:SINIX-*:*:*)
- echo mips-sni-sysv4
- exit ;;
- *:SINIX-*:*:*)
- if uname -p 2>/dev/null >/dev/null ; then
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
- echo ${UNAME_MACHINE}-sni-sysv4
- else
- echo ns32k-sni-sysv
- fi
- exit ;;
- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
- # says <Richard.M.Bartel at ccMail.Census.GOV>
- echo i586-unisys-sysv4
- exit ;;
- *:UNIX_System_V:4*:FTX*)
- # From Gerald Hewes <hewes at openmarket.com>.
- # How about differentiating between stratus architectures? -djm
- echo hppa1.1-stratus-sysv4
- exit ;;
- *:*:*:FTX*)
- # From seanf at swdc.stratus.com.
- echo i860-stratus-sysv4
- exit ;;
- i*86:VOS:*:*)
- # From Paul.Green at stratus.com.
- echo ${UNAME_MACHINE}-stratus-vos
- exit ;;
- *:VOS:*:*)
- # From Paul.Green at stratus.com.
- echo hppa1.1-stratus-vos
- exit ;;
- mc68*:A/UX:*:*)
- echo m68k-apple-aux${UNAME_RELEASE}
- exit ;;
- news*:NEWS-OS:6*:*)
- echo mips-sony-newsos6
- exit ;;
- R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
- if [ -d /usr/nec ]; then
- echo mips-nec-sysv${UNAME_RELEASE}
- else
- echo mips-unknown-sysv${UNAME_RELEASE}
- fi
- exit ;;
- BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
- echo powerpc-be-beos
- exit ;;
- BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
- echo powerpc-apple-beos
- exit ;;
- BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
- echo i586-pc-beos
- exit ;;
- BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
- echo i586-pc-haiku
- exit ;;
- x86_64:Haiku:*:*)
- echo x86_64-unknown-haiku
- exit ;;
- SX-4:SUPER-UX:*:*)
- echo sx4-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-5:SUPER-UX:*:*)
- echo sx5-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-6:SUPER-UX:*:*)
- echo sx6-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-7:SUPER-UX:*:*)
- echo sx7-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-8:SUPER-UX:*:*)
- echo sx8-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-8R:SUPER-UX:*:*)
- echo sx8r-nec-superux${UNAME_RELEASE}
- exit ;;
- Power*:Rhapsody:*:*)
- echo powerpc-apple-rhapsody${UNAME_RELEASE}
- exit ;;
- *:Rhapsody:*:*)
- echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
- exit ;;
- *:Darwin:*:*)
- UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
- 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 (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
- then
- case $UNAME_PROCESSOR in
- i386) UNAME_PROCESSOR=x86_64 ;;
- powerpc) UNAME_PROCESSOR=powerpc64 ;;
- 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}
- exit ;;
- *:procnto*:*:* | *:QNX:[0123456789]*:*)
- UNAME_PROCESSOR=`uname -p`
- if test "$UNAME_PROCESSOR" = "x86"; then
- UNAME_PROCESSOR=i386
- UNAME_MACHINE=pc
- fi
- echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
- exit ;;
- *:QNX:*:4*)
- echo i386-pc-qnx
- exit ;;
- NEO-?:NONSTOP_KERNEL:*:*)
- echo neo-tandem-nsk${UNAME_RELEASE}
- exit ;;
- NSE-*:NONSTOP_KERNEL:*:*)
- echo nse-tandem-nsk${UNAME_RELEASE}
- exit ;;
- NSR-?:NONSTOP_KERNEL:*:*)
- echo nsr-tandem-nsk${UNAME_RELEASE}
- exit ;;
- *:NonStop-UX:*:*)
- echo mips-compaq-nonstopux
- exit ;;
- BS2000:POSIX*:*:*)
- echo bs2000-siemens-sysv
- exit ;;
- DS/*:UNIX_System_V:*:*)
- echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
- exit ;;
- *:Plan9:*:*)
- # "uname -m" is not consistent, so use $cputype instead. 386
- # is converted to i386 for consistency with other x86
- # operating systems.
- if test "$cputype" = "386"; then
- UNAME_MACHINE=i386
- else
- UNAME_MACHINE="$cputype"
- fi
- echo ${UNAME_MACHINE}-unknown-plan9
- exit ;;
- *:TOPS-10:*:*)
- echo pdp10-unknown-tops10
- exit ;;
- *:TENEX:*:*)
- echo pdp10-unknown-tenex
- exit ;;
- KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
- echo pdp10-dec-tops20
- exit ;;
- XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
- echo pdp10-xkl-tops20
- exit ;;
- *:TOPS-20:*:*)
- echo pdp10-unknown-tops20
- exit ;;
- *:ITS:*:*)
- echo pdp10-unknown-its
- exit ;;
- SEI:*:*:SEIUX)
- echo mips-sei-seiux${UNAME_RELEASE}
- exit ;;
- *:DragonFly:*:*)
- echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
- exit ;;
- *:*VMS:*:*)
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
- case "${UNAME_MACHINE}" in
- A*) echo alpha-dec-vms ; exit ;;
- I*) echo ia64-dec-vms ; exit ;;
- V*) echo vax-dec-vms ; exit ;;
- esac ;;
- *:XENIX:*:SysV)
- echo i386-pc-xenix
- exit ;;
- i*86:skyos:*:*)
- echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
- exit ;;
- i*86:rdos:*:*)
- echo ${UNAME_MACHINE}-pc-rdos
- exit ;;
- i*86:AROS:*:*)
- echo ${UNAME_MACHINE}-pc-aros
- exit ;;
- x86_64:VMkernel:*:*)
- echo ${UNAME_MACHINE}-unknown-esx
- exit ;;
-esac
-
-cat >&2 <<EOF
-$0: unable to guess system type
-
-This script, last modified $timestamp, has failed to recognize
-the operating system you are using. It is advised that you
-download the most up to date version of the config scripts from
-
- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
-and
- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
-
-If the version you run ($0) is already up to date, please
-send the following data and any information you think might be
-pertinent to <config-patches at gnu.org> in order to provide the needed
-information to handle your system.
-
-config.guess timestamp = $timestamp
-
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
-
-hostinfo = `(hostinfo) 2>/dev/null`
-/bin/universe = `(/bin/universe) 2>/dev/null`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
-/bin/arch = `(/bin/arch) 2>/dev/null`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
-EOF
-
-exit 1
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/config.sub b/config.sub
deleted file mode 100755
index 6467c95..0000000
--- a/config.sub
+++ /dev/null
@@ -1,1807 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script.
-# Copyright 1992-2015 Free Software Foundation, Inc.
-
-timestamp='2015-01-01'
-
-# 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 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# 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 at gnu.org>.
-#
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support. The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or in some cases, the newer four-part form:
-# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
- $0 [OPTION] ALIAS
-
-Canonicalize a configuration name.
-
-Operation modes:
- -h, --help print this help, then exit
- -t, --time-stamp print date of last modification, then exit
- -v, --version print version number, then exit
-
-Report bugs and patches to <config-patches at gnu.org>."
-
-version="\
-GNU config.sub ($timestamp)
-
-Copyright 1992-2015 Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions. There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
- case $1 in
- --time-stamp | --time* | -t )
- echo "$timestamp" ; exit ;;
- --version | -v )
- echo "$version" ; exit ;;
- --help | --h* | -h )
- echo "$usage"; exit ;;
- -- ) # Stop option processing
- shift; break ;;
- - ) # Use stdin as input.
- break ;;
- -* )
- echo "$me: invalid option $1$help"
- exit 1 ;;
-
- *local*)
- # First pass through any local machine types.
- echo $1
- exit ;;
-
- * )
- break ;;
- esac
-done
-
-case $# in
- 0) echo "$me: missing argument$help" >&2
- exit 1;;
- 1) ;;
- *) echo "$me: too many arguments$help" >&2
- exit 1;;
-esac
-
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
- nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
- linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
- knetbsd*-gnu* | netbsd*-gnu* | \
- kopensolaris*-gnu* | \
- storm-chaos* | os2-emx* | rtmk-nova*)
- os=-$maybe_os
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
- ;;
- android-linux)
- os=-linux-android
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
- ;;
- *)
- basic_machine=`echo $1 | sed 's/-[^-]*$//'`
- if [ $basic_machine != $1 ]
- then os=`echo $1 | sed 's/.*-/-/'`
- else os=; fi
- ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work. We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
- -sun*os*)
- # Prevent following clause from handling this invalid input.
- ;;
- -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
- -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
- -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
- -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
- -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis | -knuth | -cray | -microblaze*)
- os=
- basic_machine=$1
- ;;
- -bluegene*)
- os=-cnk
- ;;
- -sim | -cisco | -oki | -wec | -winbond)
- os=
- basic_machine=$1
- ;;
- -scout)
- ;;
- -wrs)
- os=-vxworks
- basic_machine=$1
- ;;
- -chorusos*)
- os=-chorusos
- basic_machine=$1
- ;;
- -chorusrdb)
- os=-chorusrdb
- basic_machine=$1
- ;;
- -hiux*)
- os=-hiuxwe2
- ;;
- -sco6)
- os=-sco5v6
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco5)
- os=-sco3.2v5
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco4)
- os=-sco3.2v4
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2.[4-9]*)
- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2v[4-9]*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco5v6*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco*)
- os=-sco3.2v2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -udk*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -isc)
- os=-isc2.2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -clix*)
- basic_machine=clipper-intergraph
- ;;
- -isc*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -lynx*178)
- os=-lynxos178
- ;;
- -lynx*5)
- os=-lynxos5
- ;;
- -lynx*)
- os=-lynxos
- ;;
- -ptx*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
- ;;
- -windowsnt*)
- os=`echo $os | sed -e 's/windowsnt/winnt/'`
- ;;
- -psos*)
- os=-psos
- ;;
- -mint | -mint[0-9]*)
- basic_machine=m68k-atari
- os=-mint
- ;;
-esac
-
-# Decode aliases for certain CPU-COMPANY combinations.
-case $basic_machine in
- # Recognize the basic CPU types without company name.
- # Some are omitted here because they have special meanings below.
- 1750a | 580 \
- | a29k \
- | aarch64 | aarch64_be \
- | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
- | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
- | am33_2.0 \
- | arc | arceb \
- | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
- | avr | avr32 \
- | be32 | be64 \
- | bfin \
- | c4x | c8051 | clipper \
- | d10v | d30v | dlx | dsp16xx \
- | epiphany \
- | fido | fr30 | frv | ft32 \
- | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
- | hexagon \
- | i370 | i860 | i960 | ia64 \
- | ip2k | iq2000 \
- | k1om \
- | le32 | le64 \
- | lm32 \
- | m32c | m32r | m32rle | m68000 | m68k | m88k \
- | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
- | mips | mipsbe | mipseb | mipsel | mipsle \
- | mips16 \
- | mips64 | mips64el \
- | mips64octeon | mips64octeonel \
- | mips64orion | mips64orionel \
- | mips64r5900 | mips64r5900el \
- | mips64vr | mips64vrel \
- | mips64vr4100 | mips64vr4100el \
- | mips64vr4300 | mips64vr4300el \
- | mips64vr5000 | mips64vr5000el \
- | mips64vr5900 | mips64vr5900el \
- | mipsisa32 | mipsisa32el \
- | mipsisa32r2 | mipsisa32r2el \
- | mipsisa32r6 | mipsisa32r6el \
- | mipsisa64 | mipsisa64el \
- | mipsisa64r2 | mipsisa64r2el \
- | mipsisa64r6 | mipsisa64r6el \
- | mipsisa64sb1 | mipsisa64sb1el \
- | mipsisa64sr71k | mipsisa64sr71kel \
- | mipsr5900 | mipsr5900el \
- | mipstx39 | mipstx39el \
- | mn10200 | mn10300 \
- | moxie \
- | mt \
- | msp430 \
- | nds32 | nds32le | nds32be \
- | nios | nios2 | nios2eb | nios2el \
- | ns16k | ns32k \
- | open8 | or1k | or1knd | or32 \
- | pdp10 | pdp11 | pj | pjl \
- | powerpc | powerpc64 | powerpc64le | powerpcle \
- | pyramid \
- | riscv32 | riscv64 \
- | rl78 | rx \
- | score \
- | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
- | sh64 | sh64le \
- | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
- | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
- | spu \
- | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
- | ubicom32 \
- | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
- | visium \
- | we32k \
- | x86 | xc16x | xstormy16 | xtensa \
- | z8k | z80)
- basic_machine=$basic_machine-unknown
- ;;
- c54x)
- basic_machine=tic54x-unknown
- ;;
- c55x)
- basic_machine=tic55x-unknown
- ;;
- c6x)
- basic_machine=tic6x-unknown
- ;;
- leon|leon[3-9])
- basic_machine=sparc-$basic_machine
- ;;
- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
- basic_machine=$basic_machine-unknown
- os=-none
- ;;
- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
- ;;
- ms1)
- basic_machine=mt-unknown
- ;;
-
- strongarm | thumb | xscale)
- basic_machine=arm-unknown
- ;;
- xgate)
- basic_machine=$basic_machine-unknown
- os=-none
- ;;
- xscaleeb)
- basic_machine=armeb-unknown
- ;;
-
- xscaleel)
- basic_machine=armel-unknown
- ;;
-
- # We use `pc' rather than `unknown'
- # because (1) that's what they normally are, and
- # (2) the word "unknown" tends to confuse beginning users.
- i*86 | x86_64)
- basic_machine=$basic_machine-pc
- ;;
- # Object if more than one company name word.
- *-*-*)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
- # Recognize the basic CPU types with company name.
- 580-* \
- | a29k-* \
- | aarch64-* | aarch64_be-* \
- | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
- | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
- | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
- | avr-* | avr32-* \
- | be32-* | be64-* \
- | bfin-* | bs2000-* \
- | c[123]* | c30-* | [cjt]90-* | c4x-* \
- | c8051-* | clipper-* | craynv-* | cydra-* \
- | d10v-* | d30v-* | dlx-* \
- | elxsi-* \
- | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
- | h8300-* | h8500-* \
- | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
- | hexagon-* \
- | i*86-* | i860-* | i960-* | ia64-* \
- | ip2k-* | iq2000-* \
- | k1om-* \
- | le32-* | le64-* \
- | lm32-* \
- | m32c-* | m32r-* | m32rle-* \
- | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
- | microblaze-* | microblazeel-* \
- | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
- | mips16-* \
- | mips64-* | mips64el-* \
- | mips64octeon-* | mips64octeonel-* \
- | mips64orion-* | mips64orionel-* \
- | mips64r5900-* | mips64r5900el-* \
- | mips64vr-* | mips64vrel-* \
- | mips64vr4100-* | mips64vr4100el-* \
- | mips64vr4300-* | mips64vr4300el-* \
- | mips64vr5000-* | mips64vr5000el-* \
- | mips64vr5900-* | mips64vr5900el-* \
- | mipsisa32-* | mipsisa32el-* \
- | mipsisa32r2-* | mipsisa32r2el-* \
- | mipsisa32r6-* | mipsisa32r6el-* \
- | mipsisa64-* | mipsisa64el-* \
- | mipsisa64r2-* | mipsisa64r2el-* \
- | mipsisa64r6-* | mipsisa64r6el-* \
- | mipsisa64sb1-* | mipsisa64sb1el-* \
- | mipsisa64sr71k-* | mipsisa64sr71kel-* \
- | mipsr5900-* | mipsr5900el-* \
- | mipstx39-* | mipstx39el-* \
- | mmix-* \
- | mt-* \
- | msp430-* \
- | nds32-* | nds32le-* | nds32be-* \
- | nios-* | nios2-* | nios2eb-* | nios2el-* \
- | none-* | np1-* | ns16k-* | ns32k-* \
- | open8-* \
- | or1k*-* \
- | orion-* \
- | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
- | pyramid-* \
- | rl78-* | romp-* | rs6000-* | rx-* \
- | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
- | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
- | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
- | sparclite-* \
- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
- | tahoe-* \
- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
- | tile*-* \
- | tron-* \
- | ubicom32-* \
- | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
- | vax-* \
- | visium-* \
- | we32k-* \
- | x86-* | x86_64-* | xc16x-* | xps100-* \
- | xstormy16-* | xtensa*-* \
- | ymp-* \
- | z8k-* | z80-*)
- ;;
- # Recognize the basic CPU types without company name, with glob match.
- xtensa*)
- basic_machine=$basic_machine-unknown
- ;;
- # Recognize the various machine names and aliases which stand
- # for a CPU type and a company and sometimes even an OS.
- 386bsd)
- basic_machine=i386-unknown
- os=-bsd
- ;;
- 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
- basic_machine=m68000-att
- ;;
- 3b*)
- basic_machine=we32k-att
- ;;
- a29khif)
- basic_machine=a29k-amd
- os=-udi
- ;;
- abacus)
- basic_machine=abacus-unknown
- ;;
- adobe68k)
- basic_machine=m68010-adobe
- os=-scout
- ;;
- alliant | fx80)
- basic_machine=fx80-alliant
- ;;
- altos | altos3068)
- basic_machine=m68k-altos
- ;;
- am29k)
- basic_machine=a29k-none
- os=-bsd
- ;;
- amd64)
- basic_machine=x86_64-pc
- ;;
- amd64-*)
- basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- amdahl)
- basic_machine=580-amdahl
- os=-sysv
- ;;
- amiga | amiga-*)
- basic_machine=m68k-unknown
- ;;
- amigaos | amigados)
- basic_machine=m68k-unknown
- os=-amigaos
- ;;
- amigaunix | amix)
- basic_machine=m68k-unknown
- os=-sysv4
- ;;
- apollo68)
- basic_machine=m68k-apollo
- os=-sysv
- ;;
- apollo68bsd)
- basic_machine=m68k-apollo
- os=-bsd
- ;;
- aros)
- basic_machine=i386-pc
- os=-aros
- ;;
- aux)
- basic_machine=m68k-apple
- os=-aux
- ;;
- balance)
- basic_machine=ns32k-sequent
- os=-dynix
- ;;
- blackfin)
- basic_machine=bfin-unknown
- os=-linux
- ;;
- blackfin-*)
- basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=-linux
- ;;
- bluegene*)
- basic_machine=powerpc-ibm
- os=-cnk
- ;;
- c54x-*)
- basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- c55x-*)
- basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- c6x-*)
- basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- c90)
- basic_machine=c90-cray
- os=-unicos
- ;;
- cegcc)
- basic_machine=arm-unknown
- os=-cegcc
- ;;
- convex-c1)
- basic_machine=c1-convex
- os=-bsd
- ;;
- convex-c2)
- basic_machine=c2-convex
- os=-bsd
- ;;
- convex-c32)
- basic_machine=c32-convex
- os=-bsd
- ;;
- convex-c34)
- basic_machine=c34-convex
- os=-bsd
- ;;
- convex-c38)
- basic_machine=c38-convex
- os=-bsd
- ;;
- cray | j90)
- basic_machine=j90-cray
- os=-unicos
- ;;
- craynv)
- basic_machine=craynv-cray
- os=-unicosmp
- ;;
- cr16 | cr16-*)
- basic_machine=cr16-unknown
- os=-elf
- ;;
- crds | unos)
- basic_machine=m68k-crds
- ;;
- crisv32 | crisv32-* | etraxfs*)
- basic_machine=crisv32-axis
- ;;
- cris | cris-* | etrax*)
- basic_machine=cris-axis
- ;;
- crx)
- basic_machine=crx-unknown
- os=-elf
- ;;
- da30 | da30-*)
- basic_machine=m68k-da30
- ;;
- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
- basic_machine=mips-dec
- ;;
- decsystem10* | dec10*)
- basic_machine=pdp10-dec
- os=-tops10
- ;;
- decsystem20* | dec20*)
- basic_machine=pdp10-dec
- os=-tops20
- ;;
- delta | 3300 | motorola-3300 | motorola-delta \
- | 3300-motorola | delta-motorola)
- basic_machine=m68k-motorola
- ;;
- delta88)
- basic_machine=m88k-motorola
- os=-sysv3
- ;;
- dicos)
- basic_machine=i686-pc
- os=-dicos
- ;;
- djgpp)
- basic_machine=i586-pc
- os=-msdosdjgpp
- ;;
- dpx20 | dpx20-*)
- basic_machine=rs6000-bull
- os=-bosx
- ;;
- dpx2* | dpx2*-bull)
- basic_machine=m68k-bull
- os=-sysv3
- ;;
- ebmon29k)
- basic_machine=a29k-amd
- os=-ebmon
- ;;
- elxsi)
- basic_machine=elxsi-elxsi
- os=-bsd
- ;;
- encore | umax | mmax)
- basic_machine=ns32k-encore
- ;;
- es1800 | OSE68k | ose68k | ose | OSE)
- basic_machine=m68k-ericsson
- os=-ose
- ;;
- fx2800)
- basic_machine=i860-alliant
- ;;
- genix)
- basic_machine=ns32k-ns
- ;;
- gmicro)
- basic_machine=tron-gmicro
- os=-sysv
- ;;
- go32)
- basic_machine=i386-pc
- os=-go32
- ;;
- h3050r* | hiux*)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- h8300hms)
- basic_machine=h8300-hitachi
- os=-hms
- ;;
- h8300xray)
- basic_machine=h8300-hitachi
- os=-xray
- ;;
- h8500hms)
- basic_machine=h8500-hitachi
- os=-hms
- ;;
- harris)
- basic_machine=m88k-harris
- os=-sysv3
- ;;
- hp300-*)
- basic_machine=m68k-hp
- ;;
- hp300bsd)
- basic_machine=m68k-hp
- os=-bsd
- ;;
- hp300hpux)
- basic_machine=m68k-hp
- os=-hpux
- ;;
- hp3k9[0-9][0-9] | hp9[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hp9k2[0-9][0-9] | hp9k31[0-9])
- basic_machine=m68000-hp
- ;;
- hp9k3[2-9][0-9])
- basic_machine=m68k-hp
- ;;
- hp9k6[0-9][0-9] | hp6[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hp9k7[0-79][0-9] | hp7[0-79][0-9])
- basic_machine=hppa1.1-hp
- ;;
- hp9k78[0-9] | hp78[0-9])
- # FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
- # FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[0-9][13679] | hp8[0-9][13679])
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[0-9][0-9] | hp8[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hppa-next)
- os=-nextstep3
- ;;
- hppaosf)
- basic_machine=hppa1.1-hp
- os=-osf
- ;;
- hppro)
- basic_machine=hppa1.1-hp
- os=-proelf
- ;;
- i370-ibm* | ibm*)
- basic_machine=i370-ibm
- ;;
- i*86v32)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv32
- ;;
- i*86v4*)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv4
- ;;
- i*86v)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv
- ;;
- i*86sol2)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-solaris2
- ;;
- i386mach)
- basic_machine=i386-mach
- os=-mach
- ;;
- i386-vsta | vsta)
- basic_machine=i386-unknown
- os=-vsta
- ;;
- iris | iris4d)
- basic_machine=mips-sgi
- case $os in
- -irix*)
- ;;
- *)
- os=-irix4
- ;;
- esac
- ;;
- isi68 | isi)
- basic_machine=m68k-isi
- os=-sysv
- ;;
- leon-*|leon[3-9]-*)
- basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
- ;;
- m68knommu)
- basic_machine=m68k-unknown
- os=-linux
- ;;
- m68knommu-*)
- basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=-linux
- ;;
- m88k-omron*)
- basic_machine=m88k-omron
- ;;
- magnum | m3230)
- basic_machine=mips-mips
- os=-sysv
- ;;
- merlin)
- basic_machine=ns32k-utek
- os=-sysv
- ;;
- microblaze*)
- basic_machine=microblaze-xilinx
- ;;
- mingw64)
- basic_machine=x86_64-pc
- os=-mingw64
- ;;
- mingw32)
- basic_machine=i686-pc
- os=-mingw32
- ;;
- mingw32ce)
- basic_machine=arm-unknown
- os=-mingw32ce
- ;;
- miniframe)
- basic_machine=m68000-convergent
- ;;
- *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
- basic_machine=m68k-atari
- os=-mint
- ;;
- mips3*-*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
- ;;
- mips3*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
- ;;
- monitor)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- morphos)
- basic_machine=powerpc-unknown
- os=-morphos
- ;;
- moxiebox)
- basic_machine=moxie-unknown
- os=-moxiebox
- ;;
- msdos)
- basic_machine=i386-pc
- os=-msdos
- ;;
- ms1-*)
- basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
- ;;
- msys)
- basic_machine=i686-pc
- os=-msys
- ;;
- mvs)
- basic_machine=i370-ibm
- os=-mvs
- ;;
- nacl)
- basic_machine=le32-unknown
- os=-nacl
- ;;
- ncr3000)
- basic_machine=i486-ncr
- os=-sysv4
- ;;
- netbsd386)
- basic_machine=i386-unknown
- os=-netbsd
- ;;
- netwinder)
- basic_machine=armv4l-rebel
- os=-linux
- ;;
- news | news700 | news800 | news900)
- basic_machine=m68k-sony
- os=-newsos
- ;;
- news1000)
- basic_machine=m68030-sony
- os=-newsos
- ;;
- news-3600 | risc-news)
- basic_machine=mips-sony
- os=-newsos
- ;;
- necv70)
- basic_machine=v70-nec
- os=-sysv
- ;;
- next | m*-next )
- basic_machine=m68k-next
- case $os in
- -nextstep* )
- ;;
- -ns2*)
- os=-nextstep2
- ;;
- *)
- os=-nextstep3
- ;;
- esac
- ;;
- nh3000)
- basic_machine=m68k-harris
- os=-cxux
- ;;
- nh[45]000)
- basic_machine=m88k-harris
- os=-cxux
- ;;
- nindy960)
- basic_machine=i960-intel
- os=-nindy
- ;;
- mon960)
- basic_machine=i960-intel
- os=-mon960
- ;;
- nonstopux)
- basic_machine=mips-compaq
- os=-nonstopux
- ;;
- np1)
- basic_machine=np1-gould
- ;;
- neo-tandem)
- basic_machine=neo-tandem
- ;;
- nse-tandem)
- basic_machine=nse-tandem
- ;;
- nsr-tandem)
- basic_machine=nsr-tandem
- ;;
- op50n-* | op60c-*)
- basic_machine=hppa1.1-oki
- os=-proelf
- ;;
- openrisc | openrisc-*)
- basic_machine=or32-unknown
- ;;
- os400)
- basic_machine=powerpc-ibm
- os=-os400
- ;;
- OSE68000 | ose68000)
- basic_machine=m68000-ericsson
- os=-ose
- ;;
- os68k)
- basic_machine=m68k-none
- os=-os68k
- ;;
- pa-hitachi)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- paragon)
- basic_machine=i860-intel
- os=-osf
- ;;
- parisc)
- basic_machine=hppa-unknown
- os=-linux
- ;;
- parisc-*)
- basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=-linux
- ;;
- pbd)
- basic_machine=sparc-tti
- ;;
- pbb)
- basic_machine=m68k-tti
- ;;
- pc532 | pc532-*)
- basic_machine=ns32k-pc532
- ;;
- pc98)
- basic_machine=i386-pc
- ;;
- pc98-*)
- basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentium | p5 | k5 | k6 | nexgen | viac3)
- basic_machine=i586-pc
- ;;
- pentiumpro | p6 | 6x86 | athlon | athlon_*)
- basic_machine=i686-pc
- ;;
- pentiumii | pentium2 | pentiumiii | pentium3)
- basic_machine=i686-pc
- ;;
- pentium4)
- basic_machine=i786-pc
- ;;
- pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumpro-* | p6-* | 6x86-* | athlon-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentium4-*)
- basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pn)
- basic_machine=pn-gould
- ;;
- power) basic_machine=power-ibm
- ;;
- ppc | ppcbe) basic_machine=powerpc-unknown
- ;;
- ppc-* | ppcbe-*)
- basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppcle | powerpclittle | ppc-le | powerpc-little)
- basic_machine=powerpcle-unknown
- ;;
- ppcle-* | powerpclittle-*)
- basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppc64) basic_machine=powerpc64-unknown
- ;;
- ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppc64le | powerpc64little | ppc64-le | powerpc64-little)
- basic_machine=powerpc64le-unknown
- ;;
- ppc64le-* | powerpc64little-*)
- basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ps2)
- basic_machine=i386-ibm
- ;;
- pw32)
- basic_machine=i586-unknown
- os=-pw32
- ;;
- rdos | rdos64)
- basic_machine=x86_64-pc
- os=-rdos
- ;;
- rdos32)
- basic_machine=i386-pc
- os=-rdos
- ;;
- rom68k)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- rm[46]00)
- basic_machine=mips-siemens
- ;;
- rtpc | rtpc-*)
- basic_machine=romp-ibm
- ;;
- s390 | s390-*)
- basic_machine=s390-ibm
- ;;
- s390x | s390x-*)
- basic_machine=s390x-ibm
- ;;
- sa29200)
- basic_machine=a29k-amd
- os=-udi
- ;;
- sb1)
- basic_machine=mipsisa64sb1-unknown
- ;;
- sb1el)
- basic_machine=mipsisa64sb1el-unknown
- ;;
- sde)
- basic_machine=mipsisa32-sde
- os=-elf
- ;;
- sei)
- basic_machine=mips-sei
- os=-seiux
- ;;
- sequent)
- basic_machine=i386-sequent
- ;;
- sh)
- basic_machine=sh-hitachi
- os=-hms
- ;;
- sh5el)
- basic_machine=sh5le-unknown
- ;;
- sh64)
- basic_machine=sh64-unknown
- ;;
- sparclite-wrs | simso-wrs)
- basic_machine=sparclite-wrs
- os=-vxworks
- ;;
- sps7)
- basic_machine=m68k-bull
- os=-sysv2
- ;;
- spur)
- basic_machine=spur-unknown
- ;;
- st2000)
- basic_machine=m68k-tandem
- ;;
- stratus)
- basic_machine=i860-stratus
- os=-sysv4
- ;;
- strongarm-* | thumb-*)
- basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- sun2)
- basic_machine=m68000-sun
- ;;
- sun2os3)
- basic_machine=m68000-sun
- os=-sunos3
- ;;
- sun2os4)
- basic_machine=m68000-sun
- os=-sunos4
- ;;
- sun3os3)
- basic_machine=m68k-sun
- os=-sunos3
- ;;
- sun3os4)
- basic_machine=m68k-sun
- os=-sunos4
- ;;
- sun4os3)
- basic_machine=sparc-sun
- os=-sunos3
- ;;
- sun4os4)
- basic_machine=sparc-sun
- os=-sunos4
- ;;
- sun4sol2)
- basic_machine=sparc-sun
- os=-solaris2
- ;;
- sun3 | sun3-*)
- basic_machine=m68k-sun
- ;;
- sun4)
- basic_machine=sparc-sun
- ;;
- sun386 | sun386i | roadrunner)
- basic_machine=i386-sun
- ;;
- sv1)
- basic_machine=sv1-cray
- os=-unicos
- ;;
- symmetry)
- basic_machine=i386-sequent
- os=-dynix
- ;;
- t3e)
- basic_machine=alphaev5-cray
- os=-unicos
- ;;
- t90)
- basic_machine=t90-cray
- os=-unicos
- ;;
- tile*)
- basic_machine=$basic_machine-unknown
- os=-linux-gnu
- ;;
- tx39)
- basic_machine=mipstx39-unknown
- ;;
- tx39el)
- basic_machine=mipstx39el-unknown
- ;;
- toad1)
- basic_machine=pdp10-xkl
- os=-tops20
- ;;
- tower | tower-32)
- basic_machine=m68k-ncr
- ;;
- tpf)
- basic_machine=s390x-ibm
- os=-tpf
- ;;
- udi29k)
- basic_machine=a29k-amd
- os=-udi
- ;;
- ultra3)
- basic_machine=a29k-nyu
- os=-sym1
- ;;
- v810 | necv810)
- basic_machine=v810-nec
- os=-none
- ;;
- vaxv)
- basic_machine=vax-dec
- os=-sysv
- ;;
- vms)
- basic_machine=vax-dec
- os=-vms
- ;;
- vpp*|vx|vx-*)
- basic_machine=f301-fujitsu
- ;;
- vxworks960)
- basic_machine=i960-wrs
- os=-vxworks
- ;;
- vxworks68)
- basic_machine=m68k-wrs
- os=-vxworks
- ;;
- vxworks29k)
- basic_machine=a29k-wrs
- os=-vxworks
- ;;
- w65*)
- basic_machine=w65-wdc
- os=-none
- ;;
- w89k-*)
- basic_machine=hppa1.1-winbond
- os=-proelf
- ;;
- xbox)
- basic_machine=i686-pc
- os=-mingw32
- ;;
- xps | xps100)
- basic_machine=xps100-honeywell
- ;;
- xscale-* | xscalee[bl]-*)
- basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
- ;;
- ymp)
- basic_machine=ymp-cray
- os=-unicos
- ;;
- z8k-*-coff)
- basic_machine=z8k-unknown
- os=-sim
- ;;
- z80-*-coff)
- basic_machine=z80-unknown
- os=-sim
- ;;
- none)
- basic_machine=none-none
- os=-none
- ;;
-
-# Here we handle the default manufacturer of certain CPU types. It is in
-# some cases the only manufacturer, in others, it is the most popular.
- w89k)
- basic_machine=hppa1.1-winbond
- ;;
- op50n)
- basic_machine=hppa1.1-oki
- ;;
- op60c)
- basic_machine=hppa1.1-oki
- ;;
- romp)
- basic_machine=romp-ibm
- ;;
- mmix)
- basic_machine=mmix-knuth
- ;;
- rs6000)
- basic_machine=rs6000-ibm
- ;;
- vax)
- basic_machine=vax-dec
- ;;
- pdp10)
- # there are many clones, so DEC is not a safe bet
- basic_machine=pdp10-unknown
- ;;
- pdp11)
- basic_machine=pdp11-dec
- ;;
- we32k)
- basic_machine=we32k-att
- ;;
- sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
- basic_machine=sh-unknown
- ;;
- sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
- basic_machine=sparc-sun
- ;;
- cydra)
- basic_machine=cydra-cydrome
- ;;
- orion)
- basic_machine=orion-highlevel
- ;;
- orion105)
- basic_machine=clipper-highlevel
- ;;
- mac | mpw | mac-mpw)
- basic_machine=m68k-apple
- ;;
- pmac | pmac-mpw)
- basic_machine=powerpc-apple
- ;;
- *-unknown)
- # Make sure to match an already-canonicalized machine name.
- ;;
- *)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
- *-digital*)
- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
- ;;
- *-commodore*)
- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
- ;;
- *)
- ;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x"$os" != x"" ]
-then
-case $os in
- # First match some system type aliases
- # that might get confused with valid system types.
- # -solaris* is a basic system type, with this one exception.
- -auroraux)
- os=-auroraux
- ;;
- -solaris1 | -solaris1.*)
- os=`echo $os | sed -e 's|solaris1|sunos4|'`
- ;;
- -solaris)
- os=-solaris2
- ;;
- -svr4*)
- os=-sysv4
- ;;
- -unixware*)
- os=-sysv4.2uw
- ;;
- -gnu/linux*)
- os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
- ;;
- # First accept the basic system types.
- # The portable systems comes first.
- # Each alternative MUST END IN A *, to match a version number.
- # -sysv* is not here because it comes later, after sysvr4.
- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
- | -sym* | -kopensolaris* | -plan9* \
- | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
- | -aos* | -aros* \
- | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
- | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
- | -bitrig* | -openbsd* | -solidbsd* \
- | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
- | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -chorusos* | -chorusrdb* | -cegcc* \
- | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
- | -linux-newlib* | -linux-musl* | -linux-uclibc* \
- | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
- | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
- | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
- | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
- | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
- | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
- | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
- # Remember, each alternative MUST END IN *, to match a version number.
- ;;
- -qnx*)
- case $basic_machine in
- x86-* | i*86-*)
- ;;
- *)
- os=-nto$os
- ;;
- esac
- ;;
- -nto-qnx*)
- ;;
- -nto*)
- os=`echo $os | sed -e 's|nto|nto-qnx|'`
- ;;
- -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
- | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
- | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
- ;;
- -mac*)
- os=`echo $os | sed -e 's|mac|macos|'`
- ;;
- -linux-dietlibc)
- os=-linux-dietlibc
- ;;
- -linux*)
- os=`echo $os | sed -e 's|linux|linux-gnu|'`
- ;;
- -sunos5*)
- os=`echo $os | sed -e 's|sunos5|solaris2|'`
- ;;
- -sunos6*)
- os=`echo $os | sed -e 's|sunos6|solaris3|'`
- ;;
- -opened*)
- os=-openedition
- ;;
- -os400*)
- os=-os400
- ;;
- -wince*)
- os=-wince
- ;;
- -osfrose*)
- os=-osfrose
- ;;
- -osf*)
- os=-osf
- ;;
- -utek*)
- os=-bsd
- ;;
- -dynix*)
- os=-bsd
- ;;
- -acis*)
- os=-aos
- ;;
- -atheos*)
- os=-atheos
- ;;
- -syllable*)
- os=-syllable
- ;;
- -386bsd)
- os=-bsd
- ;;
- -ctix* | -uts*)
- os=-sysv
- ;;
- -nova*)
- os=-rtmk-nova
- ;;
- -ns2 )
- os=-nextstep2
- ;;
- -nsk*)
- os=-nsk
- ;;
- # Preserve the version number of sinix5.
- -sinix5.*)
- os=`echo $os | sed -e 's|sinix|sysv|'`
- ;;
- -sinix*)
- os=-sysv4
- ;;
- -tpf*)
- os=-tpf
- ;;
- -triton*)
- os=-sysv3
- ;;
- -oss*)
- os=-sysv3
- ;;
- -svr4)
- os=-sysv4
- ;;
- -svr3)
- os=-sysv3
- ;;
- -sysvr4)
- os=-sysv4
- ;;
- # This must come after -sysvr4.
- -sysv*)
- ;;
- -ose*)
- os=-ose
- ;;
- -es1800*)
- os=-ose
- ;;
- -xenix)
- os=-xenix
- ;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
- os=-mint
- ;;
- -aros*)
- os=-aros
- ;;
- -zvmoe)
- os=-zvmoe
- ;;
- -dicos*)
- os=-dicos
- ;;
- -nacl*)
- ;;
- -none)
- ;;
- *)
- # Get rid of the `-' at the beginning of $os.
- os=`echo $os | sed 's/[^-]*-//'`
- echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
- exit 1
- ;;
-esac
-else
-
-# Here we handle the default operating systems that come with various machines.
-# The value should be what the vendor currently ships out the door with their
-# machine or put another way, the most popular os provided with the machine.
-
-# Note that if you're going to try to match "-MANUFACTURER" here (say,
-# "-sun"), then you have to tell the case statement up towards the top
-# that MANUFACTURER isn't an operating system. Otherwise, code above
-# will signal an error saying that MANUFACTURER isn't an operating
-# system, and we'll never get to this point.
-
-case $basic_machine in
- score-*)
- os=-elf
- ;;
- spu-*)
- os=-elf
- ;;
- *-acorn)
- os=-riscix1.2
- ;;
- arm*-rebel)
- os=-linux
- ;;
- arm*-semi)
- os=-aout
- ;;
- c4x-* | tic4x-*)
- os=-coff
- ;;
- c8051-*)
- os=-elf
- ;;
- hexagon-*)
- os=-elf
- ;;
- tic54x-*)
- os=-coff
- ;;
- tic55x-*)
- os=-coff
- ;;
- tic6x-*)
- os=-coff
- ;;
- # This must come before the *-dec entry.
- pdp10-*)
- os=-tops20
- ;;
- pdp11-*)
- os=-none
- ;;
- *-dec | vax-*)
- os=-ultrix4.2
- ;;
- m68*-apollo)
- os=-domain
- ;;
- i386-sun)
- os=-sunos4.0.2
- ;;
- m68000-sun)
- os=-sunos3
- ;;
- m68*-cisco)
- os=-aout
- ;;
- mep-*)
- os=-elf
- ;;
- mips*-cisco)
- os=-elf
- ;;
- mips*-*)
- os=-elf
- ;;
- or32-*)
- os=-coff
- ;;
- *-tti) # must be before sparc entry or we get the wrong os.
- os=-sysv3
- ;;
- sparc-* | *-sun)
- os=-sunos4.1.1
- ;;
- *-be)
- os=-beos
- ;;
- *-haiku)
- os=-haiku
- ;;
- *-ibm)
- os=-aix
- ;;
- *-knuth)
- os=-mmixware
- ;;
- *-wec)
- os=-proelf
- ;;
- *-winbond)
- os=-proelf
- ;;
- *-oki)
- os=-proelf
- ;;
- *-hp)
- os=-hpux
- ;;
- *-hitachi)
- os=-hiux
- ;;
- i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
- os=-sysv
- ;;
- *-cbm)
- os=-amigaos
- ;;
- *-dg)
- os=-dgux
- ;;
- *-dolphin)
- os=-sysv3
- ;;
- m68k-ccur)
- os=-rtu
- ;;
- m88k-omron*)
- os=-luna
- ;;
- *-next )
- os=-nextstep
- ;;
- *-sequent)
- os=-ptx
- ;;
- *-crds)
- os=-unos
- ;;
- *-ns)
- os=-genix
- ;;
- i370-*)
- os=-mvs
- ;;
- *-next)
- os=-nextstep3
- ;;
- *-gould)
- os=-sysv
- ;;
- *-highlevel)
- os=-bsd
- ;;
- *-encore)
- os=-bsd
- ;;
- *-sgi)
- os=-irix
- ;;
- *-siemens)
- os=-sysv4
- ;;
- *-masscomp)
- os=-rtu
- ;;
- f30[01]-fujitsu | f700-fujitsu)
- os=-uxpv
- ;;
- *-rom68k)
- os=-coff
- ;;
- *-*bug)
- os=-coff
- ;;
- *-apple)
- os=-macos
- ;;
- *-atari*)
- os=-mint
- ;;
- *)
- os=-none
- ;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer. We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
- *-unknown)
- case $os in
- -riscix*)
- vendor=acorn
- ;;
- -sunos*)
- vendor=sun
- ;;
- -cnk*|-aix*)
- vendor=ibm
- ;;
- -beos*)
- vendor=be
- ;;
- -hpux*)
- vendor=hp
- ;;
- -mpeix*)
- vendor=hp
- ;;
- -hiux*)
- vendor=hitachi
- ;;
- -unos*)
- vendor=crds
- ;;
- -dgux*)
- vendor=dg
- ;;
- -luna*)
- vendor=omron
- ;;
- -genix*)
- vendor=ns
- ;;
- -mvs* | -opened*)
- vendor=ibm
- ;;
- -os400*)
- vendor=ibm
- ;;
- -ptx*)
- vendor=sequent
- ;;
- -tpf*)
- vendor=ibm
- ;;
- -vxsim* | -vxworks* | -windiss*)
- vendor=wrs
- ;;
- -aux*)
- vendor=apple
- ;;
- -hms*)
- vendor=hitachi
- ;;
- -mpw* | -macos*)
- vendor=apple
- ;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
- vendor=atari
- ;;
- -vos*)
- vendor=stratus
- ;;
- esac
- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
- ;;
-esac
-
-echo $basic_machine$os
-exit
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/configure b/configure
deleted file mode 100755
index d984831..0000000
--- a/configure
+++ /dev/null
@@ -1,20690 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for fence-agents 4.0.25.
-#
-# Report bugs to <linux-cluster at redhat.com>.
-#
-#
-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
-#
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-# Use a proper internal environment variable to ensure we don't fall
- # into an infinite loop, continuously re-executing ourselves.
- if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
- _as_can_reexec=no; export _as_can_reexec;
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-as_fn_exit 255
- fi
- # We don't want this to propagate to other subprocesses.
- { _as_can_reexec=; unset _as_can_reexec;}
-if test "x$CONFIG_SHELL" = x; then
- as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '\${1+\"\$@\"}'='\"\$@\"'
- setopt NO_GLOB_SUBST
-else
- case \`(set -o) 2>/dev/null\` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-"
- as_required="as_fn_return () { (exit \$1); }
-as_fn_success () { as_fn_return 0; }
-as_fn_failure () { as_fn_return 1; }
-as_fn_ret_success () { return 0; }
-as_fn_ret_failure () { return 1; }
-
-exitcode=0
-as_fn_success || { exitcode=1; echo as_fn_success failed.; }
-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
-
-else
- exitcode=1; echo positional parameters were not saved.
-fi
-test x\$exitcode = x0 || exit 1
-test -x / || exit 1"
- as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
- as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
- eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
- test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
-
- test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
- ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
- ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
- ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
- PATH=/empty FPATH=/empty; export PATH FPATH
- test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
- || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1
-test \$(( 1 + 1 )) = 2 || exit 1"
- if (eval "$as_required") 2>/dev/null; then :
- as_have_required=yes
-else
- as_have_required=no
-fi
- if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
-
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- as_found=:
- case $as_dir in #(
- /*)
- for as_base in sh bash ksh sh5; do
- # Try only shells that exist, to save several forks.
- as_shell=$as_dir/$as_base
- if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
- CONFIG_SHELL=$as_shell as_have_required=yes
- if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
- break 2
-fi
-fi
- done;;
- esac
- as_found=false
-done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
- CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
-IFS=$as_save_IFS
-
-
- if test "x$CONFIG_SHELL" != x; then :
- export CONFIG_SHELL
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
-fi
-
- if test x$as_have_required = xno; then :
- $as_echo "$0: This script requires a shell more modern than all"
- $as_echo "$0: the shells that I found on your system."
- if test x${ZSH_VERSION+set} = xset ; then
- $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
- $as_echo "$0: be upgraded to zsh 4.3.4 or later."
- else
- $as_echo "$0: Please tell bug-autoconf at gnu.org and
-$0: linux-cluster at redhat.com about your system, including
-$0: any error possibly output before this message. Then
-$0: install a modern shell, or manually run the script
-$0: under such a shell if you do have one."
- fi
- exit 1
-fi
-fi
-fi
-SHELL=${CONFIG_SHELL-/bin/sh}
-export SHELL
-# Unset more variables known to interfere with behavior of common tools.
-CLICOLOR_FORCE= GREP_OPTIONS=
-unset CLICOLOR_FORCE GREP_OPTIONS
-
-## --------------------- ##
-## M4sh Shell Functions. ##
-## --------------------- ##
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
- { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
- return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
- set +e
- as_fn_set_status $1
- exit $1
-} # as_fn_exit
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || eval $as_mkdir_p || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
- eval 'as_fn_append ()
- {
- eval $1+=\$2
- }'
-else
- as_fn_append ()
- {
- eval $1=\$$1\$2
- }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
- eval 'as_fn_arith ()
- {
- as_val=$(( $* ))
- }'
-else
- as_fn_arith ()
- {
- as_val=`expr "$@" || test $? -eq 1`
- }
-fi # as_fn_arith
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
- as_status=$1; test $as_status -eq 0 && as_status=1
- if test "$4"; then
- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
- $as_echo "$as_me: error: $2" >&2
- as_fn_exit $as_status
-} # as_fn_error
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-
- as_lineno_1=$LINENO as_lineno_1a=$LINENO
- as_lineno_2=$LINENO as_lineno_2a=$LINENO
- eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
- test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
- # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
- sed -n '
- p
- /[$]LINENO/=
- ' <$as_myself |
- sed '
- s/[$]LINENO.*/&-/
- t lineno
- b
- :lineno
- N
- :loop
- s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
- t loop
- s/-\n.*//
- ' >$as_me.lineno &&
- chmod +x "$as_me.lineno" ||
- { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
-
- # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
- # already done that, so ensure we don't try to do so again and fall
- # in an infinite loop. This has already happened in practice.
- _as_can_reexec=no; export _as_can_reexec
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensitive to this).
- . "./$as_me.lineno"
- # Exit status is that of the last command.
- exit
-}
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -pR'
- fi
-else
- as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p='mkdir -p "$as_dir"'
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-
-test -n "$DJDIR" || exec 7<&0 </dev/null
-exec 6>&1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_clean_files=
-ac_config_libobj_dir=.
-LIBOBJS=
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-
-# Identity of this package.
-PACKAGE_NAME='fence-agents'
-PACKAGE_TARNAME='fence-agents'
-PACKAGE_VERSION='4.0.25'
-PACKAGE_STRING='fence-agents 4.0.25'
-PACKAGE_BUGREPORT='linux-cluster at redhat.com'
-PACKAGE_URL=''
-
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-# endif
-#endif
-#ifdef HAVE_STRING_H
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-# include <memory.h>
-# endif
-# include <string.h>
-#endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-ac_unique_file="fence/agents/lib/fencing.py.py"
-ac_subst_vars='am__EXEEXT_FALSE
-am__EXEEXT_TRUE
-LTLIBOBJS
-BUILD_XENAPILIB_FALSE
-BUILD_XENAPILIB_TRUE
-AGENTS_LIST
-SNMPBIN
-FENCEAGENTSLIBDIR
-CLUSTERDATA
-CLUSTERVARRUN
-LOGDIR
-DEFAULT_CONFIG_FILE
-DEFAULT_CONFIG_DIR
-POWERMAN_PATH
-NOVA_PATH
-SNMPGET_PATH
-SNMPSET_PATH
-SNMPWALK_PATH
-SBD_PATH
-MPATH_PATH
-TELNET_PATH
-SSH_PATH
-SUDO_PATH
-VGS_PATH
-SG_TURS_PATH
-SG_PERSIST_PATH
-COROSYNC_CMAPCTL_PATH
-GNUTLSCLI_PATH
-AMTTOOL_PATH
-OPENSTACK_PATH
-IPMITOOL_PATH
-pkgpyexecdir
-pyexecdir
-pkgpythondir
-pythondir
-PYTHON_PLATFORM
-PYTHON_EXEC_PREFIX
-PYTHON_PREFIX
-PYTHON_VERSION
-PYTHON
-LIBOBJS
-CXXCPP
-am__fastdepCXX_FALSE
-am__fastdepCXX_TRUE
-CXXDEPMODE
-ac_ct_CXX
-CXXFLAGS
-CXX
-CPP
-OTOOL64
-OTOOL
-LIPO
-NMEDIT
-DSYMUTIL
-MANIFEST_TOOL
-RANLIB
-ac_ct_AR
-AR
-DLLTOOL
-OBJDUMP
-LN_S
-NM
-ac_ct_DUMPBIN
-DUMPBIN
-LD
-FGREP
-EGREP
-GREP
-SED
-am__fastdepCC_FALSE
-am__fastdepCC_TRUE
-CCDEPMODE
-am__nodep
-AMDEPBACKSLASH
-AMDEP_FALSE
-AMDEP_TRUE
-am__quote
-am__include
-DEPDIR
-OBJEXT
-EXEEXT
-ac_ct_CC
-CPPFLAGS
-LDFLAGS
-CFLAGS
-CC
-host_os
-host_vendor
-host_cpu
-host
-build_os
-build_vendor
-build_cpu
-build
-LIBTOOL
-AM_BACKSLASH
-AM_DEFAULT_VERBOSITY
-AM_DEFAULT_V
-AM_V
-am__untar
-am__tar
-AMTAR
-am__leading_dot
-SET_MAKE
-AWK
-mkdir_p
-MKDIR_P
-INSTALL_STRIP_PROGRAM
-STRIP
-install_sh
-MAKEINFO
-AUTOHEADER
-AUTOMAKE
-AUTOCONF
-ACLOCAL
-VERSION
-PACKAGE
-CYGPATH_W
-am__isrc
-INSTALL_DATA
-INSTALL_SCRIPT
-INSTALL_PROGRAM
-target_alias
-host_alias
-build_alias
-LIBS
-ECHO_T
-ECHO_N
-ECHO_C
-DEFS
-mandir
-localedir
-libdir
-psdir
-pdfdir
-dvidir
-htmldir
-infodir
-docdir
-oldincludedir
-includedir
-localstatedir
-sharedstatedir
-sysconfdir
-datadir
-datarootdir
-libexecdir
-sbindir
-bindir
-program_transform_name
-prefix
-exec_prefix
-PACKAGE_URL
-PACKAGE_BUGREPORT
-PACKAGE_STRING
-PACKAGE_VERSION
-PACKAGE_TARNAME
-PACKAGE_NAME
-PATH_SEPARATOR
-SHELL'
-ac_subst_files=''
-ac_user_opts='
-enable_option_checking
-enable_silent_rules
-enable_shared
-enable_static
-with_pic
-enable_fast_install
-enable_dependency_tracking
-with_gnu_ld
-with_sysroot
-enable_libtool_lock
-enable_debug
-with_fenceagentslibdir
-with_default_config_dir
-with_default_config_file
-with_agents
-'
- ac_precious_vars='build_alias
-host_alias
-target_alias
-CC
-CFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS
-CPP
-CXX
-CXXFLAGS
-CCC
-CXXCPP
-PYTHON'
-
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-ac_unrecognized_opts=
-ac_unrecognized_sep=
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
-
-ac_prev=
-ac_dashdash=
-for ac_option
-do
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval $ac_prev=\$ac_option
- ac_prev=
- continue
- fi
-
- case $ac_option in
- *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
- *=) ac_optarg= ;;
- *) ac_optarg=yes ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case $ac_dashdash$ac_option in
- --)
- ac_dashdash=yes ;;
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir=$ac_optarg ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build_alias ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build_alias=$ac_optarg ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file=$ac_optarg ;;
-
- --config-cache | -C)
- cache_file=config.cache ;;
-
- -datadir | --datadir | --datadi | --datad)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=*)
- datadir=$ac_optarg ;;
-
- -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
- | --dataroo | --dataro | --datar)
- ac_prev=datarootdir ;;
- -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
- | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
- datarootdir=$ac_optarg ;;
-
- -disable-* | --disable-*)
- ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"enable_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval enable_$ac_useropt=no ;;
-
- -docdir | --docdir | --docdi | --doc | --do)
- ac_prev=docdir ;;
- -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
- docdir=$ac_optarg ;;
-
- -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
- ac_prev=dvidir ;;
- -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
- dvidir=$ac_optarg ;;
-
- -enable-* | --enable-*)
- ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"enable_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval enable_$ac_useropt=\$ac_optarg ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix=$ac_optarg ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he | -h)
- ac_init_help=long ;;
- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
- ac_init_help=recursive ;;
- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
- ac_init_help=short ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host_alias ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host_alias=$ac_optarg ;;
-
- -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
- ac_prev=htmldir ;;
- -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
- | --ht=*)
- htmldir=$ac_optarg ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir=$ac_optarg ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir=$ac_optarg ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir=$ac_optarg ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir=$ac_optarg ;;
-
- -localedir | --localedir | --localedi | --localed | --locale)
- ac_prev=localedir ;;
- -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
- localedir=$ac_optarg ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst | --locals)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
- localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir=$ac_optarg ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c | -n)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir=$ac_optarg ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix=$ac_optarg ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix=$ac_optarg ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix=$ac_optarg ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
-
- -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
- ac_prev=pdfdir ;;
- -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
- pdfdir=$ac_optarg ;;
-
- -psdir | --psdir | --psdi | --psd | --ps)
- ac_prev=psdir ;;
- -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
- psdir=$ac_optarg ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir=$ac_optarg ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir=$ac_optarg ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site=$ac_optarg ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir=$ac_optarg ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir=$ac_optarg ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target_alias ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target_alias=$ac_optarg ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers | -V)
- ac_init_version=: ;;
-
- -with-* | --with-*)
- ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"with_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval with_$ac_useropt=\$ac_optarg ;;
-
- -without-* | --without-*)
- ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"with_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval with_$ac_useropt=no ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes=$ac_optarg ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries=$ac_optarg ;;
-
- -*) as_fn_error $? "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information"
- ;;
-
- *=*)
- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
- # Reject names that are not valid shell variable names.
- case $ac_envvar in #(
- '' | [0-9]* | *[!_$as_cr_alnum]* )
- as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
- esac
- eval $ac_envvar=\$ac_optarg
- export $ac_envvar ;;
-
- *)
- # FIXME: should be removed in autoconf 3.0.
- $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
- : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- as_fn_error $? "missing argument to $ac_option"
-fi
-
-if test -n "$ac_unrecognized_opts"; then
- case $enable_option_checking in
- no) ;;
- fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
- *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
- esac
-fi
-
-# Check all directory arguments for consistency.
-for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
- datadir sysconfdir sharedstatedir localstatedir includedir \
- oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir
-do
- eval ac_val=\$$ac_var
- # Remove trailing slashes.
- case $ac_val in
- */ )
- ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
- eval $ac_var=\$ac_val;;
- esac
- # Be sure to have absolute directory names.
- case $ac_val in
- [\\/$]* | ?:[\\/]* ) continue;;
- NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
- esac
- as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
- if test "x$build_alias" = x; then
- cross_compiling=maybe
- elif test "x$build_alias" != "x$host_alias"; then
- cross_compiling=yes
- fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-ac_pwd=`pwd` && test -n "$ac_pwd" &&
-ac_ls_di=`ls -di .` &&
-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
- as_fn_error $? "working directory cannot be determined"
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
- as_fn_error $? "pwd does not report name of working directory"
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then the parent directory.
- ac_confdir=`$as_dirname -- "$as_myself" ||
-$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_myself" : 'X\(//\)[^/]' \| \
- X"$as_myself" : 'X\(//\)$' \| \
- X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- srcdir=$ac_confdir
- if test ! -r "$srcdir/$ac_unique_file"; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r "$srcdir/$ac_unique_file"; then
- test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
- as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
- cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
- pwd)`
-# When building in place, set srcdir=.
-if test "$ac_abs_confdir" = "$ac_pwd"; then
- srcdir=.
-fi
-# Remove unnecessary trailing slashes from srcdir.
-# Double slashes in file names in object file debugging info
-# mess up M-x gdb in Emacs.
-case $srcdir in
-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-esac
-for ac_var in $ac_precious_vars; do
- eval ac_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_env_${ac_var}_value=\$${ac_var}
- eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_cv_env_${ac_var}_value=\$${ac_var}
-done
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat <<_ACEOF
-\`configure' configures fence-agents 4.0.25 to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE. See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
- -h, --help display this help and exit
- --help=short display options specific to this package
- --help=recursive display the short help of all the included packages
- -V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking ...' messages
- --cache-file=FILE cache test results in FILE [disabled]
- -C, --config-cache alias for \`--cache-file=config.cache'
- -n, --no-create do not create output files
- --srcdir=DIR find the sources in DIR [configure dir or \`..']
-
-Installation directories:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --libdir=DIR object code libraries [EPREFIX/lib]
- --includedir=DIR C header files [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc [/usr/include]
- --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
- --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
- --infodir=DIR info documentation [DATAROOTDIR/info]
- --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
- --mandir=DIR man documentation [DATAROOTDIR/man]
- --docdir=DIR documentation root [DATAROOTDIR/doc/fence-agents]
- --htmldir=DIR html documentation [DOCDIR]
- --dvidir=DIR dvi documentation [DOCDIR]
- --pdfdir=DIR pdf documentation [DOCDIR]
- --psdir=DIR ps documentation [DOCDIR]
-_ACEOF
-
- cat <<\_ACEOF
-
-Program names:
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM run sed PROGRAM on installed program names
-
-System types:
- --build=BUILD configure for building on BUILD [guessed]
- --host=HOST cross-compile to build programs to run on HOST [BUILD]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
- case $ac_init_help in
- short | recursive ) echo "Configuration of fence-agents 4.0.25:";;
- esac
- cat <<\_ACEOF
-
-Optional Features:
- --disable-option-checking ignore unrecognized --enable/--with options
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --enable-silent-rules less verbose build output (undo: "make V=1")
- --disable-silent-rules verbose build output (undo: "make V=0")
- --enable-shared[=PKGS] build shared libraries [default=yes]
- --enable-static[=PKGS] build static libraries [default=yes]
- --enable-fast-install[=PKGS]
- optimize for fast installation [default=yes]
- --enable-dependency-tracking
- do not reject slow dependency extractors
- --disable-dependency-tracking
- speeds up one-time build
- --disable-libtool-lock avoid locking (might break parallel builds)
- --enable-debug enable debug build.
-
-Optional Packages:
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use
- both]
- --with-gnu-ld assume the C compiler uses GNU ld [default=no]
- --with-sysroot=DIR Search for dependent libraries within DIR
- (or the compiler's sysroot if not specified).
- --with-fenceagentslibdir=PATH
- installation path for fence library.
- --with-default-config-dir=DIR
- cluster config directory.
- --with-default-config-file=FILE
- cluster config file.
- --with-agents=LIST
- list of agents to build/ship (default: all).
-
-Some influential environment variables:
- CC C compiler command
- CFLAGS C compiler flags
- LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
- nonstandard directory <lib dir>
- LIBS libraries to pass to the linker, e.g. -l<library>
- CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
- you have headers in a nonstandard directory <include dir>
- CPP C preprocessor
- CXX C++ compiler command
- CXXFLAGS C++ compiler flags
- CXXCPP C++ preprocessor
- PYTHON the Python interpreter
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-Report bugs to <linux-cluster at redhat.com>.
-_ACEOF
-ac_status=$?
-fi
-
-if test "$ac_init_help" = "recursive"; then
- # If there are subdirs, report their specific --help.
- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
- test -d "$ac_dir" ||
- { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
- continue
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
- cd "$ac_dir" || { ac_status=$?; continue; }
- # Check for guested configure.
- if test -f "$ac_srcdir/configure.gnu"; then
- echo &&
- $SHELL "$ac_srcdir/configure.gnu" --help=recursive
- elif test -f "$ac_srcdir/configure"; then
- echo &&
- $SHELL "$ac_srcdir/configure" --help=recursive
- else
- $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
- fi || ac_status=$?
- cd "$ac_pwd" || { ac_status=$?; break; }
- done
-fi
-
-test -n "$ac_init_help" && exit $ac_status
-if $ac_init_version; then
- cat <<\_ACEOF
-fence-agents configure 4.0.25
-generated by GNU Autoconf 2.69
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
- exit
-fi
-
-## ------------------------ ##
-## Autoconf initialization. ##
-## ------------------------ ##
-
-# ac_fn_c_try_compile LINENO
-# --------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext
- if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_compile
-
-# ac_fn_c_try_link LINENO
-# -----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_link ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext conftest$ac_exeext
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext && {
- test "$cross_compiling" = yes ||
- test -x conftest$ac_exeext
- }; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
- # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
- # interfere with the next link command; also delete a directory that is
- # left behind by Apple's compiler. We do this before executing the actions.
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_link
-
-# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists and can be compiled using the include files in
-# INCLUDES, setting the cache variable VAR accordingly.
-ac_fn_c_check_header_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- eval "$3=yes"
-else
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_compile
-
-# ac_fn_c_try_cpp LINENO
-# ----------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } > conftest.i && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_cpp
-
-# ac_fn_c_try_run LINENO
-# ----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
-ac_fn_c_try_run ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then :
- ac_retval=0
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=$ac_status
-fi
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_run
-
-# ac_fn_c_check_func LINENO FUNC VAR
-# ----------------------------------
-# Tests whether FUNC exists, setting the cache variable VAR accordingly
-ac_fn_c_check_func ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $2 innocuous_$2
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $2 (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $2
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $2 ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_$2 || defined __stub___$2
-choke me
-#endif
-
-int
-main ()
-{
-return $2 ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- eval "$3=yes"
-else
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_func
-
-# ac_fn_cxx_try_compile LINENO
-# ----------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext
- if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_try_compile
-
-# ac_fn_cxx_try_cpp LINENO
-# ------------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_cpp ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } > conftest.i && {
- test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- }; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_try_cpp
-
-# ac_fn_cxx_try_link LINENO
-# -------------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_link ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext conftest$ac_exeext
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext && {
- test "$cross_compiling" = yes ||
- test -x conftest$ac_exeext
- }; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
- # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
- # interfere with the next link command; also delete a directory that is
- # left behind by Apple's compiler. We do this before executing the actions.
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_try_link
-
-# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists, giving a warning if it cannot be compiled using
-# the include files in INCLUDES and setting the cache variable VAR
-# accordingly.
-ac_fn_c_check_header_mongrel ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if eval \${$3+:} false; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
- # Is the header compilable?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
-$as_echo_n "checking $2 usability... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_header_compiler=yes
-else
- ac_header_compiler=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
-$as_echo_n "checking $2 presence... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <$2>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- ac_header_preproc=yes
-else
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
- yes:no: )
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
- ;;
- no:yes:* )
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-( $as_echo "## --------------------------------------- ##
-## Report this to linux-cluster at redhat.com ##
-## --------------------------------------- ##"
- ) | sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- eval "$3=\$ac_header_compiler"
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_mongrel
-
-# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
-# -------------------------------------------
-# Tests whether TYPE exists after having included INCLUDES, setting cache
-# variable VAR accordingly.
-ac_fn_c_check_type ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- eval "$3=no"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-if (sizeof ($2))
- return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-if (sizeof (($2)))
- return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- eval "$3=yes"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_type
-
-# ac_fn_c_find_uintX_t LINENO BITS VAR
-# ------------------------------------
-# Finds an unsigned integer type with width BITS, setting cache variable VAR
-# accordingly.
-ac_fn_c_find_uintX_t ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5
-$as_echo_n "checking for uint$2_t... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- eval "$3=no"
- # Order is important - never check a type that is potentially smaller
- # than half of the expected target width.
- for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \
- 'unsigned long long int' 'unsigned short int' 'unsigned char'; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- case $ac_type in #(
- uint$2_t) :
- eval "$3=yes" ;; #(
- *) :
- eval "$3=\$ac_type" ;;
-esac
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- if eval test \"x\$"$3"\" = x"no"; then :
-
-else
- break
-fi
- done
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_find_uintX_t
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by fence-agents $as_me 4.0.25, which was
-generated by GNU Autoconf 2.69. Invocation command line was
-
- $ $0 $@
-
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
-
-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- $as_echo "PATH: $as_dir"
- done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
- for ac_arg
- do
- case $ac_arg in
- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- continue ;;
- *\'*)
- ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- case $ac_pass in
- 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
- 2)
- as_fn_append ac_configure_args1 " '$ac_arg'"
- if test $ac_must_keep_next = true; then
- ac_must_keep_next=false # Got value, back to normal.
- else
- case $ac_arg in
- *=* | --config-cache | -C | -disable-* | --disable-* \
- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
- | -with-* | --with-* | -without-* | --without-* | --x)
- case "$ac_configure_args0 " in
- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
- esac
- ;;
- -* ) ac_must_keep_next=true ;;
- esac
- fi
- as_fn_append ac_configure_args " '$ac_arg'"
- ;;
- esac
- done
-done
-{ ac_configure_args0=; unset ac_configure_args0;}
-{ ac_configure_args1=; unset ac_configure_args1;}
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log. We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
- # Save into config.log some information that might help in debugging.
- {
- echo
-
- $as_echo "## ---------------- ##
-## Cache variables. ##
-## ---------------- ##"
- echo
- # The following way of writing the cache mishandles newlines in values,
-(
- for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) { eval $ac_var=; unset $ac_var;} ;;
- esac ;;
- esac
- done
- (set) 2>&1 |
- case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- sed -n \
- "s/'\''/'\''\\\\'\'''\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
- ;; #(
- *)
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-)
- echo
-
- $as_echo "## ----------------- ##
-## Output variables. ##
-## ----------------- ##"
- echo
- for ac_var in $ac_subst_vars
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- $as_echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
-
- if test -n "$ac_subst_files"; then
- $as_echo "## ------------------- ##
-## File substitutions. ##
-## ------------------- ##"
- echo
- for ac_var in $ac_subst_files
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- $as_echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
- fi
-
- if test -s confdefs.h; then
- $as_echo "## ----------- ##
-## confdefs.h. ##
-## ----------- ##"
- echo
- cat confdefs.h
- echo
- fi
- test "$ac_signal" != 0 &&
- $as_echo "$as_me: caught signal $ac_signal"
- $as_echo "$as_me: exit $exit_status"
- } >&5
- rm -f core *.core core.conftest.* &&
- rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
- exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
- trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-
-$as_echo "/* confdefs.h */" > confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
-if test -n "$CONFIG_SITE"; then
- # We do not want a PATH search for config.site.
- case $CONFIG_SITE in #((
- -*) ac_site_file1=./$CONFIG_SITE;;
- */*) ac_site_file1=$CONFIG_SITE;;
- *) ac_site_file1=./$CONFIG_SITE;;
- esac
-elif test "x$prefix" != xNONE; then
- ac_site_file1=$prefix/share/config.site
- ac_site_file2=$prefix/etc/config.site
-else
- ac_site_file1=$ac_default_prefix/share/config.site
- ac_site_file2=$ac_default_prefix/etc/config.site
-fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
-do
- test "x$ac_site_file" = xNONE && continue
- if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
- sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file" \
- || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5; }
- fi
-done
-
-if test -r "$cache_file"; then
- # Some versions of bash will fail to source /dev/null (special files
- # actually), so we avoid doing that. DJGPP emulates it as a regular file.
- if test /dev/null != "$cache_file" && test -f "$cache_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . "$cache_file";;
- *) . "./$cache_file";;
- esac
- fi
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
- >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
- eval ac_old_set=\$ac_cv_env_${ac_var}_set
- eval ac_new_set=\$ac_env_${ac_var}_set
- eval ac_old_val=\$ac_cv_env_${ac_var}_value
- eval ac_new_val=\$ac_env_${ac_var}_value
- case $ac_old_set,$ac_new_set in
- set,)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,set)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,);;
- *)
- if test "x$ac_old_val" != "x$ac_new_val"; then
- # differences in whitespace do not lead to failure.
- ac_old_val_w=`echo x $ac_old_val`
- ac_new_val_w=`echo x $ac_new_val`
- if test "$ac_old_val_w" != "$ac_new_val_w"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- ac_cache_corrupted=:
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
- eval $ac_var=\$ac_old_val
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
-$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
-$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
- fi;;
- esac
- # Pass precious variables to config.status.
- if test "$ac_new_set" = set; then
- case $ac_new_val in
- *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
- *) ac_arg=$ac_var=$ac_new_val ;;
- esac
- case " $ac_configure_args " in
- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) as_fn_append ac_configure_args " '$ac_arg'" ;;
- esac
- fi
-done
-if $ac_cache_corrupted; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
-fi
-## -------------------- ##
-## Main body of script. ##
-## -------------------- ##
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-am__api_version='1.15'
-
-ac_aux_dir=
-for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
- if test -f "$ac_dir/install-sh"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f "$ac_dir/install.sh"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- elif test -f "$ac_dir/shtool"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/shtool install -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
-fi
-
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
-
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
-if test -z "$INSTALL"; then
-if ${ac_cv_path_install+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in #((
- ./ | .// | /[cC]/* | \
- /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
- ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
- /usr/ucb/* ) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
- if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- elif test $ac_prog = install &&
- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # program-specific install script used by HP pwplus--don't use.
- :
- else
- rm -rf conftest.one conftest.two conftest.dir
- echo one > conftest.one
- echo two > conftest.two
- mkdir conftest.dir
- if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
- test -s conftest.one && test -s conftest.two &&
- test -s conftest.dir/conftest.one &&
- test -s conftest.dir/conftest.two
- then
- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
- break 3
- fi
- fi
- fi
- done
- done
- ;;
-esac
-
- done
-IFS=$as_save_IFS
-
-rm -rf conftest.one conftest.two conftest.dir
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL=$ac_cv_path_install
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- INSTALL=$ac_install_sh
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
-$as_echo_n "checking whether build environment is sane... " >&6; }
-# Reject unsafe characters in $srcdir or the absolute working directory
-# name. Accept space and tab only in the latter.
-am_lf='
-'
-case `pwd` in
- *[\\\"\#\$\&\'\`$am_lf]*)
- as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
-esac
-case $srcdir in
- *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
- as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
-esac
-
-# Do 'set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- am_has_slept=no
- for am_try in 1 2; do
- echo "timestamp, slept: $am_has_slept" > conftest.file
- set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
- if test "$*" = "X"; then
- # -L didn't work.
- set X `ls -t "$srcdir/configure" conftest.file`
- fi
- if test "$*" != "X $srcdir/configure conftest.file" \
- && test "$*" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
- alias in your environment" "$LINENO" 5
- fi
- if test "$2" = conftest.file || test $am_try -eq 2; then
- break
- fi
- # Just in case.
- sleep 1
- am_has_slept=yes
- done
- test "$2" = conftest.file
- )
-then
- # Ok.
- :
-else
- as_fn_error $? "newly created file is older than distributed files!
-Check your system clock" "$LINENO" 5
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-# If we didn't sleep, we still need to ensure time stamps of config.status and
-# generated files are strictly newer.
-am_sleep_pid=
-if grep 'slept: no' conftest.file >/dev/null 2>&1; then
- ( sleep 1 ) &
- am_sleep_pid=$!
-fi
-
-rm -f conftest.file
-
-test "$program_prefix" != NONE &&
- program_transform_name="s&^&$program_prefix&;$program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
- program_transform_name="s&\$&$program_suffix&;$program_transform_name"
-# Double any \ or $.
-# By default was `s,x,x', remove it if useless.
-ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
-program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
-
-# Expand $ac_aux_dir to an absolute path.
-am_aux_dir=`cd "$ac_aux_dir" && pwd`
-
-if test x"${MISSING+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
- *)
- MISSING="\${SHELL} $am_aux_dir/missing" ;;
- esac
-fi
-# Use eval to expand $SHELL
-if eval "$MISSING --is-lightweight"; then
- am_missing_run="$MISSING "
-else
- am_missing_run=
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
-$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
-fi
-
-if test x"${install_sh+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
- *)
- install_sh="\${SHELL} $am_aux_dir/install-sh"
- esac
-fi
-
-# Installed binaries are usually stripped using 'strip' when the user
-# run "make install-strip". However 'strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the 'STRIP' environment variable to overrule this program.
-if test "$cross_compiling" != no; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_STRIP="strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_STRIP" = x; then
- STRIP=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- STRIP=$ac_ct_STRIP
- fi
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
-$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
-if test -z "$MKDIR_P"; then
- if ${ac_cv_path_mkdir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in mkdir gmkdir; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
- case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
- 'mkdir (GNU coreutils) '* | \
- 'mkdir (coreutils) '* | \
- 'mkdir (fileutils) '4.1*)
- ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
- break 3;;
- esac
- done
- done
- done
-IFS=$as_save_IFS
-
-fi
-
- test -d ./--version && rmdir ./--version
- if test "${ac_cv_path_mkdir+set}" = set; then
- MKDIR_P="$ac_cv_path_mkdir -p"
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for MKDIR_P within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- MKDIR_P="$ac_install_sh -d"
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
-$as_echo "$MKDIR_P" >&6; }
-
-for ac_prog in gawk mawk nawk awk
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AWK+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$AWK"; then
- ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_AWK="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-$as_echo "$AWK" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$AWK" && break
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
- @echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
- *@@@%%%=?*=@@@%%%*)
- eval ac_cv_prog_make_${ac_make}_set=yes;;
- *)
- eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- SET_MAKE=
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-
-# Check whether --enable-silent-rules was given.
-if test "${enable_silent_rules+set}" = set; then :
- enableval=$enable_silent_rules;
-fi
-
-case $enable_silent_rules in # (((
- yes) AM_DEFAULT_VERBOSITY=0;;
- no) AM_DEFAULT_VERBOSITY=1;;
- *) AM_DEFAULT_VERBOSITY=1;;
-esac
-am_make=${MAKE-make}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
-$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
-if ${am_cv_make_support_nested_variables+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if $as_echo 'TRUE=$(BAR$(V))
-BAR0=false
-BAR1=true
-V=1
-am__doit:
- @$(TRUE)
-.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
- am_cv_make_support_nested_variables=yes
-else
- am_cv_make_support_nested_variables=no
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
-$as_echo "$am_cv_make_support_nested_variables" >&6; }
-if test $am_cv_make_support_nested_variables = yes; then
- AM_V='$(V)'
- AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-else
- AM_V=$AM_DEFAULT_VERBOSITY
- AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-fi
-AM_BACKSLASH='\'
-
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
- # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
- # is not polluted with repeated "-I."
- am__isrc=' -I$(srcdir)'
- # test to see if srcdir already configured
- if test -f $srcdir/config.status; then
- as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
- fi
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-
-
-# Define the identity of the package.
- PACKAGE='fence-agents'
- VERSION='4.0.25'
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE "$PACKAGE"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define VERSION "$VERSION"
-_ACEOF
-
-# Some tools Automake needs.
-
-ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
-
-
-AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
-
-
-AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
-
-
-AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
-
-
-MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
-
-# For better backward compatibility. To be removed once Automake 1.9.x
-# dies out for good. For more background, see:
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
-mkdir_p='$(MKDIR_P)'
-
-# We need awk for the "check" target (and possibly the TAP driver). The
-# system "awk" is bad on some platforms.
-# Always define AMTAR for backward compatibility. Yes, it's still used
-# in the wild :-( We should find a proper way to deprecate it ...
-AMTAR='$${TAR-tar}'
-
-
-# We'll loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar pax cpio none'
-
-am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
-
-
-
-
-
-
-# POSIX will say in a future version that running "rm -f" with no argument
-# is OK; and we want to be able to make that assumption in our Makefile
-# recipes. So use an aggressive probe to check that the usage we want is
-# actually supported "in the wild" to an acceptable degree.
-# See automake bug#10828.
-# To make any issue more visible, cause the running configure to be aborted
-# by default if the 'rm' program in use doesn't match our expectations; the
-# user can still override this though.
-if rm -f && rm -fr && rm -rf; then : OK; else
- cat >&2 <<'END'
-Oops!
-
-Your 'rm' program seems unable to run without file operands specified
-on the command line, even when the '-f' option is present. This is contrary
-to the behaviour of most rm programs out there, and not conforming with
-the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
-
-Please tell bug-automake at gnu.org about your system, including the value
-of your $PATH and any error possibly output before this message. This
-can help us improve future automake versions.
-
-END
- if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
- echo 'Configuration will proceed anyway, since you have set the' >&2
- echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
- echo >&2
- else
- cat >&2 <<'END'
-Aborting the configuration process, to ensure you take notice of the issue.
-
-You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <http://www.gnu.org/software/coreutils/>.
-
-If you want to complete the configuration process using your problematic
-'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
-to "yes", and re-run configure.
-
-END
- as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
- fi
-fi
-
-
-
-case `pwd` in
- *\ * | *\ *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
-$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
-esac
-
-
-
-macro_version='2.4.2'
-macro_revision='1.3337'
-
-
-
-
-
-
-
-
-
-
-
-
-
-ltmain="$ac_aux_dir/ltmain.sh"
-
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
- as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if ${ac_cv_build+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
- ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-test "x$ac_build_alias" = x &&
- as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
-esac
-build=$ac_cv_build
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_build
-shift
-build_cpu=$1
-build_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-build_os=$*
-IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if ${ac_cv_host+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "x$host_alias" = x; then
- ac_cv_host=$ac_cv_build
-else
- ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
-esac
-host=$ac_cv_host
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_host
-shift
-host_cpu=$1
-host_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-host_os=$*
-IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-
-
-# Backslashify metacharacters that are still active within
-# double-quoted strings.
-sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
-ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
-$as_echo_n "checking how to print strings... " >&6; }
-# Test print first, because it will be a builtin if present.
-if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
- test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='print -r --'
-elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='printf %s\n'
-else
- # Use this function as a fallback that always works.
- func_fallback_echo ()
- {
- eval 'cat <<_LTECHO_EOF
-$1
-_LTECHO_EOF'
- }
- ECHO='func_fallback_echo'
-fi
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
- $ECHO ""
-}
-
-case "$ECHO" in
- printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
-$as_echo "printf" >&6; } ;;
- print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
-$as_echo "print -r" >&6; } ;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
-$as_echo "cat" >&6; } ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-DEPDIR="${am__leading_dot}deps"
-
-ac_config_commands="$ac_config_commands depfiles"
-
-
-am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
- @echo this is the am__doit target
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
-$as_echo_n "checking for style of include used by $am_make... " >&6; }
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from 'make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
- am__include=include
- am__quote=
- _am_result=GNU
- ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
- echo '.include "confinc"' > confmf
- case `$am_make -s -f confmf 2> /dev/null` in #(
- *the\ am__doit\ target*)
- am__include=.include
- am__quote="\""
- _am_result=BSD
- ;;
- esac
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
-$as_echo "$_am_result" >&6; }
-rm -f confinc confmf
-
-# Check whether --enable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then :
- enableval=$enable_dependency_tracking;
-fi
-
-if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
- am__nodep='_no'
-fi
- if test "x$enable_dependency_tracking" != xno; then
- AMDEP_TRUE=
- AMDEP_FALSE='#'
-else
- AMDEP_TRUE='#'
- AMDEP_FALSE=
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- fi
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl.exe
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl.exe
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_CC" && break
-done
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
- { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compiler $ac_option >&5") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- sed '10a\
-... rest of stderr output deleted ...
- 10q' conftest.err >conftest.er1
- cat conftest.er1 >&5
- fi
- rm -f conftest.er1 conftest.err
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-done
-
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-
-# The possible output files:
-ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
-
-ac_rmfiles=
-for ac_file in $ac_files
-do
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
- * ) ac_rmfiles="$ac_rmfiles $ac_file";;
- esac
-done
-rm -f $ac_rmfiles
-
-if { { ac_try="$ac_link_default"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link_default") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# in a Makefile. We should not override ac_cv_exeext if it was cached,
-# so that the user can short-circuit this test for compilers unknown to
-# Autoconf.
-for ac_file in $ac_files ''
-do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
- ;;
- [ab].out )
- # We found the default executable, but exeext='' is most
- # certainly right.
- break;;
- *.* )
- if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
- then :; else
- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- fi
- # We set ac_cv_exeext here because the later test for it is not
- # safe: cross compilers may not add the suffix if given an `-o'
- # argument, so we may need to know it at that point already.
- # Even if this section looks crufty: it has the advantage of
- # actually working.
- break;;
- * )
- break;;
- esac
-done
-test "$ac_cv_exeext" = no && ac_cv_exeext=
-
-else
- ac_file=''
-fi
-if test -z "$ac_file"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
-ac_exeext=$ac_cv_exeext
-
-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-$as_echo_n "checking for suffix of executables... " >&6; }
-if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- break;;
- * ) break;;
- esac
-done
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest conftest$ac_cv_exeext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-$as_echo "$ac_cv_exeext" >&6; }
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-FILE *f = fopen ("conftest.out", "w");
- return ferror (f) || fclose (f) != 0;
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files="$ac_clean_files conftest.out"
-# Check that the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
-if test "$cross_compiling" != yes; then
- { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- if { ac_try='./conftest$ac_cv_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5; }
- fi
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
-
-rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if ${ac_cv_objext+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then :
- for ac_file in conftest.o conftest.obj conftest.*; do
- test -f "$ac_file" || continue;
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
- break;;
- esac
-done
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_compiler_gnu=yes
-else
- ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
- GCC=yes
-else
- GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_save_c_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag=yes
- ac_cv_prog_cc_g=no
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-else
- CFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- ac_c_werror_flag=$ac_save_c_werror_flag
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
- test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
- xno)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
-$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
-if ${am_cv_prog_cc_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
- # Make sure it works both with $CC and with simple cc.
- # Following AC_PROG_CC_C_O, we do the test twice because some
- # compilers refuse to overwrite an existing .o file with -o,
- # though they will create one.
- am_cv_prog_cc_c_o=yes
- for am_i in 1 2; do
- if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
- ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } \
- && test -f conftest2.$ac_objext; then
- : OK
- else
- am_cv_prog_cc_c_o=no
- break
- fi
- done
- rm -f core conftest*
- unset am_i
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
-$as_echo "$am_cv_prog_cc_c_o" >&6; }
-if test "$am_cv_prog_cc_c_o" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-depcc="$CC" am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if ${am_cv_CC_dependencies_compiler_type+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named 'D' -- because '-MD' means "put the output
- # in D".
- rm -rf conftest.dir
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_CC_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
- fi
- am__universal=false
- case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac
-
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
- # Solaris 10 /bin/sh.
- echo '/* dummy */' > sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- # We check with '-c' and '-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle '-M -o', and we need to detect this. Also, some Intel
- # versions had trouble with output in subdirs.
- am__obj=sub/conftest.${OBJEXT-o}
- am__minus_obj="-o $am__obj"
- case $depmode in
- gcc)
- # This depmode causes a compiler race in universal mode.
- test "$am__universal" = false || continue
- ;;
- nosideeffect)
- # After this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested.
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- msvc7 | msvc7msys | msvisualcpp | msvcmsys)
- # This compiler won't grok '-c -o', but also, the minuso test has
- # not run yet. These depmodes are late enough in the game, and
- # so weak that their functioning should not be impacted.
- am__obj=conftest.${OBJEXT-o}
- am__minus_obj=
- ;;
- none) break ;;
- esac
- if depmode=$depmode \
- source=sub/conftest.c object=$am__obj \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_CC_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_CC_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-
- if
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
- am__fastdepCC_TRUE=
- am__fastdepCC_FALSE='#'
-else
- am__fastdepCC_TRUE='#'
- am__fastdepCC_FALSE=
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
-$as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if ${ac_cv_path_SED+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
- for ac_i in 1 2 3 4 5 6 7; do
- ac_script="$ac_script$as_nl$ac_script"
- done
- echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
- { ac_script=; unset ac_script;}
- if test -z "$SED"; then
- ac_path_SED_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in sed gsed; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_SED" || continue
-# Check for GNU ac_path_SED and select it if it is found.
- # Check for GNU $ac_path_SED
-case `"$ac_path_SED" --version 2>&1` in
-*GNU*)
- ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo '' >> "conftest.nl"
- "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_SED_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_SED="$ac_path_SED"
- ac_path_SED_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_SED_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_SED"; then
- as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
- fi
-else
- ac_cv_path_SED=$SED
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
-$as_echo "$ac_cv_path_SED" >&6; }
- SED="$ac_cv_path_SED"
- rm -f conftest.sed
-
-test -z "$SED" && SED=sed
-Xsed="$SED -e 1s/^X//"
-
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$GREP"; then
- ac_path_GREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in grep ggrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_GREP" || continue
-# Check for GNU ac_path_GREP and select it if it is found.
- # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'GREP' >> "conftest.nl"
- "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_GREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_GREP="$ac_path_GREP"
- ac_path_GREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_GREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_GREP"; then
- as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_GREP=$GREP
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if ${ac_cv_path_EGREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
- then ac_cv_path_EGREP="$GREP -E"
- else
- if test -z "$EGREP"; then
- ac_path_EGREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in egrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_EGREP" || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
- # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'EGREP' >> "conftest.nl"
- "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_EGREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_EGREP="$ac_path_EGREP"
- ac_path_EGREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_EGREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_EGREP"; then
- as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_EGREP=$EGREP
-fi
-
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
-$as_echo_n "checking for fgrep... " >&6; }
-if ${ac_cv_path_FGREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
- then ac_cv_path_FGREP="$GREP -F"
- else
- if test -z "$FGREP"; then
- ac_path_FGREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in fgrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
- as_fn_executable_p "$ac_path_FGREP" || continue
-# Check for GNU ac_path_FGREP and select it if it is found.
- # Check for GNU $ac_path_FGREP
-case `"$ac_path_FGREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'FGREP' >> "conftest.nl"
- "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_FGREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_FGREP="$ac_path_FGREP"
- ac_path_FGREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_FGREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_FGREP"; then
- as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_FGREP=$FGREP
-fi
-
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
-$as_echo "$ac_cv_path_FGREP" >&6; }
- FGREP="$ac_cv_path_FGREP"
-
-
-test -z "$GREP" && GREP=grep
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
- withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
-else
- with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-$as_echo_n "checking for ld used by $CC... " >&6; }
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [\\/]* | ?:[\\/]*)
- re_direlt='/[^/][^/]*/\.\./'
- # Canonicalize the pathname of ld
- ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
- while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
-fi
-if ${lt_cv_path_LD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$LD"; then
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- lt_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some variants of GNU ld only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
- *GNU* | *'with BFD'*)
- test "$with_gnu_ld" != no && break
- ;;
- *)
- test "$with_gnu_ld" != yes && break
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
-else
- lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if ${lt_cv_prog_gnu_ld+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- lt_cv_prog_gnu_ld=yes
- ;;
-*)
- lt_cv_prog_gnu_ld=no
- ;;
-esac
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-$as_echo "$lt_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
-$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
-if ${lt_cv_path_NM+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$NM"; then
- # Let the user override the test.
- lt_cv_path_NM="$NM"
-else
- lt_nm_to_check="${ac_tool_prefix}nm"
- if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
- lt_nm_to_check="$lt_nm_to_check nm"
- fi
- for lt_tmp_nm in $lt_nm_to_check; do
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- tmp_nm="$ac_dir/$lt_tmp_nm"
- if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- # Tru64's nm complains that /dev/null is an invalid object file
- case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
- */dev/null* | *'Invalid file or object type'*)
- lt_cv_path_NM="$tmp_nm -B"
- break
- ;;
- *)
- case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
- */dev/null*)
- lt_cv_path_NM="$tmp_nm -p"
- break
- ;;
- *)
- lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- ;;
- esac
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
- done
- : ${lt_cv_path_NM=no}
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
-$as_echo "$lt_cv_path_NM" >&6; }
-if test "$lt_cv_path_NM" != "no"; then
- NM="$lt_cv_path_NM"
-else
- # Didn't find any BSD compatible name lister, look for dumpbin.
- if test -n "$DUMPBIN"; then :
- # Let the user override the test.
- else
- if test -n "$ac_tool_prefix"; then
- for ac_prog in dumpbin "link -dump"
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DUMPBIN+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$DUMPBIN"; then
- ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-DUMPBIN=$ac_cv_prog_DUMPBIN
-if test -n "$DUMPBIN"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
-$as_echo "$DUMPBIN" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$DUMPBIN" && break
- done
-fi
-if test -z "$DUMPBIN"; then
- ac_ct_DUMPBIN=$DUMPBIN
- for ac_prog in dumpbin "link -dump"
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_DUMPBIN"; then
- ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
-if test -n "$ac_ct_DUMPBIN"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
-$as_echo "$ac_ct_DUMPBIN" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_DUMPBIN" && break
-done
-
- if test "x$ac_ct_DUMPBIN" = x; then
- DUMPBIN=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- DUMPBIN=$ac_ct_DUMPBIN
- fi
-fi
-
- case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
- *COFF*)
- DUMPBIN="$DUMPBIN -symbols"
- ;;
- *)
- DUMPBIN=:
- ;;
- esac
- fi
-
- if test "$DUMPBIN" != ":"; then
- NM="$DUMPBIN"
- fi
-fi
-test -z "$NM" && NM=nm
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
-$as_echo_n "checking the name lister ($NM) interface... " >&6; }
-if ${lt_cv_nm_interface+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_nm_interface="BSD nm"
- echo "int some_variable = 0;" > conftest.$ac_ext
- (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
- (eval "$ac_compile" 2>conftest.err)
- cat conftest.err >&5
- (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
- (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
- cat conftest.err >&5
- (eval echo "\"\$as_me:$LINENO: output\"" >&5)
- cat conftest.out >&5
- if $GREP 'External.*some_variable' conftest.out > /dev/null; then
- lt_cv_nm_interface="MS dumpbin"
- fi
- rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
-$as_echo "$lt_cv_nm_interface" >&6; }
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
-$as_echo_n "checking whether ln -s works... " >&6; }
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
-$as_echo "no, using $LN_S" >&6; }
-fi
-
-# find the maximum length of command line arguments
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
-$as_echo_n "checking the maximum length of command line arguments... " >&6; }
-if ${lt_cv_sys_max_cmd_len+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- i=0
- teststring="ABCD"
-
- case $build_os in
- msdosdjgpp*)
- # On DJGPP, this test can blow up pretty badly due to problems in libc
- # (any single argument exceeding 2000 bytes causes a buffer overrun
- # during glob expansion). Even if it were fixed, the result of this
- # check would be larger than it should be.
- lt_cv_sys_max_cmd_len=12288; # 12K is about right
- ;;
-
- gnu*)
- # Under GNU Hurd, this test is not required because there is
- # no limit to the length of command line arguments.
- # Libtool will interpret -1 as no limit whatsoever
- lt_cv_sys_max_cmd_len=-1;
- ;;
-
- cygwin* | mingw* | cegcc*)
- # On Win9x/ME, this test blows up -- it succeeds, but takes
- # about 5 minutes as the teststring grows exponentially.
- # Worse, since 9x/ME are not pre-emptively multitasking,
- # you end up with a "frozen" computer, even though with patience
- # the test eventually succeeds (with a max line length of 256k).
- # Instead, let's just punt: use the minimum linelength reported by
- # all of the supported platforms: 8192 (on NT/2K/XP).
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- mint*)
- # On MiNT this can take a long time and run out of memory.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- amigaos*)
- # On AmigaOS with pdksh, this test takes hours, literally.
- # So we just punt and use a minimum line length of 8192.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
- # This has been around since 386BSD, at least. Likely further.
- if test -x /sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
- elif test -x /usr/sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
- else
- lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
- fi
- # And add a safety zone
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- ;;
-
- interix*)
- # We know the value 262144 and hardcode it with a safety zone (like BSD)
- lt_cv_sys_max_cmd_len=196608
- ;;
-
- os2*)
- # The test takes a long time on OS/2.
- lt_cv_sys_max_cmd_len=8192
- ;;
-
- osf*)
- # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
- # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
- # nice to cause kernel panics so lets avoid the loop below.
- # First set a reasonable default.
- lt_cv_sys_max_cmd_len=16384
- #
- if test -x /sbin/sysconfig; then
- case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
- *1*) lt_cv_sys_max_cmd_len=-1 ;;
- esac
- fi
- ;;
- sco3.2v5*)
- lt_cv_sys_max_cmd_len=102400
- ;;
- sysv5* | sco5v6* | sysv4.2uw2*)
- kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
- if test -n "$kargmax"; then
- lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
- else
- lt_cv_sys_max_cmd_len=32768
- fi
- ;;
- *)
- lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
- if test -n "$lt_cv_sys_max_cmd_len"; then
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- else
- # Make teststring a little bigger before we do anything with it.
- # a 1K string should be a reasonable start.
- for i in 1 2 3 4 5 6 7 8 ; do
- teststring=$teststring$teststring
- done
- SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
- # If test is not a shell built-in, we'll probably end up computing a
- # maximum length that is only half of the actual maximum length, but
- # we can't tell.
- while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
- = "X$teststring$teststring"; } >/dev/null 2>&1 &&
- test $i != 17 # 1/2 MB should be enough
- do
- i=`expr $i + 1`
- teststring=$teststring$teststring
- done
- # Only check the string length outside the loop.
- lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
- teststring=
- # Add a significant safety factor because C++ compilers can tack on
- # massive amounts of additional arguments before passing them to the
- # linker. It appears as though 1/2 is a usable value.
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
- fi
- ;;
- esac
-
-fi
-
-if test -n $lt_cv_sys_max_cmd_len ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
-$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
-$as_echo "none" >&6; }
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-
-
-
-
-
-: ${CP="cp -f"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
-$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
- test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
- = c,a/b,b/c, \
- && eval 'test $(( 1 + 1 )) -eq 2 \
- && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
- && xsi_shell=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
-$as_echo "$xsi_shell" >&6; }
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
-$as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
- >/dev/null 2>&1 \
- && lt_shell_append=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
-$as_echo "$lt_shell_append" >&6; }
-
-
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- lt_unset=unset
-else
- lt_unset=false
-fi
-
-
-
-
-
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
- # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
- lt_SP2NL='tr \040 \012'
- lt_NL2SP='tr \015\012 \040\040'
- ;;
- *) # EBCDIC based system
- lt_SP2NL='tr \100 \n'
- lt_NL2SP='tr \r\n \100\100'
- ;;
-esac
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
-$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
-if ${lt_cv_to_host_file_cmd+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $host in
- *-*-mingw* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
- ;;
- *-*-cygwin* )
- lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
- ;;
- * ) # otherwise, assume *nix
- lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
- ;;
- esac
- ;;
- *-*-cygwin* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
- ;;
- *-*-cygwin* )
- lt_cv_to_host_file_cmd=func_convert_file_noop
- ;;
- * ) # otherwise, assume *nix
- lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
- ;;
- esac
- ;;
- * ) # unhandled hosts (and "normal" native builds)
- lt_cv_to_host_file_cmd=func_convert_file_noop
- ;;
-esac
-
-fi
-
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
-$as_echo "$lt_cv_to_host_file_cmd" >&6; }
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
-$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
-if ${lt_cv_to_tool_file_cmd+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- #assume ordinary cross tools, or native build.
-lt_cv_to_tool_file_cmd=func_convert_file_noop
-case $host in
- *-*-mingw* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
- ;;
- esac
- ;;
-esac
-
-fi
-
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
-$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
-$as_echo_n "checking for $LD option to reload object files... " >&6; }
-if ${lt_cv_ld_reload_flag+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_ld_reload_flag='-r'
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
-$as_echo "$lt_cv_ld_reload_flag" >&6; }
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- if test "$GCC" != yes; then
- reload_cmds=false
- fi
- ;;
- darwin*)
- if test "$GCC" = yes; then
- reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
- else
- reload_cmds='$LD$reload_flag -o $output$reload_objs'
- fi
- ;;
-esac
-
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
-set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OBJDUMP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$OBJDUMP"; then
- ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-OBJDUMP=$ac_cv_prog_OBJDUMP
-if test -n "$OBJDUMP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-$as_echo "$OBJDUMP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OBJDUMP"; then
- ac_ct_OBJDUMP=$OBJDUMP
- # Extract the first word of "objdump", so it can be a program name with args.
-set dummy objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_OBJDUMP"; then
- ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_OBJDUMP="objdump"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
-if test -n "$ac_ct_OBJDUMP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-$as_echo "$ac_ct_OBJDUMP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_OBJDUMP" = x; then
- OBJDUMP="false"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- OBJDUMP=$ac_ct_OBJDUMP
- fi
-else
- OBJDUMP="$ac_cv_prog_OBJDUMP"
-fi
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
-$as_echo_n "checking how to recognize dependent libraries... " >&6; }
-if ${lt_cv_deplibs_check_method+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix[4-9]*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-beos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-bsdi[45]*)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=/shlib/libc.so
- ;;
-
-cygwin*)
- # func_win32_libid is a shell function defined in ltmain.sh
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- ;;
-
-mingw* | pw32*)
- # Base MSYS/MinGW do not provide the 'file' command needed by
- # func_win32_libid shell function, so use a weaker test based on 'objdump',
- # unless we find 'file', for example because we are cross-compiling.
- # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
- if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- else
- # Keep this pattern in sync with the one in func_win32_libid.
- lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- fi
- ;;
-
-cegcc*)
- # use the weaker test based on 'objdump'. See mingw*.
- lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- ;;
-
-darwin* | rhapsody*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-freebsd* | dragonfly*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- case $host_cpu in
- i*86 )
- # Not sure whether the presence of OpenBSD here was a mistake.
- # Let's accept both of them until this is cleared up.
- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
- ;;
- esac
- else
- lt_cv_deplibs_check_method=pass_all
- fi
- ;;
-
-gnu*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-haiku*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-hpux10.20* | hpux11*)
- lt_cv_file_magic_cmd=/usr/bin/file
- case $host_cpu in
- ia64*)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
- lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
- ;;
- hppa*64*)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
- lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
- ;;
- *)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
- lt_cv_file_magic_test_file=/usr/lib/libc.sl
- ;;
- esac
- ;;
-
-interix[3-9]*)
- # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $LD in
- *-32|*"-32 ") libmagic=32-bit;;
- *-n32|*"-n32 ") libmagic=N32;;
- *-64|*"-64 ") libmagic=64-bit;;
- *) libmagic=never-match;;
- esac
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
- fi
- ;;
-
-newos6*)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/libnls.so
- ;;
-
-*nto* | *qnx*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-openbsd*)
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
- fi
- ;;
-
-osf3* | osf4* | osf5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-rdos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-solaris*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv4 | sysv4.3*)
- case $host_vendor in
- motorola)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- ;;
- ncr)
- lt_cv_deplibs_check_method=pass_all
- ;;
- sequent)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
- ;;
- sni)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
- lt_cv_file_magic_test_file=/lib/libc.so
- ;;
- siemens)
- lt_cv_deplibs_check_method=pass_all
- ;;
- pc)
- lt_cv_deplibs_check_method=pass_all
- ;;
- esac
- ;;
-
-tpf*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-esac
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
-$as_echo "$lt_cv_deplibs_check_method" >&6; }
-
-file_magic_glob=
-want_nocaseglob=no
-if test "$build" = "$host"; then
- case $host_os in
- mingw* | pw32*)
- if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
- want_nocaseglob=yes
- else
- file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
- fi
- ;;
- esac
-fi
-
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DLLTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$DLLTOOL"; then
- ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-DLLTOOL=$ac_cv_prog_DLLTOOL
-if test -n "$DLLTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
-$as_echo "$DLLTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_DLLTOOL"; then
- ac_ct_DLLTOOL=$DLLTOOL
- # Extract the first word of "dlltool", so it can be a program name with args.
-set dummy dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_DLLTOOL"; then
- ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_DLLTOOL="dlltool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
-if test -n "$ac_ct_DLLTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
-$as_echo "$ac_ct_DLLTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_DLLTOOL" = x; then
- DLLTOOL="false"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- DLLTOOL=$ac_ct_DLLTOOL
- fi
-else
- DLLTOOL="$ac_cv_prog_DLLTOOL"
-fi
-
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
-$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
-if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_sharedlib_from_linklib_cmd='unknown'
-
-case $host_os in
-cygwin* | mingw* | pw32* | cegcc*)
- # two different shell functions defined in ltmain.sh
- # decide which to use based on capabilities of $DLLTOOL
- case `$DLLTOOL --help 2>&1` in
- *--identify-strict*)
- lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
- ;;
- *)
- lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
- ;;
- esac
- ;;
-*)
- # fallback: assume linklib IS sharedlib
- lt_cv_sharedlib_from_linklib_cmd="$ECHO"
- ;;
-esac
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
-$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
-sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
-test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- for ac_prog in ar
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AR+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$AR"; then
- ac_cv_prog_AR="$AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-$as_echo "$AR" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$AR" && break
- done
-fi
-if test -z "$AR"; then
- ac_ct_AR=$AR
- for ac_prog in ar
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_AR+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_AR"; then
- ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_AR="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
-$as_echo "$ac_ct_AR" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_AR" && break
-done
-
- if test "x$ac_ct_AR" = x; then
- AR="false"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- AR=$ac_ct_AR
- fi
-fi
-
-: ${AR=ar}
-: ${AR_FLAGS=cru}
-
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
-$as_echo_n "checking for archiver @FILE support... " >&6; }
-if ${lt_cv_ar_at_file+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_ar_at_file=no
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- echo conftest.$ac_objext > conftest.lst
- lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
- (eval $lt_ar_try) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- if test "$ac_status" -eq 0; then
- # Ensure the archiver fails upon bogus file names.
- rm -f conftest.$ac_objext libconftest.a
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
- (eval $lt_ar_try) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- if test "$ac_status" -ne 0; then
- lt_cv_ar_at_file=@
- fi
- fi
- rm -f conftest.* libconftest.a
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
-$as_echo "$lt_cv_ar_at_file" >&6; }
-
-if test "x$lt_cv_ar_at_file" = xno; then
- archiver_list_spec=
-else
- archiver_list_spec=$lt_cv_ar_at_file
-fi
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_STRIP="strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_STRIP" = x; then
- STRIP=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- STRIP=$ac_ct_STRIP
- fi
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-test -z "$STRIP" && STRIP=:
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
- ac_ct_RANLIB=$RANLIB
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_RANLIB"; then
- ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_RANLIB="ranlib"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-$as_echo "$ac_ct_RANLIB" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_RANLIB" = x; then
- RANLIB=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- RANLIB=$ac_ct_RANLIB
- fi
-else
- RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-test -z "$RANLIB" && RANLIB=:
-
-
-
-
-
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
- case $host_os in
- openbsd*)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
- ;;
- *)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
- ;;
- esac
- old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
-fi
-
-case $host_os in
- darwin*)
- lock_old_archive_extraction=yes ;;
- *)
- lock_old_archive_extraction=no ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
-$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
-if ${lt_cv_sys_global_symbol_pipe+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix. What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[BCDEGRST]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
-
-# Define system-specific variables.
-case $host_os in
-aix*)
- symcode='[BCDT]'
- ;;
-cygwin* | mingw* | pw32* | cegcc*)
- symcode='[ABCDGISTW]'
- ;;
-hpux*)
- if test "$host_cpu" = ia64; then
- symcode='[ABCDEGRST]'
- fi
- ;;
-irix* | nonstopux*)
- symcode='[BCDEGRST]'
- ;;
-osf*)
- symcode='[BCDEGQRST]'
- ;;
-solaris*)
- symcode='[BDRT]'
- ;;
-sco3.2v5*)
- symcode='[DT]'
- ;;
-sysv4.2uw2*)
- symcode='[DT]'
- ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
- symcode='[ABDT]'
- ;;
-sysv4)
- symcode='[DFNSTU]'
- ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
- symcode='[ABCDGIRSTW]' ;;
-esac
-
-# Transform an extracted symbol line into a proper C declaration.
-# Some systems (esp. on ia64) link data and code symbols differently,
-# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
- opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
- ;;
-esac
-
-# Try without a prefix underscore, then with it.
-for ac_symprfx in "" "_"; do
-
- # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
- symxfrm="\\1 $ac_symprfx\\2 \\2"
-
- # Write the raw and C identifiers.
- if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- # Fake it for dumpbin and say T for any non-static function
- # and D for any global variable.
- # Also find C++ and __fastcall symbols from MSVC++,
- # which start with @ or ?.
- lt_cv_sys_global_symbol_pipe="$AWK '"\
-" {last_section=section; section=\$ 3};"\
-" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
-" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-" \$ 0!~/External *\|/{next};"\
-" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-" {if(hide[section]) next};"\
-" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-" s[1]~/^[@?]/{print s[1], s[1]; next};"\
-" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
-" ' prfx=^$ac_symprfx"
- else
- lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
- fi
- lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
-
- # Check to see that the pipe works correctly.
- pipe_works=no
-
- rm -f conftest*
- cat > conftest.$ac_ext <<_LT_EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(void);
-void nm_test_func(void){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-_LT_EOF
-
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- # Now try to grab the symbols.
- nlist=conftest.nm
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
- (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s "$nlist"; then
- # Try sorting and uniquifying the output.
- if sort "$nlist" | uniq > "$nlist"T; then
- mv -f "$nlist"T "$nlist"
- else
- rm -f "$nlist"T
- fi
-
- # Make sure that we snagged all the symbols we need.
- if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
- if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
- cat <<_LT_EOF > conftest.$ac_ext
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
- relocations are performed -- see ld's documentation on pseudo-relocs. */
-# define LT_DLSYM_CONST
-#elif defined(__osf__)
-/* This system does not cope well with relocations in const data. */
-# define LT_DLSYM_CONST
-#else
-# define LT_DLSYM_CONST const
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-_LT_EOF
- # Now generate the symbol file.
- eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-
- cat <<_LT_EOF >> conftest.$ac_ext
-
-/* The mapping between symbol names and symbols. */
-LT_DLSYM_CONST struct {
- const char *name;
- void *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[] =
-{
- { "@PROGRAM@", (void *) 0 },
-_LT_EOF
- $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
- cat <<\_LT_EOF >> conftest.$ac_ext
- {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
- return lt__PROGRAM__LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-_LT_EOF
- # Now try linking the two files.
- mv conftest.$ac_objext conftstm.$ac_objext
- lt_globsym_save_LIBS=$LIBS
- lt_globsym_save_CFLAGS=$CFLAGS
- LIBS="conftstm.$ac_objext"
- CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s conftest${ac_exeext}; then
- pipe_works=yes
- fi
- LIBS=$lt_globsym_save_LIBS
- CFLAGS=$lt_globsym_save_CFLAGS
- else
- echo "cannot find nm_test_func in $nlist" >&5
- fi
- else
- echo "cannot find nm_test_var in $nlist" >&5
- fi
- else
- echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
- fi
- else
- echo "$progname: failed program was:" >&5
- cat conftest.$ac_ext >&5
- fi
- rm -rf conftest* conftst*
-
- # Do not use the global_symbol_pipe unless it works.
- if test "$pipe_works" = yes; then
- break
- else
- lt_cv_sys_global_symbol_pipe=
- fi
-done
-
-fi
-
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
- lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
-fi
-
-# Response file support.
-if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- nm_file_list_spec='@'
-elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
- nm_file_list_spec='@'
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
-$as_echo_n "checking for sysroot... " >&6; }
-
-# Check whether --with-sysroot was given.
-if test "${with_sysroot+set}" = set; then :
- withval=$with_sysroot;
-else
- with_sysroot=no
-fi
-
-
-lt_sysroot=
-case ${with_sysroot} in #(
- yes)
- if test "$GCC" = yes; then
- lt_sysroot=`$CC --print-sysroot 2>/dev/null`
- fi
- ;; #(
- /*)
- lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
- ;; #(
- no|'')
- ;; #(
- *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5
-$as_echo "${with_sysroot}" >&6; }
- as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
- ;;
-esac
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
-$as_echo "${lt_sysroot:-no}" >&6; }
-
-
-
-
-
-# Check whether --enable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then :
- enableval=$enable_libtool_lock;
-fi
-
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- case `/usr/bin/file conftest.$ac_objext` in
- *ELF-32*)
- HPUX_IA64_MODE="32"
- ;;
- *ELF-64*)
- HPUX_IA64_MODE="64"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-*-*-irix6*)
- # Find out which ABI we are using.
- echo '#line '$LINENO' "configure"' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- if test "$lt_cv_prog_gnu_ld" = yes; then
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -melf32bsmip"
- ;;
- *N32*)
- LD="${LD-ld} -melf32bmipn32"
- ;;
- *64-bit*)
- LD="${LD-ld} -melf64bmip"
- ;;
- esac
- else
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -32"
- ;;
- *N32*)
- LD="${LD-ld} -n32"
- ;;
- *64-bit*)
- LD="${LD-ld} -64"
- ;;
- esac
- fi
- fi
- rm -rf conftest*
- ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- case `/usr/bin/file conftest.o` in
- *32-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_i386_fbsd"
- ;;
- x86_64-*linux*)
- LD="${LD-ld} -m elf_i386"
- ;;
- powerpc64le-*linux*)
- LD="${LD-ld} -m elf32lppclinux"
- ;;
- powerpc64-*linux*)
- LD="${LD-ld} -m elf32ppclinux"
- ;;
- s390x-*linux*)
- LD="${LD-ld} -m elf_s390"
- ;;
- sparc64-*linux*)
- LD="${LD-ld} -m elf32_sparc"
- ;;
- esac
- ;;
- *64-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_x86_64_fbsd"
- ;;
- x86_64-*linux*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- powerpcle-*linux*)
- LD="${LD-ld} -m elf64lppc"
- ;;
- powerpc-*linux*)
- LD="${LD-ld} -m elf64ppc"
- ;;
- s390*-*linux*|s390*-*tpf*)
- LD="${LD-ld} -m elf64_s390"
- ;;
- sparc*-*linux*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-*-*-sco3.2v5*)
- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -belf"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
-$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
-if ${lt_cv_cc_needs_belf+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- lt_cv_cc_needs_belf=yes
-else
- lt_cv_cc_needs_belf=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
-$as_echo "$lt_cv_cc_needs_belf" >&6; }
- if test x"$lt_cv_cc_needs_belf" != x"yes"; then
- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
- CFLAGS="$SAVE_CFLAGS"
- fi
- ;;
-*-*solaris*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- case `/usr/bin/file conftest.o` in
- *64-bit*)
- case $lt_cv_prog_gnu_ld in
- yes*)
- case $host in
- i?86-*-solaris*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- sparc*-*-solaris*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- # GNU ld 2.21 introduced _sol2 emulations. Use them if available.
- if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
- LD="${LD-ld}_sol2"
- fi
- ;;
- *)
- if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
- LD="${LD-ld} -64"
- fi
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-esac
-
-need_locks="$enable_libtool_lock"
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
-set dummy ${ac_tool_prefix}mt; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$MANIFEST_TOOL"; then
- ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
-if test -n "$MANIFEST_TOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
-$as_echo "$MANIFEST_TOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
- ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
- # Extract the first word of "mt", so it can be a program name with args.
-set dummy mt; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_MANIFEST_TOOL"; then
- ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
-if test -n "$ac_ct_MANIFEST_TOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
-$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_MANIFEST_TOOL" = x; then
- MANIFEST_TOOL=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
- fi
-else
- MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
-fi
-
-test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
-$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
-if ${lt_cv_path_mainfest_tool+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_path_mainfest_tool=no
- echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
- $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
- cat conftest.err >&5
- if $GREP 'Manifest Tool' conftest.out > /dev/null; then
- lt_cv_path_mainfest_tool=yes
- fi
- rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
-$as_echo "$lt_cv_path_mainfest_tool" >&6; }
-if test "x$lt_cv_path_mainfest_tool" != xyes; then
- MANIFEST_TOOL=:
-fi
-
-
-
-
-
-
- case $host_os in
- rhapsody* | darwin*)
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DSYMUTIL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$DSYMUTIL"; then
- ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-DSYMUTIL=$ac_cv_prog_DSYMUTIL
-if test -n "$DSYMUTIL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
-$as_echo "$DSYMUTIL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_DSYMUTIL"; then
- ac_ct_DSYMUTIL=$DSYMUTIL
- # Extract the first word of "dsymutil", so it can be a program name with args.
-set dummy dsymutil; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_DSYMUTIL"; then
- ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
-if test -n "$ac_ct_DSYMUTIL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
-$as_echo "$ac_ct_DSYMUTIL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_DSYMUTIL" = x; then
- DSYMUTIL=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- DSYMUTIL=$ac_ct_DSYMUTIL
- fi
-else
- DSYMUTIL="$ac_cv_prog_DSYMUTIL"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
-set dummy ${ac_tool_prefix}nmedit; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_NMEDIT+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$NMEDIT"; then
- ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-NMEDIT=$ac_cv_prog_NMEDIT
-if test -n "$NMEDIT"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
-$as_echo "$NMEDIT" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_NMEDIT"; then
- ac_ct_NMEDIT=$NMEDIT
- # Extract the first word of "nmedit", so it can be a program name with args.
-set dummy nmedit; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_NMEDIT"; then
- ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_NMEDIT="nmedit"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
-if test -n "$ac_ct_NMEDIT"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
-$as_echo "$ac_ct_NMEDIT" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_NMEDIT" = x; then
- NMEDIT=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- NMEDIT=$ac_ct_NMEDIT
- fi
-else
- NMEDIT="$ac_cv_prog_NMEDIT"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
-set dummy ${ac_tool_prefix}lipo; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_LIPO+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$LIPO"; then
- ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-LIPO=$ac_cv_prog_LIPO
-if test -n "$LIPO"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
-$as_echo "$LIPO" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_LIPO"; then
- ac_ct_LIPO=$LIPO
- # Extract the first word of "lipo", so it can be a program name with args.
-set dummy lipo; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_LIPO"; then
- ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_LIPO="lipo"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
-if test -n "$ac_ct_LIPO"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
-$as_echo "$ac_ct_LIPO" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_LIPO" = x; then
- LIPO=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- LIPO=$ac_ct_LIPO
- fi
-else
- LIPO="$ac_cv_prog_LIPO"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$OTOOL"; then
- ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-OTOOL=$ac_cv_prog_OTOOL
-if test -n "$OTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
-$as_echo "$OTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OTOOL"; then
- ac_ct_OTOOL=$OTOOL
- # Extract the first word of "otool", so it can be a program name with args.
-set dummy otool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_OTOOL"; then
- ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_OTOOL="otool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
-if test -n "$ac_ct_OTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
-$as_echo "$ac_ct_OTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_OTOOL" = x; then
- OTOOL=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- OTOOL=$ac_ct_OTOOL
- fi
-else
- OTOOL="$ac_cv_prog_OTOOL"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool64; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OTOOL64+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$OTOOL64"; then
- ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-OTOOL64=$ac_cv_prog_OTOOL64
-if test -n "$OTOOL64"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
-$as_echo "$OTOOL64" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OTOOL64"; then
- ac_ct_OTOOL64=$OTOOL64
- # Extract the first word of "otool64", so it can be a program name with args.
-set dummy otool64; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_OTOOL64"; then
- ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_OTOOL64="otool64"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
-if test -n "$ac_ct_OTOOL64"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
-$as_echo "$ac_ct_OTOOL64" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_OTOOL64" = x; then
- OTOOL64=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- OTOOL64=$ac_ct_OTOOL64
- fi
-else
- OTOOL64="$ac_cv_prog_OTOOL64"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
-$as_echo_n "checking for -single_module linker flag... " >&6; }
-if ${lt_cv_apple_cc_single_mod+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_apple_cc_single_mod=no
- if test -z "${LT_MULTI_MODULE}"; then
- # By default we will add the -single_module flag. You can override
- # by either setting the environment variable LT_MULTI_MODULE
- # non-empty at configure time, or by adding -multi_module to the
- # link flags.
- rm -rf libconftest.dylib*
- echo "int foo(void){return 1;}" > conftest.c
- echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&5
- $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
- -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
- _lt_result=$?
- # If there is a non-empty error log, and "single_module"
- # appears in it, assume the flag caused a linker warning
- if test -s conftest.err && $GREP single_module conftest.err; then
- cat conftest.err >&5
- # Otherwise, if the output was created with a 0 exit code from
- # the compiler, it worked.
- elif test -f libconftest.dylib && test $_lt_result -eq 0; then
- lt_cv_apple_cc_single_mod=yes
- else
- cat conftest.err >&5
- fi
- rm -rf libconftest.dylib*
- rm -f conftest.*
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
-$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
-$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
-if ${lt_cv_ld_exported_symbols_list+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_ld_exported_symbols_list=no
- save_LDFLAGS=$LDFLAGS
- echo "_main" > conftest.sym
- LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- lt_cv_ld_exported_symbols_list=yes
-else
- lt_cv_ld_exported_symbols_list=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
-$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
-$as_echo_n "checking for -force_load linker flag... " >&6; }
-if ${lt_cv_ld_force_load+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_ld_force_load=no
- cat > conftest.c << _LT_EOF
-int forced_loaded() { return 2;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
- $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
- echo "$AR cru libconftest.a conftest.o" >&5
- $AR cru libconftest.a conftest.o 2>&5
- echo "$RANLIB libconftest.a" >&5
- $RANLIB libconftest.a 2>&5
- cat > conftest.c << _LT_EOF
-int main() { return 0;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
- $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
- _lt_result=$?
- if test -s conftest.err && $GREP force_load conftest.err; then
- cat conftest.err >&5
- elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
- lt_cv_ld_force_load=yes
- else
- cat conftest.err >&5
- fi
- rm -f conftest.err libconftest.a conftest conftest.c
- rm -rf conftest.dSYM
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
-$as_echo "$lt_cv_ld_force_load" >&6; }
- case $host_os in
- rhapsody* | darwin1.[012])
- _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
- darwin1.*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
- darwin*) # darwin 5.x on
- # if running on 10.5 or later, the deployment target defaults
- # to the OS version, if on x86, and 10.4, the deployment
- # target defaults to 10.4. Don't you love it?
- case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
- 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
- 10.[012]*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
- 10.*)
- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
- esac
- ;;
- esac
- if test "$lt_cv_apple_cc_single_mod" = "yes"; then
- _lt_dar_single_mod='$single_module'
- fi
- if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
- _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
- else
- _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
- fi
- if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
- _lt_dsymutil='~$DSYMUTIL $lib || :'
- else
- _lt_dsymutil=
- fi
- ;;
- esac
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-$as_echo_n "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
- if ${ac_cv_prog_CPP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # Double quotes because CPP needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
- break
-fi
-
- done
- ac_cv_prog_CPP=$CPP
-
-fi
- CPP=$ac_cv_prog_CPP
-else
- ac_cv_prog_CPP=$CPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-$as_echo "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_header_stdc=yes
-else
- ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then :
- :
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- return 2;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-for ac_header in dlfcn.h
-do :
- ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_dlfcn_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DLFCN_H 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-
-# Set options
-
-
-
- enable_dlopen=no
-
-
- enable_win32_dll=no
-
-
- # Check whether --enable-shared was given.
-if test "${enable_shared+set}" = set; then :
- enableval=$enable_shared; p=${PACKAGE-default}
- case $enableval in
- yes) enable_shared=yes ;;
- no) enable_shared=no ;;
- *)
- enable_shared=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_shared=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
-else
- enable_shared=yes
-fi
-
-
-
-
-
-
-
-
-
- # Check whether --enable-static was given.
-if test "${enable_static+set}" = set; then :
- enableval=$enable_static; p=${PACKAGE-default}
- case $enableval in
- yes) enable_static=yes ;;
- no) enable_static=no ;;
- *)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_static=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
-else
- enable_static=yes
-fi
-
-
-
-
-
-
-
-
-
-
-# Check whether --with-pic was given.
-if test "${with_pic+set}" = set; then :
- withval=$with_pic; lt_p=${PACKAGE-default}
- case $withval in
- yes|no) pic_mode=$withval ;;
- *)
- pic_mode=default
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for lt_pkg in $withval; do
- IFS="$lt_save_ifs"
- if test "X$lt_pkg" = "X$lt_p"; then
- pic_mode=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
-else
- pic_mode=default
-fi
-
-
-test -z "$pic_mode" && pic_mode=default
-
-
-
-
-
-
-
- # Check whether --enable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then :
- enableval=$enable_fast_install; p=${PACKAGE-default}
- case $enableval in
- yes) enable_fast_install=yes ;;
- no) enable_fast_install=no ;;
- *)
- enable_fast_install=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_fast_install=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
-else
- enable_fast_install=yes
-fi
-
-
-
-
-
-
-
-
-
-
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-test -z "$LN_S" && LN_S="ln -s"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
-$as_echo_n "checking for objdir... " >&6; }
-if ${lt_cv_objdir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
- lt_cv_objdir=.libs
-else
- # MS-DOS does not allow filenames that begin with a dot.
- lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
-$as_echo "$lt_cv_objdir" >&6; }
-objdir=$lt_cv_objdir
-
-
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define LT_OBJDIR "$lt_cv_objdir/"
-_ACEOF
-
-
-
-
-case $host_os in
-aix3*)
- # AIX sometimes has problems with the GCC collect2 program. For some
- # reason, if we set the COLLECT_NAMES environment variable, the problems
- # vanish in a puff of smoke.
- if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
- fi
- ;;
-esac
-
-# Global variables:
-ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$LD" && LD=ld
-test -z "$ac_objext" && ac_objext=o
-
-for cc_temp in $compiler""; do
- case $cc_temp in
- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
- \-*) ;;
- *) break;;
- esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-
-
-# Only perform the check for file, if the check method requires it
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-case $deplibs_check_method in
-file_magic*)
- if test "$file_magic_cmd" = '$MAGIC_CMD'; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
-$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
-if ${lt_cv_path_MAGIC_CMD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $MAGIC_CMD in
-[\\/*] | ?:[\\/]*)
- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD="$MAGIC_CMD"
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
- for ac_dir in $ac_dummy; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/${ac_tool_prefix}file; then
- lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool at gnu.org
-
-_LT_EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$lt_save_ifs"
- MAGIC_CMD="$lt_save_MAGIC_CMD"
- ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-
-
-
-if test -z "$lt_cv_path_MAGIC_CMD"; then
- if test -n "$ac_tool_prefix"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
-$as_echo_n "checking for file... " >&6; }
-if ${lt_cv_path_MAGIC_CMD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $MAGIC_CMD in
-[\\/*] | ?:[\\/]*)
- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD="$MAGIC_CMD"
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
- for ac_dir in $ac_dummy; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/file; then
- lt_cv_path_MAGIC_CMD="$ac_dir/file"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool at gnu.org
-
-_LT_EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$lt_save_ifs"
- MAGIC_CMD="$lt_save_MAGIC_CMD"
- ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- else
- MAGIC_CMD=:
- fi
-fi
-
- fi
- ;;
-esac
-
-# Use C for the default configuration in the libtool script
-
-lt_save_CC="$CC"
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-objext=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-# Save the default compiler, since it gets overwritten when the other
-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-compiler_DEFAULT=$CC
-
-# save warnings/boilerplate of simple test code
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
-
-lt_prog_compiler_no_builtin_flag=
-
-if test "$GCC" = yes; then
- case $cc_basename in
- nvcc*)
- lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
- *)
- lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
- esac
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
-if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_rtti_exceptions=no
- ac_outfile=conftest.$ac_objext
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="-fno-rtti -fno-exceptions"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_rtti_exceptions=yes
- fi
- fi
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
-
-if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
- lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
-else
- :
-fi
-
-fi
-
-
-
-
-
-
- lt_prog_compiler_wl=
-lt_prog_compiler_pic=
-lt_prog_compiler_static=
-
-
- if test "$GCC" = yes; then
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_static='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static='-Bstatic'
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- lt_prog_compiler_pic='-fPIC'
- ;;
- m68k)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
- ;;
- esac
- ;;
-
- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- # Although the cygwin gcc ignores -fPIC, still need this for old-style
- # (--disable-auto-import) libraries
- lt_prog_compiler_pic='-DDLL_EXPORT'
- ;;
-
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- lt_prog_compiler_pic='-fno-common'
- ;;
-
- haiku*)
- # PIC is the default for Haiku.
- # The "-static" flag exists, but is broken.
- lt_prog_compiler_static=
- ;;
-
- hpux*)
- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
- # sets the default TLS model and affects inlining.
- case $host_cpu in
- hppa*64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic='-fPIC'
- ;;
- esac
- ;;
-
- interix[3-9]*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
-
- msdosdjgpp*)
- # Just because we use GCC doesn't mean we suddenly get shared libraries
- # on systems that don't support them.
- lt_prog_compiler_can_build_shared=no
- enable_shared=no
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- lt_prog_compiler_pic='-fPIC -shared'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- lt_prog_compiler_pic=-Kconform_pic
- fi
- ;;
-
- *)
- lt_prog_compiler_pic='-fPIC'
- ;;
- esac
-
- case $cc_basename in
- nvcc*) # Cuda Compiler Driver 2.2
- lt_prog_compiler_wl='-Xlinker '
- if test -n "$lt_prog_compiler_pic"; then
- lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
- fi
- ;;
- esac
- else
- # PORTME Check for flag to pass linker flags through the system compiler.
- case $host_os in
- aix*)
- lt_prog_compiler_wl='-Wl,'
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static='-Bstatic'
- else
- lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- lt_prog_compiler_pic='-DDLL_EXPORT'
- ;;
-
- hpux9* | hpux10* | hpux11*)
- lt_prog_compiler_wl='-Wl,'
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
- # not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic='+Z'
- ;;
- esac
- # Is there a better lt_prog_compiler_static that works with the bundled CC?
- lt_prog_compiler_static='${wl}-a ${wl}archive'
- ;;
-
- irix5* | irix6* | nonstopux*)
- lt_prog_compiler_wl='-Wl,'
- # PIC (with -KPIC) is the default.
- lt_prog_compiler_static='-non_shared'
- ;;
-
- linux* | k*bsd*-gnu | kopensolaris*-gnu)
- case $cc_basename in
- # old Intel for x86_64 which still supported -KPIC.
- ecc*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-static'
- ;;
- # icc used to be incompatible with GCC.
- # ICC 10 doesn't accept -KPIC any more.
- icc* | ifort*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fPIC'
- lt_prog_compiler_static='-static'
- ;;
- # Lahey Fortran 8.1.
- lf95*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='--shared'
- lt_prog_compiler_static='--static'
- ;;
- nagfor*)
- # NAG Fortran compiler
- lt_prog_compiler_wl='-Wl,-Wl,,'
- lt_prog_compiler_pic='-PIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
- pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group compilers (*not* the Pentium gcc compiler,
- # which looks to be a dead project)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fpic'
- lt_prog_compiler_static='-Bstatic'
- ;;
- ccc*)
- lt_prog_compiler_wl='-Wl,'
- # All Alpha code is PIC.
- lt_prog_compiler_static='-non_shared'
- ;;
- xl* | bgxl* | bgf* | mpixl*)
- # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-qpic'
- lt_prog_compiler_static='-qstaticlink'
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
- # Sun Fortran 8.3 passes all unrecognized flags to the linker
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- lt_prog_compiler_wl=''
- ;;
- *Sun\ F* | *Sun*Fortran*)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- lt_prog_compiler_wl='-Qoption ld '
- ;;
- *Sun\ C*)
- # Sun C 5.9
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- lt_prog_compiler_wl='-Wl,'
- ;;
- *Intel*\ [CF]*Compiler*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fPIC'
- lt_prog_compiler_static='-static'
- ;;
- *Portland\ Group*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fpic'
- lt_prog_compiler_static='-Bstatic'
- ;;
- esac
- ;;
- esac
- ;;
-
- newsos6)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- lt_prog_compiler_pic='-fPIC -shared'
- ;;
-
- osf3* | osf4* | osf5*)
- lt_prog_compiler_wl='-Wl,'
- # All OSF/1 code is PIC.
- lt_prog_compiler_static='-non_shared'
- ;;
-
- rdos*)
- lt_prog_compiler_static='-non_shared'
- ;;
-
- solaris*)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- case $cc_basename in
- f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
- lt_prog_compiler_wl='-Qoption ld ';;
- *)
- lt_prog_compiler_wl='-Wl,';;
- esac
- ;;
-
- sunos4*)
- lt_prog_compiler_wl='-Qoption ld '
- lt_prog_compiler_pic='-PIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- sysv4 | sysv4.2uw2* | sysv4.3*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec ;then
- lt_prog_compiler_pic='-Kconform_pic'
- lt_prog_compiler_static='-Bstatic'
- fi
- ;;
-
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- unicos*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_can_build_shared=no
- ;;
-
- uts4*)
- lt_prog_compiler_pic='-pic'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- *)
- lt_prog_compiler_can_build_shared=no
- ;;
- esac
- fi
-
-case $host_os in
- # For platforms which do not support PIC, -DPIC is meaningless:
- *djgpp*)
- lt_prog_compiler_pic=
- ;;
- *)
- lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
- ;;
-esac
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
-if ${lt_cv_prog_compiler_pic+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
-$as_echo "$lt_cv_prog_compiler_pic" >&6; }
-lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
-if ${lt_cv_prog_compiler_pic_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_pic_works=no
- ac_outfile=conftest.$ac_objext
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_pic_works=yes
- fi
- fi
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
-$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
-
-if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
- case $lt_prog_compiler_pic in
- "" | " "*) ;;
- *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
- esac
-else
- lt_prog_compiler_pic=
- lt_prog_compiler_can_build_shared=no
-fi
-
-fi
-
-
-
-
-
-
-
-
-
-
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if ${lt_cv_prog_compiler_static_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_static_works=no
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_static_works=yes
- fi
- else
- lt_cv_prog_compiler_static_works=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
-$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
-
-if test x"$lt_cv_prog_compiler_static_works" = xyes; then
- :
-else
- lt_prog_compiler_static=
-fi
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_c_o=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_c_o=yes
- fi
- fi
- chmod u+w . 2>&5
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_c_o=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_c_o=yes
- fi
- fi
- chmod u+w . 2>&5
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
-
-
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
- # do not overwrite the value of need_locks provided by the user
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
-$as_echo_n "checking if we can lock with hard links... " >&6; }
- hard_links=yes
- $RM conftest*
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- touch conftest.a
- ln conftest.a conftest.b 2>&5 || hard_links=no
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-$as_echo "$hard_links" >&6; }
- if test "$hard_links" = no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
- need_locks=warn
- fi
-else
- need_locks=no
-fi
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
-
- runpath_var=
- allow_undefined_flag=
- always_export_symbols=no
- archive_cmds=
- archive_expsym_cmds=
- compiler_needs_object=no
- enable_shared_with_static_runtimes=no
- export_dynamic_flag_spec=
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- hardcode_automatic=no
- hardcode_direct=no
- hardcode_direct_absolute=no
- hardcode_libdir_flag_spec=
- hardcode_libdir_separator=
- hardcode_minus_L=no
- hardcode_shlibpath_var=unsupported
- inherit_rpath=no
- link_all_deplibs=unknown
- module_cmds=
- module_expsym_cmds=
- old_archive_from_new_cmds=
- old_archive_from_expsyms_cmds=
- thread_safe_flag_spec=
- whole_archive_flag_spec=
- # include_expsyms should be a list of space-separated symbols to be *always*
- # included in the symbol list
- include_expsyms=
- # exclude_expsyms can be an extended regexp of symbols to exclude
- # it will be wrapped by ` (' and `)$', so one must not match beginning or
- # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
- # as well as any symbol that contains `d'.
- exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
- # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
- # platforms (ab)use it in PIC code, but their linkers get confused if
- # the symbol is explicitly referenced. Since portable code cannot
- # rely on this symbol name, it's probably fine to never include it in
- # preloaded symbol tables.
- # Exclude shared library initialization/finalization symbols.
- extract_expsyms_cmds=
-
- case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- # FIXME: the MSVC++ port hasn't been tested in a loooong time
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- if test "$GCC" != yes; then
- with_gnu_ld=no
- fi
- ;;
- interix*)
- # we just hope/assume this is gcc and not c89 (= MSVC++)
- with_gnu_ld=yes
- ;;
- openbsd*)
- with_gnu_ld=no
- ;;
- esac
-
- ld_shlibs=yes
-
- # On some targets, GNU ld is compatible enough with the native linker
- # that we're better off using the native interface for both.
- lt_use_gnu_ld_interface=no
- if test "$with_gnu_ld" = yes; then
- case $host_os in
- aix*)
- # The AIX port of GNU ld has always aspired to compatibility
- # with the native linker. However, as the warning in the GNU ld
- # block says, versions before 2.19.5* couldn't really create working
- # shared libraries, regardless of the interface used.
- case `$LD -v 2>&1` in
- *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
- *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
- *\ \(GNU\ Binutils\)\ [3-9]*) ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- fi
-
- if test "$lt_use_gnu_ld_interface" = yes; then
- # If archive_cmds runs LD, not CC, wlarc should be empty
- wlarc='${wl}'
-
- # Set some defaults for GNU ld with shared library support. These
- # are reset later if shared libraries are not supported. Putting them
- # here allows them to be overridden if necessary.
- runpath_var=LD_RUN_PATH
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- export_dynamic_flag_spec='${wl}--export-dynamic'
- # ancient GNU ld didn't support --whole-archive et. al.
- if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
- whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- whole_archive_flag_spec=
- fi
- supports_anon_versioning=no
- case `$LD -v 2>&1` in
- *GNU\ gold*) supports_anon_versioning=yes ;;
- *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
- *\ 2.11.*) ;; # other 2.11 versions
- *) supports_anon_versioning=yes ;;
- esac
-
- # See if GNU ld supports shared libraries.
- case $host_os in
- aix[3-9]*)
- # On AIX/PPC, the GNU linker is very broken
- if test "$host_cpu" != ia64; then
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.19, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support. If you
-*** really care for shared libraries, you may want to install binutils
-*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
-*** You will then need to restart the configuration process.
-
-_LT_EOF
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds=''
- ;;
- m68k)
- archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- ;;
- esac
- ;;
-
- beos*)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- allow_undefined_flag=unsupported
- # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
- # as there is no search path for DLLs.
- hardcode_libdir_flag_spec='-L$libdir'
- export_dynamic_flag_spec='${wl}--export-all-symbols'
- allow_undefined_flag=unsupported
- always_export_symbols=no
- enable_shared_with_static_runtimes=yes
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
- exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
-
- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file (1st line
- # is EXPORTS), use it as is; otherwise, prepend...
- archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- haiku*)
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- link_all_deplibs=yes
- ;;
-
- interix[3-9]*)
- hardcode_direct=no
- hardcode_shlibpath_var=no
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- export_dynamic_flag_spec='${wl}-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
-
- gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
- tmp_diet=no
- if test "$host_os" = linux-dietlibc; then
- case $cc_basename in
- diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
- esac
- fi
- if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
- && test "$tmp_diet" = no
- then
- tmp_addflag=' $pic_flag'
- tmp_sharedflag='-shared'
- case $cc_basename,$host_cpu in
- pgcc*) # Portland Group C compiler
- whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag'
- ;;
- pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group f77 and f90 compilers
- whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag -Mnomain' ;;
- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
- tmp_addflag=' -i_dynamic' ;;
- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
- tmp_addflag=' -i_dynamic -nofor_main' ;;
- ifc* | ifort*) # Intel Fortran compiler
- tmp_addflag=' -nofor_main' ;;
- lf95*) # Lahey Fortran 8.1
- whole_archive_flag_spec=
- tmp_sharedflag='--shared' ;;
- xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
- tmp_sharedflag='-qmkshrobj'
- tmp_addflag= ;;
- nvcc*) # Cuda Compiler Driver 2.2
- whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- compiler_needs_object=yes
- ;;
- esac
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*) # Sun C 5.9
- whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- compiler_needs_object=yes
- tmp_sharedflag='-G' ;;
- *Sun\ F*) # Sun Fortran 8.3
- tmp_sharedflag='-G' ;;
- esac
- archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
- if test "x$supports_anon_versioning" = xyes; then
- archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- fi
-
- case $cc_basename in
- xlf* | bgf* | bgxlf* | mpixlf*)
- # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
- whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
- if test "x$supports_anon_versioning" = xyes; then
- archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
- fi
- ;;
- esac
- else
- ld_shlibs=no
- fi
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
- wlarc=
- else
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- fi
- ;;
-
- solaris*)
- if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
- case `$LD -v 2>&1` in
- *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- ;;
- *)
- # For security reasons, it is highly recommended that you always
- # use absolute paths for naming shared libraries, and exclude the
- # DT_RUNPATH tag from executables and libraries. But doing so
- # requires that you compile everything twice, which is a pain.
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
- esac
- ;;
-
- sunos4*)
- archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- wlarc=
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- *)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
- esac
-
- if test "$ld_shlibs" = no; then
- runpath_var=
- hardcode_libdir_flag_spec=
- export_dynamic_flag_spec=
- whole_archive_flag_spec=
- fi
- else
- # PORTME fill in a description of your system's linker (not GNU ld)
- case $host_os in
- aix3*)
- allow_undefined_flag=unsupported
- always_export_symbols=yes
- archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
- # Note: this linker hardcodes the directories in LIBPATH if there
- # are no directories specified by -L.
- hardcode_minus_L=yes
- if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
- # Neither direct hardcoding nor static linking is supported with a
- # broken collect2.
- hardcode_direct=unsupported
- fi
- ;;
-
- aix[4-9]*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=""
- else
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- # Also, AIX nm treats weak defined symbols like other global
- # defined symbols, whereas GNU nm marks them as "W".
- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- else
- export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- fi
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
- for ld_flag in $LDFLAGS; do
- if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
- aix_use_runtimelinking=yes
- break
- fi
- done
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- archive_cmds=''
- hardcode_direct=yes
- hardcode_direct_absolute=yes
- hardcode_libdir_separator=':'
- link_all_deplibs=yes
- file_list_spec='${wl}-f,'
-
- if test "$GCC" = yes; then
- case $host_os in aix4.[012]|aix4.[012].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" &&
- strings "$collect2name" | $GREP resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- hardcode_direct=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- hardcode_minus_L=yes
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_libdir_separator=
- fi
- ;;
- esac
- shared_flag='-shared'
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag="$shared_flag "'${wl}-G'
- fi
- else
- # not using gcc
- if test "$host_cpu" = ia64; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag='${wl}-G'
- else
- shared_flag='${wl}-bM:SRE'
- fi
- fi
- fi
-
- export_dynamic_flag_spec='${wl}-bexpall'
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to export.
- always_export_symbols=yes
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- allow_undefined_flag='-berok'
- # Determine the default libpath from the value encoded in an
- # empty executable.
- if test "${lt_cv_aix_libpath+set}" = set; then
- aix_libpath=$lt_cv_aix_libpath
-else
- if ${lt_cv_aix_libpath_+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
- lt_aix_libpath_sed='
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\([^ ]*\) *$/\1/
- p
- }
- }'
- lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- # Check for a 64-bit object if we didn't find anything.
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_="/usr/lib:/lib"
- fi
-
-fi
-
- aix_libpath=$lt_cv_aix_libpath_
-fi
-
- hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
- archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
- if test "$host_cpu" = ia64; then
- hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
- allow_undefined_flag="-z nodefs"
- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
- if test "${lt_cv_aix_libpath+set}" = set; then
- aix_libpath=$lt_cv_aix_libpath
-else
- if ${lt_cv_aix_libpath_+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
- lt_aix_libpath_sed='
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\([^ ]*\) *$/\1/
- p
- }
- }'
- lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- # Check for a 64-bit object if we didn't find anything.
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_="/usr/lib:/lib"
- fi
-
-fi
-
- aix_libpath=$lt_cv_aix_libpath_
-fi
-
- hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- no_undefined_flag=' ${wl}-bernotok'
- allow_undefined_flag=' ${wl}-berok'
- if test "$with_gnu_ld" = yes; then
- # We only use this code for GNU lds that support --whole-archive.
- whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- else
- # Exported symbols can be pulled into shared objects from archives
- whole_archive_flag_spec='$convenience'
- fi
- archive_cmds_need_lc=yes
- # This is similar to how AIX traditionally builds its shared libraries.
- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds=''
- ;;
- m68k)
- archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- ;;
- esac
- ;;
-
- bsdi[45]*)
- export_dynamic_flag_spec=-rdynamic
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- case $cc_basename in
- cl*)
- # Native MSVC
- hardcode_libdir_flag_spec=' '
- allow_undefined_flag=unsupported
- always_export_symbols=yes
- file_list_spec='@'
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
- archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
- else
- sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
- fi~
- $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
- linknames='
- # The linker will not automatically build a static lib if we build a DLL.
- # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
- enable_shared_with_static_runtimes=yes
- exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
- # Don't use ranlib
- old_postinstall_cmds='chmod 644 $oldlib'
- postlink_cmds='lt_outputfile="@OUTPUT@"~
- lt_tool_outputfile="@TOOL_OUTPUT@"~
- case $lt_outputfile in
- *.exe|*.EXE) ;;
- *)
- lt_outputfile="$lt_outputfile.exe"
- lt_tool_outputfile="$lt_tool_outputfile.exe"
- ;;
- esac~
- if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
- $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
- $RM "$lt_outputfile.manifest";
- fi'
- ;;
- *)
- # Assume MSVC wrapper
- hardcode_libdir_flag_spec=' '
- allow_undefined_flag=unsupported
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
- # The linker will automatically build a .lib file if we build a DLL.
- old_archive_from_new_cmds='true'
- # FIXME: Should let the user specify the lib program.
- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
- enable_shared_with_static_runtimes=yes
- ;;
- esac
- ;;
-
- darwin* | rhapsody*)
-
-
- archive_cmds_need_lc=no
- hardcode_direct=no
- hardcode_automatic=yes
- hardcode_shlibpath_var=unsupported
- if test "$lt_cv_ld_force_load" = "yes"; then
- whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
-
- else
- whole_archive_flag_spec=''
- fi
- link_all_deplibs=yes
- allow_undefined_flag="$_lt_dar_allow_undefined"
- case $cc_basename in
- ifort*) _lt_dar_can_shared=yes ;;
- *) _lt_dar_can_shared=$GCC ;;
- esac
- if test "$_lt_dar_can_shared" = "yes"; then
- output_verbose_link_cmd=func_echo_all
- archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
- module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
- archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
- module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
-
- else
- ld_shlibs=no
- fi
-
- ;;
-
- dgux*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_shlibpath_var=no
- ;;
-
- # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
- # support. Future versions do this automatically, but an explicit c++rt0.o
- # does not break anything, and helps significantly (at the cost of a little
- # extra space).
- freebsd2.2*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- # Unfortunately, older versions of FreeBSD 2 do not have this feature.
- freebsd2.*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes
- hardcode_minus_L=yes
- hardcode_shlibpath_var=no
- ;;
-
- # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd* | dragonfly*)
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- hpux9*)
- if test "$GCC" = yes; then
- archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- fi
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_direct=yes
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- export_dynamic_flag_spec='${wl}-E'
- ;;
-
- hpux10*)
- if test "$GCC" = yes && test "$with_gnu_ld" = no; then
- archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
- fi
- if test "$with_gnu_ld" = no; then
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_direct=yes
- hardcode_direct_absolute=yes
- export_dynamic_flag_spec='${wl}-E'
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- fi
- ;;
-
- hpux11*)
- if test "$GCC" = yes && test "$with_gnu_ld" = no; then
- case $host_cpu in
- hppa*64*)
- archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- else
- case $host_cpu in
- hppa*64*)
- archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
-
- # Older versions of the 11.00 compiler do not understand -b yet
- # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
-$as_echo_n "checking if $CC understands -b... " >&6; }
-if ${lt_cv_prog_compiler__b+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler__b=no
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -b"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler__b=yes
- fi
- else
- lt_cv_prog_compiler__b=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
-$as_echo "$lt_cv_prog_compiler__b" >&6; }
-
-if test x"$lt_cv_prog_compiler__b" = xyes; then
- archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-else
- archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-fi
-
- ;;
- esac
- fi
- if test "$with_gnu_ld" = no; then
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- hardcode_direct=no
- hardcode_shlibpath_var=no
- ;;
- *)
- hardcode_direct=yes
- hardcode_direct_absolute=yes
- export_dynamic_flag_spec='${wl}-E'
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- ;;
- esac
- fi
- ;;
-
- irix5* | irix6* | nonstopux*)
- if test "$GCC" = yes; then
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- # Try to use the -exported_symbol ld option, if it does not
- # work, assume that -exports_file does not work either and
- # implicitly export all symbols.
- # This should be the same for all languages, so no per-tag cache variable.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
-$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
-if ${lt_cv_irix_exported_symbol+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int foo (void) { return 0; }
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- lt_cv_irix_exported_symbol=yes
-else
- lt_cv_irix_exported_symbol=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS="$save_LDFLAGS"
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
-$as_echo "$lt_cv_irix_exported_symbol" >&6; }
- if test "$lt_cv_irix_exported_symbol" = yes; then
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
- fi
- else
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
- fi
- archive_cmds_need_lc='no'
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- inherit_rpath=yes
- link_all_deplibs=yes
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
- else
- archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
- fi
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- newsos6)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_shlibpath_var=no
- ;;
-
- *nto* | *qnx*)
- ;;
-
- openbsd*)
- if test -f /usr/libexec/ld.so; then
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- hardcode_direct_absolute=yes
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- export_dynamic_flag_spec='${wl}-E'
- else
- case $host_os in
- openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-R$libdir'
- ;;
- *)
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- ;;
- esac
- fi
- else
- ld_shlibs=no
- fi
- ;;
-
- os2*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- allow_undefined_flag=unsupported
- archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
- old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
- ;;
-
- osf3*)
- if test "$GCC" = yes; then
- allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- allow_undefined_flag=' -expect_unresolved \*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- fi
- archive_cmds_need_lc='no'
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- ;;
-
- osf4* | osf5*) # as osf3* with the addition of -msym flag
- if test "$GCC" = yes; then
- allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- else
- allow_undefined_flag=' -expect_unresolved \*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
- $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
-
- # Both c and cxx compiler support -rpath directly
- hardcode_libdir_flag_spec='-rpath $libdir'
- fi
- archive_cmds_need_lc='no'
- hardcode_libdir_separator=:
- ;;
-
- solaris*)
- no_undefined_flag=' -z defs'
- if test "$GCC" = yes; then
- wlarc='${wl}'
- archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- else
- case `$CC -V 2>&1` in
- *"Compilers 5.0"*)
- wlarc=''
- archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
- ;;
- *)
- wlarc='${wl}'
- archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- ;;
- esac
- fi
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_shlibpath_var=no
- case $host_os in
- solaris2.[0-5] | solaris2.[0-5].*) ;;
- *)
- # The compiler driver will combine and reorder linker options,
- # but understands `-z linker_flag'. GCC discards it without `$wl',
- # but is careful enough not to reorder.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- if test "$GCC" = yes; then
- whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
- else
- whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
- fi
- ;;
- esac
- link_all_deplibs=yes
- ;;
-
- sunos4*)
- if test "x$host_vendor" = xsequent; then
- # Use $CC to link under sequent, because it throws in some extra .o
- # files that make .init and .fini sections work.
- archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
- fi
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_direct=yes
- hardcode_minus_L=yes
- hardcode_shlibpath_var=no
- ;;
-
- sysv4)
- case $host_vendor in
- sni)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes # is this really true???
- ;;
- siemens)
- ## LD is ld it makes a PLAMLIB
- ## CC just makes a GrossModule.
- archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
- reload_cmds='$CC -r -o $output$reload_objs'
- hardcode_direct=no
- ;;
- motorola)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=no #Motorola manual says yes, but my tests say they lie
- ;;
- esac
- runpath_var='LD_RUN_PATH'
- hardcode_shlibpath_var=no
- ;;
-
- sysv4.3*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_shlibpath_var=no
- export_dynamic_flag_spec='-Bexport'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_shlibpath_var=no
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- ld_shlibs=yes
- fi
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
- no_undefined_flag='${wl}-z,text'
- archive_cmds_need_lc=no
- hardcode_shlibpath_var=no
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We can NOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- no_undefined_flag='${wl}-z,text'
- allow_undefined_flag='${wl}-z,nodefs'
- archive_cmds_need_lc=no
- hardcode_shlibpath_var=no
- hardcode_libdir_flag_spec='${wl}-R,$libdir'
- hardcode_libdir_separator=':'
- link_all_deplibs=yes
- export_dynamic_flag_spec='${wl}-Bexport'
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- uts4*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_shlibpath_var=no
- ;;
-
- *)
- ld_shlibs=no
- ;;
- esac
-
- if test x$host_vendor = xsni; then
- case $host in
- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- export_dynamic_flag_spec='${wl}-Blargedynsym'
- ;;
- esac
- fi
- fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
-$as_echo "$ld_shlibs" >&6; }
-test "$ld_shlibs" = no && can_build_shared=no
-
-with_gnu_ld=$with_gnu_ld
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc" in
-x|xyes)
- # Assume -lc should be added
- archive_cmds_need_lc=yes
-
- if test "$enable_shared" = yes && test "$GCC" = yes; then
- case $archive_cmds in
- *'~'*)
- # FIXME: we may have to deal with multi-command sequences.
- ;;
- '$CC '*)
- # Test whether the compiler implicitly links with -lc since on some
- # systems, -lgcc has to come before -lc. If gcc already passes -lc
- # to ld, don't add -lc before -lgcc.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
-$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-if ${lt_cv_archive_cmds_need_lc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl
- pic_flag=$lt_prog_compiler_pic
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag
- allow_undefined_flag=
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
- (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- then
- lt_cv_archive_cmds_need_lc=no
- else
- lt_cv_archive_cmds_need_lc=yes
- fi
- allow_undefined_flag=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
-$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
- archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
- ;;
- esac
- fi
- ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
-$as_echo_n "checking dynamic linker characteristics... " >&6; }
-
-if test "$GCC" = yes; then
- case $host_os in
- darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
- *) lt_awk_arg="/^libraries:/" ;;
- esac
- case $host_os in
- mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;;
- *) lt_sed_strip_eq="s,=/,/,g" ;;
- esac
- lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
- case $lt_search_path_spec in
- *\;*)
- # if the path contains ";" then we assume it to be the separator
- # otherwise default to the standard path separator (i.e. ":") - it is
- # assumed that no part of a normal pathname contains ";" but that should
- # okay in the real world where ";" in dirpaths is itself problematic.
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
- ;;
- *)
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
- ;;
- esac
- # Ok, now we have the path, separated by spaces, we can step through it
- # and add multilib dir if necessary.
- lt_tmp_lt_search_path_spec=
- lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
- for lt_sys_path in $lt_search_path_spec; do
- if test -d "$lt_sys_path/$lt_multi_os_dir"; then
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
- else
- test -d "$lt_sys_path" && \
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
- fi
- done
- lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS=" "; FS="/|\n";} {
- lt_foo="";
- lt_count=0;
- for (lt_i = NF; lt_i > 0; lt_i--) {
- if ($lt_i != "" && $lt_i != ".") {
- if ($lt_i == "..") {
- lt_count++;
- } else {
- if (lt_count == 0) {
- lt_foo="/" $lt_i lt_foo;
- } else {
- lt_count--;
- }
- }
- }
- }
- if (lt_foo != "") { lt_freq[lt_foo]++; }
- if (lt_freq[lt_foo] == 1) { print lt_foo; }
-}'`
- # AWK program above erroneously prepends '/' to C:/dos/paths
- # for these hosts.
- case $host_os in
- mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
- $SED 's,/\([A-Za-z]:\),\1,g'` ;;
- esac
- sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
-else
- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
-
-aix[4-9]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- hardcode_into_libs=yes
- if test "$host_cpu" = ia64; then
- # AIX 5 supports IA64
- library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- else
- # With GCC up to 2.95.x, collect2 would create an import file
- # for dependence libraries. The import file would start with
- # the line `#! .'. This would cause the generated library to
- # depend on `.', always an invalid library. This was fixed in
- # development snapshots of GCC prior to 3.0.
- case $host_os in
- aix4 | aix4.[01] | aix4.[01].*)
- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
- echo ' yes '
- echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
- :
- else
- can_build_shared=no
- fi
- ;;
- esac
- # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
- # soname into executable. Probably we can add versioning support to
- # collect2, so additional links can be useful in future.
- if test "$aix_use_runtimelinking" = yes; then
- # If using run time linking (on AIX 4.2 or later) use lib<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- else
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='${libname}${release}.a $libname.a'
- soname_spec='${libname}${release}${shared_ext}$major'
- fi
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- case $host_cpu in
- powerpc)
- # Since July 2007 AmigaOS4 officially supports .so libraries.
- # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- ;;
- m68k)
- library_names_spec='$libname.ixlibrary $libname.a'
- # Create ${libname}_ixlibrary.a entries in /sys/libs.
- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
- ;;
- esac
- ;;
-
-beos*)
- library_names_spec='${libname}${shared_ext}'
- dynamic_linker="$host_os ld.so"
- shlibpath_var=LIBRARY_PATH
- ;;
-
-bsdi[45]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
- # the default ld.so.conf also contains /usr/contrib/lib and
- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
- # libtool to hard-code these into programs
- ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
- version_type=windows
- shrext_cmds=".dll"
- need_version=no
- need_lib_prefix=no
-
- case $GCC,$cc_basename in
- yes,*)
- # gcc
- library_names_spec='$libname.dll.a'
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname~
- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
- fi'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
- ;;
- mingw* | cegcc*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- ;;
-
- *,cl*)
- # Native MSVC
- libname_spec='$name'
- soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- library_names_spec='${libname}.dll.lib'
-
- case $build_os in
- mingw*)
- sys_lib_search_path_spec=
- lt_save_ifs=$IFS
- IFS=';'
- for lt_path in $LIB
- do
- IFS=$lt_save_ifs
- # Let DOS variable expansion print the short 8.3 style file name.
- lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
- sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
- done
- IFS=$lt_save_ifs
- # Convert to MSYS style.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
- ;;
- cygwin*)
- # Convert to unix form, then to dos form, then back to unix form
- # but this time dos style (no spaces!) so that the unix form looks
- # like /cygdrive/c/PROGRA~1:/cygdr...
- sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
- sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
- sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- ;;
- *)
- sys_lib_search_path_spec="$LIB"
- if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
- # It is most probably a Windows format PATH.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
- # FIXME: find the short name or the path components, as spaces are
- # common. (e.g. "Program Files" -> "PROGRA~1")
- ;;
- esac
-
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
- dynamic_linker='Win32 link.exe'
- ;;
-
- *)
- # Assume MSVC wrapper
- library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
- dynamic_linker='Win32 ld.exe'
- ;;
- esac
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
- soname_spec='${libname}${release}${major}$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
- ;;
-
-dgux*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-freebsd* | dragonfly*)
- # DragonFly does not have aout. When/if they implement a new
- # versioning mechanism, adjust this.
- if test -x /usr/bin/objformat; then
- objformat=`/usr/bin/objformat`
- else
- case $host_os in
- freebsd[23].*) objformat=aout ;;
- *) objformat=elf ;;
- esac
- fi
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2.*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.[01]* | freebsdelf3.[01]*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
- freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
- *) # from 4.6 on, and DragonFly
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- esac
- ;;
-
-gnu*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-haiku*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- dynamic_linker="$host_os runtime_loader"
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
- hardcode_into_libs=yes
- ;;
-
-hpux9* | hpux10* | hpux11*)
- # Give a soname corresponding to the major version so that dld.sl refuses to
- # link against other versions.
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- case $host_cpu in
- ia64*)
- shrext_cmds='.so'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.so"
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- if test "X$HPUX_IA64_MODE" = X32; then
- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
- else
- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
- fi
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- hppa*64*)
- shrext_cmds='.sl'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- *)
- shrext_cmds='.sl'
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=SHLIB_PATH
- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
- esac
- # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
- postinstall_cmds='chmod 555 $lib'
- # or fails outright, so override atomically:
- install_override_mode=555
- ;;
-
-interix[3-9]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $host_os in
- nonstopux*) version_type=nonstopux ;;
- *)
- if test "$lt_cv_prog_gnu_ld" = yes; then
- version_type=linux # correct to gnu/linux during the next big refactor
- else
- version_type=irix
- fi ;;
- esac
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
- case $host_os in
- irix5* | nonstopux*)
- libsuff= shlibsuff=
- ;;
- *)
- case $LD in # libtool.m4 will add one of these switches to LD
- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
- libsuff= shlibsuff= libmagic=32-bit;;
- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
- libsuff=32 shlibsuff=N32 libmagic=N32;;
- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
- libsuff=64 shlibsuff=64 libmagic=64-bit;;
- *) libsuff= shlibsuff= libmagic=never-match;;
- esac
- ;;
- esac
- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
- hardcode_into_libs=yes
- ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
- dynamic_linker=no
- ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
-
- # Some binutils ld are patched to set DT_RUNPATH
- if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_shlibpath_overrides_runpath=no
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
- lt_cv_shlibpath_overrides_runpath=yes
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
-
-fi
-
- shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-
- # This implies no fast_install, which is unacceptable.
- # Some rework will be needed to allow for fast_install
- # before this can be enabled.
- hardcode_into_libs=yes
-
- # Add ABI-specific directories to the system library path.
- sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
-
- # Append ld.so.conf contents to the search path
- if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
-
- fi
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='NetBSD ld.elf_so'
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
-
-newsos6)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-*nto* | *qnx*)
- version_type=qnx
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='ldqnx.so'
- ;;
-
-openbsd*)
- version_type=sunos
- sys_lib_dlsearch_path_spec="/usr/lib"
- need_lib_prefix=no
- # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
- case $host_os in
- openbsd3.3 | openbsd3.3.*) need_version=yes ;;
- *) need_version=no ;;
- esac
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- case $host_os in
- openbsd2.[89] | openbsd2.[89].*)
- shlibpath_overrides_runpath=no
- ;;
- *)
- shlibpath_overrides_runpath=yes
- ;;
- esac
- else
- shlibpath_overrides_runpath=yes
- fi
- ;;
-
-os2*)
- libname_spec='$name'
- shrext_cmds=".dll"
- need_lib_prefix=no
- library_names_spec='$libname${shared_ext} $libname.a'
- dynamic_linker='OS/2 ld.exe'
- shlibpath_var=LIBPATH
- ;;
-
-osf3* | osf4* | osf5*)
- version_type=osf
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
- ;;
-
-rdos*)
- dynamic_linker=no
- ;;
-
-solaris*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- # ldd complains unless libraries are executable
- postinstall_cmds='chmod +x $lib'
- ;;
-
-sunos4*)
- version_type=sunos
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- if test "$with_gnu_ld" = yes; then
- need_lib_prefix=no
- fi
- need_version=yes
- ;;
-
-sysv4 | sysv4.3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- case $host_vendor in
- sni)
- shlibpath_overrides_runpath=no
- need_lib_prefix=no
- runpath_var=LD_RUN_PATH
- ;;
- siemens)
- need_lib_prefix=no
- ;;
- motorola)
- need_lib_prefix=no
- need_version=no
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
- ;;
- esac
- ;;
-
-sysv4*MP*)
- if test -d /usr/nec ;then
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
- soname_spec='$libname${shared_ext}.$major'
- shlibpath_var=LD_LIBRARY_PATH
- fi
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- version_type=freebsd-elf
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- if test "$with_gnu_ld" = yes; then
- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
- else
- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
- case $host_os in
- sco3.2v5*)
- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
- ;;
- esac
- fi
- sys_lib_dlsearch_path_spec='/usr/lib'
- ;;
-
-tpf*)
- # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-uts4*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-*)
- dynamic_linker=no
- ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
- sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
- sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
-$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
-hardcode_action=
-if test -n "$hardcode_libdir_flag_spec" ||
- test -n "$runpath_var" ||
- test "X$hardcode_automatic" = "Xyes" ; then
-
- # We can hardcode non-existent directories.
- if test "$hardcode_direct" != no &&
- # If the only mechanism to avoid hardcoding is shlibpath_var, we
- # have to relink, otherwise we might link with an installed library
- # when we should be linking with a yet-to-be-installed one
- ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
- test "$hardcode_minus_L" != no; then
- # Linking always hardcodes the temporary library directory.
- hardcode_action=relink
- else
- # We can link without hardcoding, and we can hardcode nonexisting dirs.
- hardcode_action=immediate
- fi
-else
- # We cannot hardcode anything, or else we can only hardcode existing
- # directories.
- hardcode_action=unsupported
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
-$as_echo "$hardcode_action" >&6; }
-
-if test "$hardcode_action" = relink ||
- test "$inherit_rpath" = yes; then
- # Fast installation is not supported
- enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
- test "$enable_shared" = no; then
- # Fast installation is not necessary
- enable_fast_install=needless
-fi
-
-
-
-
-
-
- if test "x$enable_dlopen" != xyes; then
- enable_dlopen=unknown
- enable_dlopen_self=unknown
- enable_dlopen_self_static=unknown
-else
- lt_cv_dlopen=no
- lt_cv_dlopen_libs=
-
- case $host_os in
- beos*)
- lt_cv_dlopen="load_add_on"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
- ;;
-
- mingw* | pw32* | cegcc*)
- lt_cv_dlopen="LoadLibrary"
- lt_cv_dlopen_libs=
- ;;
-
- cygwin*)
- lt_cv_dlopen="dlopen"
- lt_cv_dlopen_libs=
- ;;
-
- darwin*)
- # if libdl is installed we need to link against it
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dl_dlopen=yes
-else
- ac_cv_lib_dl_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-
- lt_cv_dlopen="dyld"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
-
-fi
-
- ;;
-
- *)
- ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
-if test "x$ac_cv_func_shl_load" = xyes; then :
- lt_cv_dlopen="shl_load"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
-$as_echo_n "checking for shl_load in -ldld... " >&6; }
-if ${ac_cv_lib_dld_shl_load+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-int
-main ()
-{
-return shl_load ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dld_shl_load=yes
-else
- ac_cv_lib_dld_shl_load=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
-$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
-if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
- lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
-else
- ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
-if test "x$ac_cv_func_dlopen" = xyes; then :
- lt_cv_dlopen="dlopen"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dl_dlopen=yes
-else
- ac_cv_lib_dl_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
-$as_echo_n "checking for dlopen in -lsvld... " >&6; }
-if ${ac_cv_lib_svld_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_svld_dlopen=yes
-else
- ac_cv_lib_svld_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
-$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
-if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
-$as_echo_n "checking for dld_link in -ldld... " >&6; }
-if ${ac_cv_lib_dld_dld_link+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dld_link ();
-int
-main ()
-{
-return dld_link ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dld_dld_link=yes
-else
- ac_cv_lib_dld_dld_link=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
-$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
-if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
- lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
- ;;
- esac
-
- if test "x$lt_cv_dlopen" != xno; then
- enable_dlopen=yes
- else
- enable_dlopen=no
- fi
-
- case $lt_cv_dlopen in
- dlopen)
- save_CPPFLAGS="$CPPFLAGS"
- test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
- save_LDFLAGS="$LDFLAGS"
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
- save_LIBS="$LIBS"
- LIBS="$lt_cv_dlopen_libs $LIBS"
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
-$as_echo_n "checking whether a program can dlopen itself... " >&6; }
-if ${lt_cv_dlopen_self+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- lt_cv_dlopen_self=cross
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-/* When -fvisbility=hidden is used, assume the code has been annotated
- correspondingly for the symbols needed. */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
-
-int fnord () { return 42; }
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
-
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else
- {
- if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- else puts (dlerror ());
- }
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
-
- return status;
-}
-_LT_EOF
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
- (./conftest; exit; ) >&5 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
- x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
- x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
- esac
- else :
- # compilation failed
- lt_cv_dlopen_self=no
- fi
-fi
-rm -fr conftest*
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
-$as_echo "$lt_cv_dlopen_self" >&6; }
-
- if test "x$lt_cv_dlopen_self" = xyes; then
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
-$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
-if ${lt_cv_dlopen_self_static+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- lt_cv_dlopen_self_static=cross
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-/* When -fvisbility=hidden is used, assume the code has been annotated
- correspondingly for the symbols needed. */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
-
-int fnord () { return 42; }
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
-
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else
- {
- if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- else puts (dlerror ());
- }
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
-
- return status;
-}
-_LT_EOF
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
- (./conftest; exit; ) >&5 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
- x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
- x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
- esac
- else :
- # compilation failed
- lt_cv_dlopen_self_static=no
- fi
-fi
-rm -fr conftest*
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
-$as_echo "$lt_cv_dlopen_self_static" >&6; }
- fi
-
- CPPFLAGS="$save_CPPFLAGS"
- LDFLAGS="$save_LDFLAGS"
- LIBS="$save_LIBS"
- ;;
- esac
-
- case $lt_cv_dlopen_self in
- yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
- *) enable_dlopen_self=unknown ;;
- esac
-
- case $lt_cv_dlopen_self_static in
- yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
- *) enable_dlopen_self_static=unknown ;;
- esac
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-striplib=
-old_striplib=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
-$as_echo_n "checking whether stripping libraries is possible... " >&6; }
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
- test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
- test -z "$striplib" && striplib="$STRIP --strip-unneeded"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-# FIXME - insert some real tests, host_os isn't really good enough
- case $host_os in
- darwin*)
- if test -n "$STRIP" ; then
- striplib="$STRIP -x"
- old_striplib="$STRIP -S"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- fi
- ;;
- *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- ;;
- esac
-fi
-
-
-
-
-
-
-
-
-
-
-
-
- # Report which library types will actually be built
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
-$as_echo_n "checking if libtool supports shared libraries... " >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
-$as_echo "$can_build_shared" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
-$as_echo_n "checking whether to build shared libraries... " >&6; }
- test "$can_build_shared" = "no" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
-
- aix[4-9]*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
-$as_echo "$enable_shared" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
-$as_echo_n "checking whether to build static libraries... " >&6; }
- # Make sure either enable_shared or enable_static is yes.
- test "$enable_shared" = yes || enable_static=yes
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
-$as_echo "$enable_static" >&6; }
-
-
-
-
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC="$lt_save_CC"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ac_config_commands="$ac_config_commands libtool"
-
-
-
-
-# Only expand once:
-
-
-
-
-
-ac_config_headers="$ac_config_headers make/clusterautoconfig.h"
-
-
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-# Sanitize path
-
-if test "$prefix" = "NONE"; then
- prefix="/usr"
- if test "$localstatedir" = "\${prefix}/var"; then
- localstatedir="/var"
- fi
- if test "$sysconfdir" = "\${prefix}/etc"; then
- sysconfdir="/etc"
- fi
- if test "$libdir" = "\${exec_prefix}/lib"; then
- if test -e /usr/lib64; then
- libdir="/usr/lib64"
- else
- libdir="/usr/lib"
- fi
- fi
-fi
-
-case $exec_prefix in
- NONE) exec_prefix=$prefix;;
- prefix) exec_prefix=$prefix;;
-esac
-
-# Checks for programs.
-
-# check stolen from gnulib/m4/gnu-make.m4
-if ! ${MAKE-make} --version /cannot/make/this >/dev/null 2>&1; then
- as_fn_error $? "you don't seem to have GNU make; it is required" "$LINENO" 5
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- fi
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl.exe
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl.exe
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_CC" && break
-done
-
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
- { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compiler $ac_option >&5") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- sed '10a\
-... rest of stderr output deleted ...
- 10q' conftest.err >conftest.er1
- cat conftest.er1 >&5
- fi
- rm -f conftest.er1 conftest.err
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_compiler_gnu=yes
-else
- ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
- GCC=yes
-else
- GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_save_c_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag=yes
- ac_cv_prog_cc_g=no
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-else
- CFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- ac_c_werror_flag=$ac_save_c_werror_flag
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
- test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
- xno)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
-$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
-if ${am_cv_prog_cc_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
- # Make sure it works both with $CC and with simple cc.
- # Following AC_PROG_CC_C_O, we do the test twice because some
- # compilers refuse to overwrite an existing .o file with -o,
- # though they will create one.
- am_cv_prog_cc_c_o=yes
- for am_i in 1 2; do
- if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
- ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } \
- && test -f conftest2.$ac_objext; then
- : OK
- else
- am_cv_prog_cc_c_o=no
- break
- fi
- done
- rm -f core conftest*
- unset am_i
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
-$as_echo "$am_cv_prog_cc_c_o" >&6; }
-if test "$am_cv_prog_cc_c_o" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-depcc="$CC" am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if ${am_cv_CC_dependencies_compiler_type+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named 'D' -- because '-MD' means "put the output
- # in D".
- rm -rf conftest.dir
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_CC_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
- fi
- am__universal=false
- case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac
-
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
- # Solaris 10 /bin/sh.
- echo '/* dummy */' > sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- # We check with '-c' and '-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle '-M -o', and we need to detect this. Also, some Intel
- # versions had trouble with output in subdirs.
- am__obj=sub/conftest.${OBJEXT-o}
- am__minus_obj="-o $am__obj"
- case $depmode in
- gcc)
- # This depmode causes a compiler race in universal mode.
- test "$am__universal" = false || continue
- ;;
- nosideeffect)
- # After this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested.
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- msvc7 | msvc7msys | msvisualcpp | msvcmsys)
- # This compiler won't grok '-c -o', but also, the minuso test has
- # not run yet. These depmodes are late enough in the game, and
- # so weak that their functioning should not be impacted.
- am__obj=conftest.${OBJEXT-o}
- am__minus_obj=
- ;;
- none) break ;;
- esac
- if depmode=$depmode \
- source=sub/conftest.c object=$am__obj \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_CC_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_CC_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-
- if
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
- am__fastdepCC_TRUE=
- am__fastdepCC_FALSE='#'
-else
- am__fastdepCC_TRUE='#'
- am__fastdepCC_FALSE=
-fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
-$as_echo_n "checking whether ln -s works... " >&6; }
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
-$as_echo "no, using $LN_S" >&6; }
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
- @echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
- *@@@%%%=?*=@@@%%%*)
- eval ac_cv_prog_make_${ac_make}_set=yes;;
- *)
- eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- SET_MAKE=
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-for ac_prog in gawk mawk nawk awk
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AWK+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$AWK"; then
- ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_AWK="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-$as_echo "$AWK" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$AWK" && break
-done
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-if test -z "$CXX"; then
- if test -n "$CCC"; then
- CXX=$CCC
- else
- if test -n "$ac_tool_prefix"; then
- for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CXX"; then
- ac_cv_prog_CXX="$CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CXX=$ac_cv_prog_CXX
-if test -n "$CXX"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
-$as_echo "$CXX" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$CXX" && break
- done
-fi
-if test -z "$CXX"; then
- ac_ct_CXX=$CXX
- for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CXX"; then
- ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CXX="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
-if test -n "$ac_ct_CXX"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
-$as_echo "$ac_ct_CXX" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_CXX" && break
-done
-
- if test "x$ac_ct_CXX" = x; then
- CXX="g++"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CXX=$ac_ct_CXX
- fi
-fi
-
- fi
-fi
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
- { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compiler $ac_option >&5") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- sed '10a\
-... rest of stderr output deleted ...
- 10q' conftest.err >conftest.er1
- cat conftest.er1 >&5
- fi
- rm -f conftest.er1 conftest.err
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
-$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
-if ${ac_cv_cxx_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- ac_compiler_gnu=yes
-else
- ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
-$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
- GXX=yes
-else
- GXX=
-fi
-ac_test_CXXFLAGS=${CXXFLAGS+set}
-ac_save_CXXFLAGS=$CXXFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
-$as_echo_n "checking whether $CXX accepts -g... " >&6; }
-if ${ac_cv_prog_cxx_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_save_cxx_werror_flag=$ac_cxx_werror_flag
- ac_cxx_werror_flag=yes
- ac_cv_prog_cxx_g=no
- CXXFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- ac_cv_prog_cxx_g=yes
-else
- CXXFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-
-else
- ac_cxx_werror_flag=$ac_save_cxx_werror_flag
- CXXFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- ac_cv_prog_cxx_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
-$as_echo "$ac_cv_prog_cxx_g" >&6; }
-if test "$ac_test_CXXFLAGS" = set; then
- CXXFLAGS=$ac_save_CXXFLAGS
-elif test $ac_cv_prog_cxx_g = yes; then
- if test "$GXX" = yes; then
- CXXFLAGS="-g -O2"
- else
- CXXFLAGS="-g"
- fi
-else
- if test "$GXX" = yes; then
- CXXFLAGS="-O2"
- else
- CXXFLAGS=
- fi
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-depcc="$CXX" am_compiler_list=
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if ${am_cv_CXX_dependencies_compiler_type+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named 'D' -- because '-MD' means "put the output
- # in D".
- rm -rf conftest.dir
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
-
- am_cv_CXX_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
- fi
- am__universal=false
- case " $depcc " in #(
- *\ -arch\ *\ -arch\ *) am__universal=true ;;
- esac
-
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
- # Solaris 10 /bin/sh.
- echo '/* dummy */' > sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
-
- # We check with '-c' and '-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle '-M -o', and we need to detect this. Also, some Intel
- # versions had trouble with output in subdirs.
- am__obj=sub/conftest.${OBJEXT-o}
- am__minus_obj="-o $am__obj"
- case $depmode in
- gcc)
- # This depmode causes a compiler race in universal mode.
- test "$am__universal" = false || continue
- ;;
- nosideeffect)
- # After this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested.
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- msvc7 | msvc7msys | msvisualcpp | msvcmsys)
- # This compiler won't grok '-c -o', but also, the minuso test has
- # not run yet. These depmodes are late enough in the game, and
- # so weak that their functioning should not be impacted.
- am__obj=conftest.${OBJEXT-o}
- am__minus_obj=
- ;;
- none) break ;;
- esac
- if depmode=$depmode \
- source=sub/conftest.c object=$am__obj \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_CXX_dependencies_compiler_type=$depmode
- break
- fi
- fi
- done
-
- cd ..
- rm -rf conftest.dir
-else
- am_cv_CXX_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
-CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
-
- if
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
- am__fastdepCXX_TRUE=
- am__fastdepCXX_FALSE='#'
-else
- am__fastdepCXX_TRUE='#'
- am__fastdepCXX_FALSE=
-fi
-
-
-
-
-func_stripname_cnf ()
-{
- case ${2} in
- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
- esac
-} # func_stripname_cnf
-
- if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
- ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
- (test "X$CXX" != "Xg++"))) ; then
- ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
-$as_echo_n "checking how to run the C++ preprocessor... " >&6; }
-if test -z "$CXXCPP"; then
- if ${ac_cv_prog_CXXCPP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # Double quotes because CXXCPP needs to be expanded
- for CXXCPP in "$CXX -E" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
- break
-fi
-
- done
- ac_cv_prog_CXXCPP=$CXXCPP
-
-fi
- CXXCPP=$ac_cv_prog_CXXCPP
-else
- ac_cv_prog_CXXCPP=$CXXCPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
-$as_echo "$CXXCPP" >&6; }
-ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-else
- _lt_caught_CXX_error=yes
-fi
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-archive_cmds_need_lc_CXX=no
-allow_undefined_flag_CXX=
-always_export_symbols_CXX=no
-archive_expsym_cmds_CXX=
-compiler_needs_object_CXX=no
-export_dynamic_flag_spec_CXX=
-hardcode_direct_CXX=no
-hardcode_direct_absolute_CXX=no
-hardcode_libdir_flag_spec_CXX=
-hardcode_libdir_separator_CXX=
-hardcode_minus_L_CXX=no
-hardcode_shlibpath_var_CXX=unsupported
-hardcode_automatic_CXX=no
-inherit_rpath_CXX=no
-module_cmds_CXX=
-module_expsym_cmds_CXX=
-link_all_deplibs_CXX=unknown
-old_archive_cmds_CXX=$old_archive_cmds
-reload_flag_CXX=$reload_flag
-reload_cmds_CXX=$reload_cmds
-no_undefined_flag_CXX=
-whole_archive_flag_spec_CXX=
-enable_shared_with_static_runtimes_CXX=no
-
-# Source file extension for C++ test sources.
-ac_ext=cpp
-
-# Object file extension for compiled C++ test sources.
-objext=o
-objext_CXX=$objext
-
-# No sense in running all these tests if we already determined that
-# the CXX compiler isn't working. Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_caught_CXX_error" != yes; then
- # Code to be used in simple compile tests
- lt_simple_compile_test_code="int some_variable = 0;"
-
- # Code to be used in simple link tests
- lt_simple_link_test_code='int main(int, char *[]) { return(0); }'
-
- # ltmain only uses $CC for tagged configurations so make sure $CC is set.
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
- # save warnings/boilerplate of simple test code
- ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-
- ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-
-
- # Allow CC to be a program name with arguments.
- lt_save_CC=$CC
- lt_save_CFLAGS=$CFLAGS
- lt_save_LD=$LD
- lt_save_GCC=$GCC
- GCC=$GXX
- lt_save_with_gnu_ld=$with_gnu_ld
- lt_save_path_LD=$lt_cv_path_LD
- if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
- lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
- else
- $as_unset lt_cv_prog_gnu_ld
- fi
- if test -n "${lt_cv_path_LDCXX+set}"; then
- lt_cv_path_LD=$lt_cv_path_LDCXX
- else
- $as_unset lt_cv_path_LD
- fi
- test -z "${LDCXX+set}" || LD=$LDCXX
- CC=${CXX-"c++"}
- CFLAGS=$CXXFLAGS
- compiler=$CC
- compiler_CXX=$CC
- for cc_temp in $compiler""; do
- case $cc_temp in
- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
- \-*) ;;
- *) break;;
- esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-
-
- if test -n "$compiler"; then
- # We don't want -fno-exception when compiling C++ code, so set the
- # no_builtin_flag separately
- if test "$GXX" = yes; then
- lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
- else
- lt_prog_compiler_no_builtin_flag_CXX=
- fi
-
- if test "$GXX" = yes; then
- # Set up default GNU C++ configuration
-
-
-
-# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
- withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
-else
- with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-$as_echo_n "checking for ld used by $CC... " >&6; }
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [\\/]* | ?:[\\/]*)
- re_direlt='/[^/][^/]*/\.\./'
- # Canonicalize the pathname of ld
- ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
- while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
-fi
-if ${lt_cv_path_LD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$LD"; then
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- lt_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some variants of GNU ld only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
- *GNU* | *'with BFD'*)
- test "$with_gnu_ld" != no && break
- ;;
- *)
- test "$with_gnu_ld" != yes && break
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
-else
- lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if ${lt_cv_prog_gnu_ld+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- lt_cv_prog_gnu_ld=yes
- ;;
-*)
- lt_cv_prog_gnu_ld=no
- ;;
-esac
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-$as_echo "$lt_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-
-
-
-
-
- # Check if GNU C++ uses GNU ld as the underlying linker, since the
- # archiving commands below assume that GNU ld is being used.
- if test "$with_gnu_ld" = yes; then
- archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
- hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
- export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-
- # If archive_cmds runs LD, not CC, wlarc should be empty
- # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
- # investigate it a little bit more. (MM)
- wlarc='${wl}'
-
- # ancient GNU ld didn't support --whole-archive et. al.
- if eval "`$CC -print-prog-name=ld` --help 2>&1" |
- $GREP 'no-whole-archive' > /dev/null; then
- whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- whole_archive_flag_spec_CXX=
- fi
- else
- with_gnu_ld=no
- wlarc=
-
- # A generic and very simple default shared library creation
- # command for GNU C++ for the case where it uses the native
- # linker, instead of GNU ld. If possible, this setting should
- # overridden to take advantage of the native linker features on
- # the platform it is being used on.
- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
- fi
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
- else
- GXX=no
- with_gnu_ld=no
- wlarc=
- fi
-
- # PORTME: fill in a description of your system's C++ link characteristics
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
- ld_shlibs_CXX=yes
- case $host_os in
- aix3*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- aix[4-9]*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=""
- else
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
- for ld_flag in $LDFLAGS; do
- case $ld_flag in
- *-brtl*)
- aix_use_runtimelinking=yes
- break
- ;;
- esac
- done
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- archive_cmds_CXX=''
- hardcode_direct_CXX=yes
- hardcode_direct_absolute_CXX=yes
- hardcode_libdir_separator_CXX=':'
- link_all_deplibs_CXX=yes
- file_list_spec_CXX='${wl}-f,'
-
- if test "$GXX" = yes; then
- case $host_os in aix4.[012]|aix4.[012].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" &&
- strings "$collect2name" | $GREP resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- hardcode_direct_CXX=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- hardcode_minus_L_CXX=yes
- hardcode_libdir_flag_spec_CXX='-L$libdir'
- hardcode_libdir_separator_CXX=
- fi
- esac
- shared_flag='-shared'
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag="$shared_flag "'${wl}-G'
- fi
- else
- # not using gcc
- if test "$host_cpu" = ia64; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag='${wl}-G'
- else
- shared_flag='${wl}-bM:SRE'
- fi
- fi
- fi
-
- export_dynamic_flag_spec_CXX='${wl}-bexpall'
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to
- # export.
- always_export_symbols_CXX=yes
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- allow_undefined_flag_CXX='-berok'
- # Determine the default libpath from the value encoded in an empty
- # executable.
- if test "${lt_cv_aix_libpath+set}" = set; then
- aix_libpath=$lt_cv_aix_libpath
-else
- if ${lt_cv_aix_libpath__CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-
- lt_aix_libpath_sed='
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\([^ ]*\) *$/\1/
- p
- }
- }'
- lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- # Check for a 64-bit object if we didn't find anything.
- if test -z "$lt_cv_aix_libpath__CXX"; then
- lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- if test -z "$lt_cv_aix_libpath__CXX"; then
- lt_cv_aix_libpath__CXX="/usr/lib:/lib"
- fi
-
-fi
-
- aix_libpath=$lt_cv_aix_libpath__CXX
-fi
-
- hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
-
- archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
- if test "$host_cpu" = ia64; then
- hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
- allow_undefined_flag_CXX="-z nodefs"
- archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
- if test "${lt_cv_aix_libpath+set}" = set; then
- aix_libpath=$lt_cv_aix_libpath
-else
- if ${lt_cv_aix_libpath__CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-
- lt_aix_libpath_sed='
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\([^ ]*\) *$/\1/
- p
- }
- }'
- lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- # Check for a 64-bit object if we didn't find anything.
- if test -z "$lt_cv_aix_libpath__CXX"; then
- lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- if test -z "$lt_cv_aix_libpath__CXX"; then
- lt_cv_aix_libpath__CXX="/usr/lib:/lib"
- fi
-
-fi
-
- aix_libpath=$lt_cv_aix_libpath__CXX
-fi
-
- hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- no_undefined_flag_CXX=' ${wl}-bernotok'
- allow_undefined_flag_CXX=' ${wl}-berok'
- if test "$with_gnu_ld" = yes; then
- # We only use this code for GNU lds that support --whole-archive.
- whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- else
- # Exported symbols can be pulled into shared objects from archives
- whole_archive_flag_spec_CXX='$convenience'
- fi
- archive_cmds_need_lc_CXX=yes
- # This is similar to how AIX traditionally builds its shared
- # libraries.
- archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- fi
- ;;
-
- beos*)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- allow_undefined_flag_CXX=unsupported
- # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- else
- ld_shlibs_CXX=no
- fi
- ;;
-
- chorus*)
- case $cc_basename in
- *)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- esac
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- case $GXX,$cc_basename in
- ,cl* | no,cl*)
- # Native MSVC
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- hardcode_libdir_flag_spec_CXX=' '
- allow_undefined_flag_CXX=unsupported
- always_export_symbols_CXX=yes
- file_list_spec_CXX='@'
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
- archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
- else
- $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
- fi~
- $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
- linknames='
- # The linker will not automatically build a static lib if we build a DLL.
- # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true'
- enable_shared_with_static_runtimes_CXX=yes
- # Don't use ranlib
- old_postinstall_cmds_CXX='chmod 644 $oldlib'
- postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~
- lt_tool_outputfile="@TOOL_OUTPUT@"~
- case $lt_outputfile in
- *.exe|*.EXE) ;;
- *)
- lt_outputfile="$lt_outputfile.exe"
- lt_tool_outputfile="$lt_tool_outputfile.exe"
- ;;
- esac~
- func_to_tool_file "$lt_outputfile"~
- if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
- $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
- $RM "$lt_outputfile.manifest";
- fi'
- ;;
- *)
- # g++
- # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
- # as there is no search path for DLLs.
- hardcode_libdir_flag_spec_CXX='-L$libdir'
- export_dynamic_flag_spec_CXX='${wl}--export-all-symbols'
- allow_undefined_flag_CXX=unsupported
- always_export_symbols_CXX=no
- enable_shared_with_static_runtimes_CXX=yes
-
- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file (1st line
- # is EXPORTS), use it as is; otherwise, prepend...
- archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- ld_shlibs_CXX=no
- fi
- ;;
- esac
- ;;
- darwin* | rhapsody*)
-
-
- archive_cmds_need_lc_CXX=no
- hardcode_direct_CXX=no
- hardcode_automatic_CXX=yes
- hardcode_shlibpath_var_CXX=unsupported
- if test "$lt_cv_ld_force_load" = "yes"; then
- whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
-
- else
- whole_archive_flag_spec_CXX=''
- fi
- link_all_deplibs_CXX=yes
- allow_undefined_flag_CXX="$_lt_dar_allow_undefined"
- case $cc_basename in
- ifort*) _lt_dar_can_shared=yes ;;
- *) _lt_dar_can_shared=$GCC ;;
- esac
- if test "$_lt_dar_can_shared" = "yes"; then
- output_verbose_link_cmd=func_echo_all
- archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
- module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
- archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
- module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
- if test "$lt_cv_apple_cc_single_mod" != "yes"; then
- archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
- archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
- fi
-
- else
- ld_shlibs_CXX=no
- fi
-
- ;;
-
- dgux*)
- case $cc_basename in
- ec++*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- ghcx*)
- # Green Hills C++ Compiler
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- esac
- ;;
-
- freebsd2.*)
- # C++ shared libraries reported to be fairly broken before
- # switch to ELF
- ld_shlibs_CXX=no
- ;;
-
- freebsd-elf*)
- archive_cmds_need_lc_CXX=no
- ;;
-
- freebsd* | dragonfly*)
- # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
- # conventions
- ld_shlibs_CXX=yes
- ;;
-
- gnu*)
- ;;
-
- haiku*)
- archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- link_all_deplibs_CXX=yes
- ;;
-
- hpux9*)
- hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator_CXX=:
- export_dynamic_flag_spec_CXX='${wl}-E'
- hardcode_direct_CXX=yes
- hardcode_minus_L_CXX=yes # Not in the search PATH,
- # but as the default
- # location of the library.
-
- case $cc_basename in
- CC*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- aCC*)
- archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test "$GXX" = yes; then
- archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- fi
- ;;
- esac
- ;;
-
- hpux10*|hpux11*)
- if test $with_gnu_ld = no; then
- hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator_CXX=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- ;;
- *)
- export_dynamic_flag_spec_CXX='${wl}-E'
- ;;
- esac
- fi
- case $host_cpu in
- hppa*64*|ia64*)
- hardcode_direct_CXX=no
- hardcode_shlibpath_var_CXX=no
- ;;
- *)
- hardcode_direct_CXX=yes
- hardcode_direct_absolute_CXX=yes
- hardcode_minus_L_CXX=yes # Not in the search PATH,
- # but as the default
- # location of the library.
- ;;
- esac
-
- case $cc_basename in
- CC*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- aCC*)
- case $host_cpu in
- hppa*64*)
- archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- ia64*)
- archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- *)
- archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- esac
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test "$GXX" = yes; then
- if test $with_gnu_ld = no; then
- case $host_cpu in
- hppa*64*)
- archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- ia64*)
- archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- *)
- archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- esac
- fi
- else
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- fi
- ;;
- esac
- ;;
-
- interix[3-9]*)
- hardcode_direct_CXX=no
- hardcode_shlibpath_var_CXX=no
- hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
- export_dynamic_flag_spec_CXX='${wl}-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
- irix5* | irix6*)
- case $cc_basename in
- CC*)
- # SGI C++
- archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-
- # Archives containing C++ object files must be created using
- # "CC -ar", where "CC" is the IRIX C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'
- ;;
- *)
- if test "$GXX" = yes; then
- if test "$with_gnu_ld" = no; then
- archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
- fi
- fi
- link_all_deplibs_CXX=yes
- ;;
- esac
- hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator_CXX=:
- inherit_rpath_CXX=yes
- ;;
-
- linux* | k*bsd*-gnu | kopensolaris*-gnu)
- case $cc_basename in
- KCC*)
- # Kuck and Associates, Inc. (KAI) C++ Compiler
-
- # KCC will only create a shared library if the output file
- # ends with ".so" (or ".sl" for HP-UX), so rename the library
- # to its proper name (with version) after linking.
- archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
- archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-
- hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
- export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-
- # Archives containing C++ object files must be created using
- # "CC -Bstatic", where "CC" is the KAI C++ compiler.
- old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
- ;;
- icpc* | ecpc* )
- # Intel C++
- with_gnu_ld=yes
- # version 8.0 and above of icpc choke on multiply defined symbols
- # if we add $predep_objects and $postdep_objects, however 7.1 and
- # earlier do not add the objects themselves.
- case `$CC -V 2>&1` in
- *"Version 7."*)
- archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
- *) # Version 8.0 or newer
- tmp_idyn=
- case $host_cpu in
- ia64*) tmp_idyn=' -i_dynamic';;
- esac
- archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
- esac
- archive_cmds_need_lc_CXX=no
- hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
- export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
- whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- ;;
- pgCC* | pgcpp*)
- # Portland Group C++ compiler
- case `$CC -V` in
- *pgCC\ [1-5].* | *pgcpp\ [1-5].*)
- prelink_cmds_CXX='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
- compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
- old_archive_cmds_CXX='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
- $RANLIB $oldlib'
- archive_cmds_CXX='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
- archive_expsym_cmds_CXX='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
- ;;
- *) # Version 6 and above use weak symbols
- archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
- archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
- ;;
- esac
-
- hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
- export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
- whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- ;;
- cxx*)
- # Compaq C++
- archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
-
- runpath_var=LD_RUN_PATH
- hardcode_libdir_flag_spec_CXX='-rpath $libdir'
- hardcode_libdir_separator_CXX=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
- ;;
- xl* | mpixl* | bgxl*)
- # IBM XL 8.0 on PPC, with GNU ld
- hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
- export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
- archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- if test "x$supports_anon_versioning" = xyes; then
- archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- fi
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
- no_undefined_flag_CXX=' -zdefs'
- archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
- hardcode_libdir_flag_spec_CXX='-R$libdir'
- whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- compiler_needs_object_CXX=yes
-
- # Not sure whether something based on
- # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
- # would be better.
- output_verbose_link_cmd='func_echo_all'
-
- # Archives containing C++ object files must be created using
- # "CC -xar", where "CC" is the Sun C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
- ;;
- esac
- ;;
- esac
- ;;
-
- lynxos*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
-
- m88k*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
-
- mvs*)
- case $cc_basename in
- cxx*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- esac
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
- wlarc=
- hardcode_libdir_flag_spec_CXX='-R$libdir'
- hardcode_direct_CXX=yes
- hardcode_shlibpath_var_CXX=no
- fi
- # Workaround some broken pre-1.5 toolchains
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
- ;;
-
- *nto* | *qnx*)
- ld_shlibs_CXX=yes
- ;;
-
- openbsd2*)
- # C++ shared libraries are fairly broken
- ld_shlibs_CXX=no
- ;;
-
- openbsd*)
- if test -f /usr/libexec/ld.so; then
- hardcode_direct_CXX=yes
- hardcode_shlibpath_var_CXX=no
- hardcode_direct_absolute_CXX=yes
- archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
- hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
- export_dynamic_flag_spec_CXX='${wl}-E'
- whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- fi
- output_verbose_link_cmd=func_echo_all
- else
- ld_shlibs_CXX=no
- fi
- ;;
-
- osf3* | osf4* | osf5*)
- case $cc_basename in
- KCC*)
- # Kuck and Associates, Inc. (KAI) C++ Compiler
-
- # KCC will only create a shared library if the output file
- # ends with ".so" (or ".sl" for HP-UX), so rename the library
- # to its proper name (with version) after linking.
- archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
- hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
- hardcode_libdir_separator_CXX=:
-
- # Archives containing C++ object files must be created using
- # the KAI C++ compiler.
- case $host in
- osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;;
- *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;;
- esac
- ;;
- RCC*)
- # Rational C++ 2.4.1
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- cxx*)
- case $host in
- osf3*)
- allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
- ;;
- *)
- allow_undefined_flag_CXX=' -expect_unresolved \*'
- archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
- echo "-hidden">> $lib.exp~
- $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
- $RM $lib.exp'
- hardcode_libdir_flag_spec_CXX='-rpath $libdir'
- ;;
- esac
-
- hardcode_libdir_separator_CXX=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
- allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
- case $host in
- osf3*)
- archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- ;;
- *)
- archive_cmds_CXX='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- ;;
- esac
-
- hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator_CXX=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
- else
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- fi
- ;;
- esac
- ;;
-
- psos*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
-
- sunos4*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.x
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- lcc*)
- # Lucid
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- esac
- ;;
-
- solaris*)
- case $cc_basename in
- CC* | sunCC*)
- # Sun C++ 4.2, 5.x and Centerline C++
- archive_cmds_need_lc_CXX=yes
- no_undefined_flag_CXX=' -zdefs'
- archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- hardcode_libdir_flag_spec_CXX='-R$libdir'
- hardcode_shlibpath_var_CXX=no
- case $host_os in
- solaris2.[0-5] | solaris2.[0-5].*) ;;
- *)
- # The compiler driver will combine and reorder linker options,
- # but understands `-z linker_flag'.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract'
- ;;
- esac
- link_all_deplibs_CXX=yes
-
- output_verbose_link_cmd='func_echo_all'
-
- # Archives containing C++ object files must be created using
- # "CC -xar", where "CC" is the Sun C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
- ;;
- gcx*)
- # Green Hills C++ Compiler
- archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-
- # The C++ compiler must be used to create the archive.
- old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
- ;;
- *)
- # GNU C++ compiler with Solaris linker
- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
- no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
- if $CC --version | $GREP -v '^2\.7' > /dev/null; then
- archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
- archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
- else
- # g++ 2.7 appears to require `-G' NOT `-shared' on this
- # platform.
- archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
- archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
- fi
-
- hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
- case $host_os in
- solaris2.[0-5] | solaris2.[0-5].*) ;;
- *)
- whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
- ;;
- esac
- fi
- ;;
- esac
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
- no_undefined_flag_CXX='${wl}-z,text'
- archive_cmds_need_lc_CXX=no
- hardcode_shlibpath_var_CXX=no
- runpath_var='LD_RUN_PATH'
-
- case $cc_basename in
- CC*)
- archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We can NOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- no_undefined_flag_CXX='${wl}-z,text'
- allow_undefined_flag_CXX='${wl}-z,nodefs'
- archive_cmds_need_lc_CXX=no
- hardcode_shlibpath_var_CXX=no
- hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir'
- hardcode_libdir_separator_CXX=':'
- link_all_deplibs_CXX=yes
- export_dynamic_flag_spec_CXX='${wl}-Bexport'
- runpath_var='LD_RUN_PATH'
-
- case $cc_basename in
- CC*)
- archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~
- '"$old_archive_cmds_CXX"
- reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~
- '"$reload_cmds_CXX"
- ;;
- *)
- archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- ;;
-
- tandem*)
- case $cc_basename in
- NCC*)
- # NonStop-UX NCC 3.20
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- esac
- ;;
-
- vxworks*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
-
- *)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- esac
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
-$as_echo "$ld_shlibs_CXX" >&6; }
- test "$ld_shlibs_CXX" = no && can_build_shared=no
-
- GCC_CXX="$GXX"
- LD_CXX="$LD"
-
- ## CAVEAT EMPTOR:
- ## There is no encapsulation within the following macros, do not change
- ## the running order or otherwise move them around unless you know exactly
- ## what you are doing...
- # Dependencies to place before and after the object being linked:
-predep_objects_CXX=
-postdep_objects_CXX=
-predeps_CXX=
-postdeps_CXX=
-compiler_lib_search_path_CXX=
-
-cat > conftest.$ac_ext <<_LT_EOF
-class Foo
-{
-public:
- Foo (void) { a = 0; }
-private:
- int a;
-};
-_LT_EOF
-
-
-_lt_libdeps_save_CFLAGS=$CFLAGS
-case "$CC $CFLAGS " in #(
-*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
-*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
-*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
-esac
-
-if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- # Parse the compiler output and extract the necessary
- # objects, libraries and library flags.
-
- # Sentinel used to keep track of whether or not we are before
- # the conftest object file.
- pre_test_object_deps_done=no
-
- for p in `eval "$output_verbose_link_cmd"`; do
- case ${prev}${p} in
-
- -L* | -R* | -l*)
- # Some compilers place space between "-{L,R}" and the path.
- # Remove the space.
- if test $p = "-L" ||
- test $p = "-R"; then
- prev=$p
- continue
- fi
-
- # Expand the sysroot to ease extracting the directories later.
- if test -z "$prev"; then
- case $p in
- -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
- -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
- -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
- esac
- fi
- case $p in
- =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
- esac
- if test "$pre_test_object_deps_done" = no; then
- case ${prev} in
- -L | -R)
- # Internal compiler library paths should come after those
- # provided the user. The postdeps already come after the
- # user supplied libs so there is no need to process them.
- if test -z "$compiler_lib_search_path_CXX"; then
- compiler_lib_search_path_CXX="${prev}${p}"
- else
- compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}"
- fi
- ;;
- # The "-l" case would never come before the object being
- # linked, so don't bother handling this case.
- esac
- else
- if test -z "$postdeps_CXX"; then
- postdeps_CXX="${prev}${p}"
- else
- postdeps_CXX="${postdeps_CXX} ${prev}${p}"
- fi
- fi
- prev=
- ;;
-
- *.lto.$objext) ;; # Ignore GCC LTO objects
- *.$objext)
- # This assumes that the test object file only shows up
- # once in the compiler output.
- if test "$p" = "conftest.$objext"; then
- pre_test_object_deps_done=yes
- continue
- fi
-
- if test "$pre_test_object_deps_done" = no; then
- if test -z "$predep_objects_CXX"; then
- predep_objects_CXX="$p"
- else
- predep_objects_CXX="$predep_objects_CXX $p"
- fi
- else
- if test -z "$postdep_objects_CXX"; then
- postdep_objects_CXX="$p"
- else
- postdep_objects_CXX="$postdep_objects_CXX $p"
- fi
- fi
- ;;
-
- *) ;; # Ignore the rest.
-
- esac
- done
-
- # Clean up.
- rm -f a.out a.exe
-else
- echo "libtool.m4: error: problem compiling CXX test program"
-fi
-
-$RM -f confest.$objext
-CFLAGS=$_lt_libdeps_save_CFLAGS
-
-# PORTME: override above test on systems where it is broken
-case $host_os in
-interix[3-9]*)
- # Interix 3.5 installs completely hosed .la files for C++, so rather than
- # hack all around it, let's just trust "g++" to DTRT.
- predep_objects_CXX=
- postdep_objects_CXX=
- postdeps_CXX=
- ;;
-
-linux*)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
-
- # The more standards-conforming stlport4 library is
- # incompatible with the Cstd library. Avoid specifying
- # it if it's in CXXFLAGS. Ignore libCrun as
- # -library=stlport4 depends on it.
- case " $CXX $CXXFLAGS " in
- *" -library=stlport4 "*)
- solaris_use_stlport4=yes
- ;;
- esac
-
- if test "$solaris_use_stlport4" != yes; then
- postdeps_CXX='-library=Cstd -library=Crun'
- fi
- ;;
- esac
- ;;
-
-solaris*)
- case $cc_basename in
- CC* | sunCC*)
- # The more standards-conforming stlport4 library is
- # incompatible with the Cstd library. Avoid specifying
- # it if it's in CXXFLAGS. Ignore libCrun as
- # -library=stlport4 depends on it.
- case " $CXX $CXXFLAGS " in
- *" -library=stlport4 "*)
- solaris_use_stlport4=yes
- ;;
- esac
-
- # Adding this requires a known-good setup of shared libraries for
- # Sun compiler versions before 5.6, else PIC objects from an old
- # archive will be linked into the output, leading to subtle bugs.
- if test "$solaris_use_stlport4" != yes; then
- postdeps_CXX='-library=Cstd -library=Crun'
- fi
- ;;
- esac
- ;;
-esac
-
-
-case " $postdeps_CXX " in
-*" -lc "*) archive_cmds_need_lc_CXX=no ;;
-esac
- compiler_lib_search_dirs_CXX=
-if test -n "${compiler_lib_search_path_CXX}"; then
- compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- lt_prog_compiler_wl_CXX=
-lt_prog_compiler_pic_CXX=
-lt_prog_compiler_static_CXX=
-
-
- # C++ specific cases for pic, static, wl, etc.
- if test "$GXX" = yes; then
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_static_CXX='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static_CXX='-Bstatic'
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- lt_prog_compiler_pic_CXX='-fPIC'
- ;;
- m68k)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
- ;;
- esac
- ;;
-
- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
- mingw* | cygwin* | os2* | pw32* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- # Although the cygwin gcc ignores -fPIC, still need this for old-style
- # (--disable-auto-import) libraries
- lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
- ;;
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- lt_prog_compiler_pic_CXX='-fno-common'
- ;;
- *djgpp*)
- # DJGPP does not support shared libraries at all
- lt_prog_compiler_pic_CXX=
- ;;
- haiku*)
- # PIC is the default for Haiku.
- # The "-static" flag exists, but is broken.
- lt_prog_compiler_static_CXX=
- ;;
- interix[3-9]*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
- sysv4*MP*)
- if test -d /usr/nec; then
- lt_prog_compiler_pic_CXX=-Kconform_pic
- fi
- ;;
- hpux*)
- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
- # sets the default TLS model and affects inlining.
- case $host_cpu in
- hppa*64*)
- ;;
- *)
- lt_prog_compiler_pic_CXX='-fPIC'
- ;;
- esac
- ;;
- *qnx* | *nto*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- lt_prog_compiler_pic_CXX='-fPIC -shared'
- ;;
- *)
- lt_prog_compiler_pic_CXX='-fPIC'
- ;;
- esac
- else
- case $host_os in
- aix[4-9]*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static_CXX='-Bstatic'
- else
- lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
- chorus*)
- case $cc_basename in
- cxch68*)
- # Green Hills C++ Compiler
- # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
- ;;
- esac
- ;;
- mingw* | cygwin* | os2* | pw32* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
- ;;
- dgux*)
- case $cc_basename in
- ec++*)
- lt_prog_compiler_pic_CXX='-KPIC'
- ;;
- ghcx*)
- # Green Hills C++ Compiler
- lt_prog_compiler_pic_CXX='-pic'
- ;;
- *)
- ;;
- esac
- ;;
- freebsd* | dragonfly*)
- # FreeBSD uses GNU C++
- ;;
- hpux9* | hpux10* | hpux11*)
- case $cc_basename in
- CC*)
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
- if test "$host_cpu" != ia64; then
- lt_prog_compiler_pic_CXX='+Z'
- fi
- ;;
- aCC*)
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic_CXX='+Z'
- ;;
- esac
- ;;
- *)
- ;;
- esac
- ;;
- interix*)
- # This is c89, which is MS Visual C++ (no shared libs)
- # Anyone wants to do a port?
- ;;
- irix5* | irix6* | nonstopux*)
- case $cc_basename in
- CC*)
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_static_CXX='-non_shared'
- # CC pic flag -KPIC is the default.
- ;;
- *)
- ;;
- esac
- ;;
- linux* | k*bsd*-gnu | kopensolaris*-gnu)
- case $cc_basename in
- KCC*)
- # KAI C++ Compiler
- lt_prog_compiler_wl_CXX='--backend -Wl,'
- lt_prog_compiler_pic_CXX='-fPIC'
- ;;
- ecpc* )
- # old Intel C++ for x86_64 which still supported -KPIC.
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_pic_CXX='-KPIC'
- lt_prog_compiler_static_CXX='-static'
- ;;
- icpc* )
- # Intel C++, used to be incompatible with GCC.
- # ICC 10 doesn't accept -KPIC any more.
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_pic_CXX='-fPIC'
- lt_prog_compiler_static_CXX='-static'
- ;;
- pgCC* | pgcpp*)
- # Portland Group C++ compiler
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_pic_CXX='-fpic'
- lt_prog_compiler_static_CXX='-Bstatic'
- ;;
- cxx*)
- # Compaq C++
- # Make sure the PIC flag is empty. It appears that all Alpha
- # Linux and Compaq Tru64 Unix objects are PIC.
- lt_prog_compiler_pic_CXX=
- lt_prog_compiler_static_CXX='-non_shared'
- ;;
- xlc* | xlC* | bgxl[cC]* | mpixl[cC]*)
- # IBM XL 8.0, 9.0 on PPC and BlueGene
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_pic_CXX='-qpic'
- lt_prog_compiler_static_CXX='-qstaticlink'
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
- lt_prog_compiler_pic_CXX='-KPIC'
- lt_prog_compiler_static_CXX='-Bstatic'
- lt_prog_compiler_wl_CXX='-Qoption ld '
- ;;
- esac
- ;;
- esac
- ;;
- lynxos*)
- ;;
- m88k*)
- ;;
- mvs*)
- case $cc_basename in
- cxx*)
- lt_prog_compiler_pic_CXX='-W c,exportall'
- ;;
- *)
- ;;
- esac
- ;;
- netbsd*)
- ;;
- *qnx* | *nto*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- lt_prog_compiler_pic_CXX='-fPIC -shared'
- ;;
- osf3* | osf4* | osf5*)
- case $cc_basename in
- KCC*)
- lt_prog_compiler_wl_CXX='--backend -Wl,'
- ;;
- RCC*)
- # Rational C++ 2.4.1
- lt_prog_compiler_pic_CXX='-pic'
- ;;
- cxx*)
- # Digital/Compaq C++
- lt_prog_compiler_wl_CXX='-Wl,'
- # Make sure the PIC flag is empty. It appears that all Alpha
- # Linux and Compaq Tru64 Unix objects are PIC.
- lt_prog_compiler_pic_CXX=
- lt_prog_compiler_static_CXX='-non_shared'
- ;;
- *)
- ;;
- esac
- ;;
- psos*)
- ;;
- solaris*)
- case $cc_basename in
- CC* | sunCC*)
- # Sun C++ 4.2, 5.x and Centerline C++
- lt_prog_compiler_pic_CXX='-KPIC'
- lt_prog_compiler_static_CXX='-Bstatic'
- lt_prog_compiler_wl_CXX='-Qoption ld '
- ;;
- gcx*)
- # Green Hills C++ Compiler
- lt_prog_compiler_pic_CXX='-PIC'
- ;;
- *)
- ;;
- esac
- ;;
- sunos4*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.x
- lt_prog_compiler_pic_CXX='-pic'
- lt_prog_compiler_static_CXX='-Bstatic'
- ;;
- lcc*)
- # Lucid
- lt_prog_compiler_pic_CXX='-pic'
- ;;
- *)
- ;;
- esac
- ;;
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- case $cc_basename in
- CC*)
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_pic_CXX='-KPIC'
- lt_prog_compiler_static_CXX='-Bstatic'
- ;;
- esac
- ;;
- tandem*)
- case $cc_basename in
- NCC*)
- # NonStop-UX NCC 3.20
- lt_prog_compiler_pic_CXX='-KPIC'
- ;;
- *)
- ;;
- esac
- ;;
- vxworks*)
- ;;
- *)
- lt_prog_compiler_can_build_shared_CXX=no
- ;;
- esac
- fi
-
-case $host_os in
- # For platforms which do not support PIC, -DPIC is meaningless:
- *djgpp*)
- lt_prog_compiler_pic_CXX=
- ;;
- *)
- lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
- ;;
-esac
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
-if ${lt_cv_prog_compiler_pic_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; }
-lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic_CXX"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
-$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; }
-if ${lt_cv_prog_compiler_pic_works_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_pic_works_CXX=no
- ac_outfile=conftest.$ac_objext
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_pic_works_CXX=yes
- fi
- fi
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; }
-
-if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then
- case $lt_prog_compiler_pic_CXX in
- "" | " "*) ;;
- *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
- esac
-else
- lt_prog_compiler_pic_CXX=
- lt_prog_compiler_can_build_shared_CXX=no
-fi
-
-fi
-
-
-
-
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if ${lt_cv_prog_compiler_static_works_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_static_works_CXX=no
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_static_works_CXX=yes
- fi
- else
- lt_cv_prog_compiler_static_works_CXX=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; }
-
-if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then
- :
-else
- lt_prog_compiler_static_CXX=
-fi
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_c_o_CXX=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_c_o_CXX=yes
- fi
- fi
- chmod u+w . 2>&5
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_c_o_CXX=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_c_o_CXX=yes
- fi
- fi
- chmod u+w . 2>&5
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
-
-
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
- # do not overwrite the value of need_locks provided by the user
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
-$as_echo_n "checking if we can lock with hard links... " >&6; }
- hard_links=yes
- $RM conftest*
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- touch conftest.a
- ln conftest.a conftest.b 2>&5 || hard_links=no
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-$as_echo "$hard_links" >&6; }
- if test "$hard_links" = no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
- need_locks=warn
- fi
-else
- need_locks=no
-fi
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
-
- export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
- case $host_os in
- aix[4-9]*)
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- # Also, AIX nm treats weak defined symbols like other global defined
- # symbols, whereas GNU nm marks them as "W".
- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- else
- export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- fi
- ;;
- pw32*)
- export_symbols_cmds_CXX="$ltdll_cmds"
- ;;
- cygwin* | mingw* | cegcc*)
- case $cc_basename in
- cl*)
- exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
- ;;
- *)
- export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
- exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
- ;;
- esac
- ;;
- *)
- export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- ;;
- esac
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
-$as_echo "$ld_shlibs_CXX" >&6; }
-test "$ld_shlibs_CXX" = no && can_build_shared=no
-
-with_gnu_ld_CXX=$with_gnu_ld
-
-
-
-
-
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc_CXX" in
-x|xyes)
- # Assume -lc should be added
- archive_cmds_need_lc_CXX=yes
-
- if test "$enable_shared" = yes && test "$GCC" = yes; then
- case $archive_cmds_CXX in
- *'~'*)
- # FIXME: we may have to deal with multi-command sequences.
- ;;
- '$CC '*)
- # Test whether the compiler implicitly links with -lc since on some
- # systems, -lgcc has to come before -lc. If gcc already passes -lc
- # to ld, don't add -lc before -lgcc.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
-$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-if ${lt_cv_archive_cmds_need_lc_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl_CXX
- pic_flag=$lt_prog_compiler_pic_CXX
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
- allow_undefined_flag_CXX=
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
- (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- then
- lt_cv_archive_cmds_need_lc_CXX=no
- else
- lt_cv_archive_cmds_need_lc_CXX=yes
- fi
- allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5
-$as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; }
- archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX
- ;;
- esac
- fi
- ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
-$as_echo_n "checking dynamic linker characteristics... " >&6; }
-
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
-
-aix[4-9]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- hardcode_into_libs=yes
- if test "$host_cpu" = ia64; then
- # AIX 5 supports IA64
- library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- else
- # With GCC up to 2.95.x, collect2 would create an import file
- # for dependence libraries. The import file would start with
- # the line `#! .'. This would cause the generated library to
- # depend on `.', always an invalid library. This was fixed in
- # development snapshots of GCC prior to 3.0.
- case $host_os in
- aix4 | aix4.[01] | aix4.[01].*)
- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
- echo ' yes '
- echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
- :
- else
- can_build_shared=no
- fi
- ;;
- esac
- # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
- # soname into executable. Probably we can add versioning support to
- # collect2, so additional links can be useful in future.
- if test "$aix_use_runtimelinking" = yes; then
- # If using run time linking (on AIX 4.2 or later) use lib<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- else
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='${libname}${release}.a $libname.a'
- soname_spec='${libname}${release}${shared_ext}$major'
- fi
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- case $host_cpu in
- powerpc)
- # Since July 2007 AmigaOS4 officially supports .so libraries.
- # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- ;;
- m68k)
- library_names_spec='$libname.ixlibrary $libname.a'
- # Create ${libname}_ixlibrary.a entries in /sys/libs.
- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
- ;;
- esac
- ;;
-
-beos*)
- library_names_spec='${libname}${shared_ext}'
- dynamic_linker="$host_os ld.so"
- shlibpath_var=LIBRARY_PATH
- ;;
-
-bsdi[45]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
- # the default ld.so.conf also contains /usr/contrib/lib and
- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
- # libtool to hard-code these into programs
- ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
- version_type=windows
- shrext_cmds=".dll"
- need_version=no
- need_lib_prefix=no
-
- case $GCC,$cc_basename in
- yes,*)
- # gcc
- library_names_spec='$libname.dll.a'
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname~
- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
- fi'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-
- ;;
- mingw* | cegcc*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- ;;
-
- *,cl*)
- # Native MSVC
- libname_spec='$name'
- soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- library_names_spec='${libname}.dll.lib'
-
- case $build_os in
- mingw*)
- sys_lib_search_path_spec=
- lt_save_ifs=$IFS
- IFS=';'
- for lt_path in $LIB
- do
- IFS=$lt_save_ifs
- # Let DOS variable expansion print the short 8.3 style file name.
- lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
- sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
- done
- IFS=$lt_save_ifs
- # Convert to MSYS style.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
- ;;
- cygwin*)
- # Convert to unix form, then to dos form, then back to unix form
- # but this time dos style (no spaces!) so that the unix form looks
- # like /cygdrive/c/PROGRA~1:/cygdr...
- sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
- sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
- sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- ;;
- *)
- sys_lib_search_path_spec="$LIB"
- if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
- # It is most probably a Windows format PATH.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
- # FIXME: find the short name or the path components, as spaces are
- # common. (e.g. "Program Files" -> "PROGRA~1")
- ;;
- esac
-
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
- dynamic_linker='Win32 link.exe'
- ;;
-
- *)
- # Assume MSVC wrapper
- library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
- dynamic_linker='Win32 ld.exe'
- ;;
- esac
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
- soname_spec='${libname}${release}${major}$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-
- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
- ;;
-
-dgux*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-freebsd* | dragonfly*)
- # DragonFly does not have aout. When/if they implement a new
- # versioning mechanism, adjust this.
- if test -x /usr/bin/objformat; then
- objformat=`/usr/bin/objformat`
- else
- case $host_os in
- freebsd[23].*) objformat=aout ;;
- *) objformat=elf ;;
- esac
- fi
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2.*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.[01]* | freebsdelf3.[01]*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
- freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
- *) # from 4.6 on, and DragonFly
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- esac
- ;;
-
-gnu*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-haiku*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- dynamic_linker="$host_os runtime_loader"
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
- hardcode_into_libs=yes
- ;;
-
-hpux9* | hpux10* | hpux11*)
- # Give a soname corresponding to the major version so that dld.sl refuses to
- # link against other versions.
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- case $host_cpu in
- ia64*)
- shrext_cmds='.so'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.so"
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- if test "X$HPUX_IA64_MODE" = X32; then
- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
- else
- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
- fi
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- hppa*64*)
- shrext_cmds='.sl'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- *)
- shrext_cmds='.sl'
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=SHLIB_PATH
- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
- esac
- # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
- postinstall_cmds='chmod 555 $lib'
- # or fails outright, so override atomically:
- install_override_mode=555
- ;;
-
-interix[3-9]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $host_os in
- nonstopux*) version_type=nonstopux ;;
- *)
- if test "$lt_cv_prog_gnu_ld" = yes; then
- version_type=linux # correct to gnu/linux during the next big refactor
- else
- version_type=irix
- fi ;;
- esac
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
- case $host_os in
- irix5* | nonstopux*)
- libsuff= shlibsuff=
- ;;
- *)
- case $LD in # libtool.m4 will add one of these switches to LD
- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
- libsuff= shlibsuff= libmagic=32-bit;;
- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
- libsuff=32 shlibsuff=N32 libmagic=N32;;
- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
- libsuff=64 shlibsuff=64 libmagic=64-bit;;
- *) libsuff= shlibsuff= libmagic=never-match;;
- esac
- ;;
- esac
- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
- hardcode_into_libs=yes
- ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
- dynamic_linker=no
- ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
-
- # Some binutils ld are patched to set DT_RUNPATH
- if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_shlibpath_overrides_runpath=no
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
- if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
- lt_cv_shlibpath_overrides_runpath=yes
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
-
-fi
-
- shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-
- # This implies no fast_install, which is unacceptable.
- # Some rework will be needed to allow for fast_install
- # before this can be enabled.
- hardcode_into_libs=yes
-
- # Add ABI-specific directories to the system library path.
- sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
-
- # Append ld.so.conf contents to the search path
- if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
-
- fi
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='NetBSD ld.elf_so'
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
-
-newsos6)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-*nto* | *qnx*)
- version_type=qnx
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='ldqnx.so'
- ;;
-
-openbsd*)
- version_type=sunos
- sys_lib_dlsearch_path_spec="/usr/lib"
- need_lib_prefix=no
- # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
- case $host_os in
- openbsd3.3 | openbsd3.3.*) need_version=yes ;;
- *) need_version=no ;;
- esac
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- case $host_os in
- openbsd2.[89] | openbsd2.[89].*)
- shlibpath_overrides_runpath=no
- ;;
- *)
- shlibpath_overrides_runpath=yes
- ;;
- esac
- else
- shlibpath_overrides_runpath=yes
- fi
- ;;
-
-os2*)
- libname_spec='$name'
- shrext_cmds=".dll"
- need_lib_prefix=no
- library_names_spec='$libname${shared_ext} $libname.a'
- dynamic_linker='OS/2 ld.exe'
- shlibpath_var=LIBPATH
- ;;
-
-osf3* | osf4* | osf5*)
- version_type=osf
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
- ;;
-
-rdos*)
- dynamic_linker=no
- ;;
-
-solaris*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- # ldd complains unless libraries are executable
- postinstall_cmds='chmod +x $lib'
- ;;
-
-sunos4*)
- version_type=sunos
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- if test "$with_gnu_ld" = yes; then
- need_lib_prefix=no
- fi
- need_version=yes
- ;;
-
-sysv4 | sysv4.3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- case $host_vendor in
- sni)
- shlibpath_overrides_runpath=no
- need_lib_prefix=no
- runpath_var=LD_RUN_PATH
- ;;
- siemens)
- need_lib_prefix=no
- ;;
- motorola)
- need_lib_prefix=no
- need_version=no
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
- ;;
- esac
- ;;
-
-sysv4*MP*)
- if test -d /usr/nec ;then
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
- soname_spec='$libname${shared_ext}.$major'
- shlibpath_var=LD_LIBRARY_PATH
- fi
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- version_type=freebsd-elf
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- if test "$with_gnu_ld" = yes; then
- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
- else
- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
- case $host_os in
- sco3.2v5*)
- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
- ;;
- esac
- fi
- sys_lib_dlsearch_path_spec='/usr/lib'
- ;;
-
-tpf*)
- # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-uts4*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-*)
- dynamic_linker=no
- ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
- sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
- sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
-$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
-hardcode_action_CXX=
-if test -n "$hardcode_libdir_flag_spec_CXX" ||
- test -n "$runpath_var_CXX" ||
- test "X$hardcode_automatic_CXX" = "Xyes" ; then
-
- # We can hardcode non-existent directories.
- if test "$hardcode_direct_CXX" != no &&
- # If the only mechanism to avoid hardcoding is shlibpath_var, we
- # have to relink, otherwise we might link with an installed library
- # when we should be linking with a yet-to-be-installed one
- ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no &&
- test "$hardcode_minus_L_CXX" != no; then
- # Linking always hardcodes the temporary library directory.
- hardcode_action_CXX=relink
- else
- # We can link without hardcoding, and we can hardcode nonexisting dirs.
- hardcode_action_CXX=immediate
- fi
-else
- # We cannot hardcode anything, or else we can only hardcode existing
- # directories.
- hardcode_action_CXX=unsupported
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5
-$as_echo "$hardcode_action_CXX" >&6; }
-
-if test "$hardcode_action_CXX" = relink ||
- test "$inherit_rpath_CXX" = yes; then
- # Fast installation is not supported
- enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
- test "$enable_shared" = no; then
- # Fast installation is not necessary
- enable_fast_install=needless
-fi
-
-
-
-
-
-
-
- fi # test -n "$compiler"
-
- CC=$lt_save_CC
- CFLAGS=$lt_save_CFLAGS
- LDCXX=$LD
- LD=$lt_save_LD
- GCC=$lt_save_GCC
- with_gnu_ld=$lt_save_with_gnu_ld
- lt_cv_path_LDCXX=$lt_cv_path_LD
- lt_cv_path_LD=$lt_save_path_LD
- lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
- lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-fi # test "$_lt_caught_CXX_error" != yes
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
- ac_ct_RANLIB=$RANLIB
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_RANLIB"; then
- ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_RANLIB="ranlib"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-$as_echo "$ac_ct_RANLIB" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_RANLIB" = x; then
- RANLIB=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- RANLIB=$ac_ct_RANLIB
- fi
-else
- RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-
-## local helper functions
-
-# this function checks if CC support options passed as
-# args. Global CFLAGS are ignored during this test.
-cc_supports_flag() {
- local CFLAGS="$@"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports \"$@\"" >&5
-$as_echo_n "checking whether $CC supports \"$@\"... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int main(){return 0;}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- RC=0; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
- RC=1; { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- return $RC
-}
-
-# this function tests if a library has a certain function
-# by using AC_CHECK_LIB but restores the original LIBS global
-# envvar. This is required to avoid libtool to link everything
-# with everything.
-check_lib_no_libs() {
- as_ac_Lib=`$as_echo "ac_cv_lib_$1''_$2" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2 in -l$1" >&5
-$as_echo_n "checking for $2 in -l$1... " >&6; }
-if eval \${$as_ac_Lib+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-l$1 $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $2 ();
-int
-main ()
-{
-return $2 ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- eval "$as_ac_Lib=yes"
-else
- eval "$as_ac_Lib=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-eval ac_res=\$$as_ac_Lib
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_LIB$1" | $as_tr_cpp` 1
-_ACEOF
-
- LIBS="-l$1 $LIBS"
-
-else
- as_fn_error $? "Unable to find $1 library" "$LINENO" 5
-fi
-
- LIBS=$ac_check_lib_save_LIBS
-}
-
-# Checks for header files.
-for ac_header in arpa/inet.h fcntl.h libintl.h limits.h netdb.h stddef.h sys/socket.h sys/time.h syslog.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-# Checks for typedefs, structures, and compiler characteristics.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
-$as_echo_n "checking for inline... " >&6; }
-if ${ac_cv_c_inline+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_c_inline=no
-for ac_kw in inline __inline__ __inline; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifndef __cplusplus
-typedef int foo_t;
-static $ac_kw foo_t static_foo () {return 0; }
-$ac_kw foo_t foo () {return 0; }
-#endif
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_c_inline=$ac_kw
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- test "$ac_cv_c_inline" != no && break
-done
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
-$as_echo "$ac_cv_c_inline" >&6; }
-
-case $ac_cv_c_inline in
- inline | yes) ;;
- *)
- case $ac_cv_c_inline in
- no) ac_val=;;
- *) ac_val=$ac_cv_c_inline;;
- esac
- cat >>confdefs.h <<_ACEOF
-#ifndef __cplusplus
-#define inline $ac_val
-#endif
-_ACEOF
- ;;
-esac
-
-ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
-if test "x$ac_cv_type_size_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define size_t unsigned int
-_ACEOF
-
-fi
-
-ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default"
-if test "x$ac_cv_type_ssize_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define ssize_t int
-_ACEOF
-
-fi
-
-ac_fn_c_find_uintX_t "$LINENO" "32" "ac_cv_c_uint32_t"
-case $ac_cv_c_uint32_t in #(
- no|yes) ;; #(
- *)
-
-$as_echo "#define _UINT32_T 1" >>confdefs.h
-
-
-cat >>confdefs.h <<_ACEOF
-#define uint32_t $ac_cv_c_uint32_t
-_ACEOF
-;;
- esac
-
-
-# Checks for library functions.
-ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default"
-if test "x$ac_cv_type_pid_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define pid_t int
-_ACEOF
-
-fi
-
-for ac_header in vfork.h
-do :
- ac_fn_c_check_header_mongrel "$LINENO" "vfork.h" "ac_cv_header_vfork_h" "$ac_includes_default"
-if test "x$ac_cv_header_vfork_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_VFORK_H 1
-_ACEOF
-
-fi
-
-done
-
-for ac_func in fork vfork
-do :
- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-if test "x$ac_cv_func_fork" = xyes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5
-$as_echo_n "checking for working fork... " >&6; }
-if ${ac_cv_func_fork_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- ac_cv_func_fork_works=cross
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-
- /* By Ruediger Kuhlmann. */
- return fork () < 0;
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- ac_cv_func_fork_works=yes
-else
- ac_cv_func_fork_works=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fork_works" >&5
-$as_echo "$ac_cv_func_fork_works" >&6; }
-
-else
- ac_cv_func_fork_works=$ac_cv_func_fork
-fi
-if test "x$ac_cv_func_fork_works" = xcross; then
- case $host in
- *-*-amigaos* | *-*-msdosdjgpp*)
- # Override, as these systems have only a dummy fork() stub
- ac_cv_func_fork_works=no
- ;;
- *)
- ac_cv_func_fork_works=yes
- ;;
- esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5
-$as_echo "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;}
-fi
-ac_cv_func_vfork_works=$ac_cv_func_vfork
-if test "x$ac_cv_func_vfork" = xyes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5
-$as_echo_n "checking for working vfork... " >&6; }
-if ${ac_cv_func_vfork_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- ac_cv_func_vfork_works=cross
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-/* Thanks to Paul Eggert for this test. */
-$ac_includes_default
-#include <sys/wait.h>
-#ifdef HAVE_VFORK_H
-# include <vfork.h>
-#endif
-/* On some sparc systems, changes by the child to local and incoming
- argument registers are propagated back to the parent. The compiler
- is told about this with #include <vfork.h>, but some compilers
- (e.g. gcc -O) don't grok <vfork.h>. Test for this by using a
- static variable whose address is put into a register that is
- clobbered by the vfork. */
-static void
-#ifdef __cplusplus
-sparc_address_test (int arg)
-# else
-sparc_address_test (arg) int arg;
-#endif
-{
- static pid_t child;
- if (!child) {
- child = vfork ();
- if (child < 0) {
- perror ("vfork");
- _exit(2);
- }
- if (!child) {
- arg = getpid();
- write(-1, "", 0);
- _exit (arg);
- }
- }
-}
-
-int
-main ()
-{
- pid_t parent = getpid ();
- pid_t child;
-
- sparc_address_test (0);
-
- child = vfork ();
-
- if (child == 0) {
- /* Here is another test for sparc vfork register problems. This
- test uses lots of local variables, at least as many local
- variables as main has allocated so far including compiler
- temporaries. 4 locals are enough for gcc 1.40.3 on a Solaris
- 4.1.3 sparc, but we use 8 to be safe. A buggy compiler should
- reuse the register of parent for one of the local variables,
- since it will think that parent can't possibly be used any more
- in this routine. Assigning to the local variable will thus
- munge parent in the parent process. */
- pid_t
- p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(),
- p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid();
- /* Convince the compiler that p..p7 are live; otherwise, it might
- use the same hardware register for all 8 local variables. */
- if (p != p1 || p != p2 || p != p3 || p != p4
- || p != p5 || p != p6 || p != p7)
- _exit(1);
-
- /* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent
- from child file descriptors. If the child closes a descriptor
- before it execs or exits, this munges the parent's descriptor
- as well. Test for this by closing stdout in the child. */
- _exit(close(fileno(stdout)) != 0);
- } else {
- int status;
- struct stat st;
-
- while (wait(&status) != child)
- ;
- return (
- /* Was there some problem with vforking? */
- child < 0
-
- /* Did the child fail? (This shouldn't happen.) */
- || status
-
- /* Did the vfork/compiler bug occur? */
- || parent != getpid()
-
- /* Did the file descriptor bug occur? */
- || fstat(fileno(stdout), &st) != 0
- );
- }
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- ac_cv_func_vfork_works=yes
-else
- ac_cv_func_vfork_works=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vfork_works" >&5
-$as_echo "$ac_cv_func_vfork_works" >&6; }
-
-fi;
-if test "x$ac_cv_func_fork_works" = xcross; then
- ac_cv_func_vfork_works=$ac_cv_func_vfork
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5
-$as_echo "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;}
-fi
-
-if test "x$ac_cv_func_vfork_works" = xyes; then
-
-$as_echo "#define HAVE_WORKING_VFORK 1" >>confdefs.h
-
-else
-
-$as_echo "#define vfork fork" >>confdefs.h
-
-fi
-if test "x$ac_cv_func_fork_works" = xyes; then
-
-$as_echo "#define HAVE_WORKING_FORK 1" >>confdefs.h
-
-fi
-
-for ac_header in stdlib.h
-do :
- ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
-if test "x$ac_cv_header_stdlib_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_STDLIB_H 1
-_ACEOF
-
-fi
-
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5
-$as_echo_n "checking for GNU libc compatible malloc... " >&6; }
-if ${ac_cv_func_malloc_0_nonnull+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- ac_cv_func_malloc_0_nonnull=no
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#if defined STDC_HEADERS || defined HAVE_STDLIB_H
-# include <stdlib.h>
-#else
-char *malloc ();
-#endif
-
-int
-main ()
-{
-return ! malloc (0);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- ac_cv_func_malloc_0_nonnull=yes
-else
- ac_cv_func_malloc_0_nonnull=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5
-$as_echo "$ac_cv_func_malloc_0_nonnull" >&6; }
-if test $ac_cv_func_malloc_0_nonnull = yes; then :
-
-$as_echo "#define HAVE_MALLOC 1" >>confdefs.h
-
-else
- $as_echo "#define HAVE_MALLOC 0" >>confdefs.h
-
- case " $LIBOBJS " in
- *" malloc.$ac_objext "* ) ;;
- *) LIBOBJS="$LIBOBJS malloc.$ac_objext"
- ;;
-esac
-
-
-$as_echo "#define malloc rpl_malloc" >>confdefs.h
-
-fi
-
-
-for ac_func in alarm atexit bzero dup2 memmove memset select socket strcasecmp strchr strdup strerror strtol
-do :
- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-# local options
-# Check whether --enable-debug was given.
-if test "${enable_debug+set}" = set; then :
- enableval=$enable_debug; default="no"
-fi
-
-
-
-# Check whether --with-fenceagentslibdir was given.
-if test "${with_fenceagentslibdir+set}" = set; then :
- withval=$with_fenceagentslibdir; FENCEAGENTSLIBDIR="$withval"
-else
- FENCEAGENTSLIBDIR="${datadir}/fence"
-fi
-
-
-
-# Check whether --with-default-config-dir was given.
-if test "${with_default_config_dir+set}" = set; then :
- withval=$with_default_config_dir; DEFAULT_CONFIG_DIR="$withval"
-else
- DEFAULT_CONFIG_DIR="$sysconfdir/cluster"
-fi
-
-
-
-# Check whether --with-default-config-file was given.
-if test "${with_default_config_file+set}" = set; then :
- withval=$with_default_config_file; DEFAULT_CONFIG_FILE="$withval"
-else
- DEFAULT_CONFIG_FILE="cluster.conf"
-fi
-
-
-
-# Check whether --with-agents was given.
-if test "${with_agents+set}" = set; then :
- withval=$with_agents; AGENTS_LIST="$withval"
-else
- AGENTS_LIST="all"
-fi
-
-
-if test "x$AGENTS_LIST" = x; then
- as_fn_error $? "No agents selected" "$LINENO" 5
-fi
-
-if test "x$AGENTS_LIST" != xall; then
- for j in $AGENTS_LIST; do
- if ! test -d fence/agents/$j; then
- as_fn_error $? "Agent $j does not exists" "$LINENO" 5
- fi
- done
-fi
-
-if test "x$AGENTS_LIST" = xall; then
- AGENTS_LIST=`find $srcdir/fence/agents -mindepth 2 -maxdepth 2 -name '*.py' -printf '%P ' | sed -e 's#lib/[A-Za-z_.]* ##g' -e 's#nss_wrapper/[A-Za-z_.]* ##g' -e 's#autodetect/[A-Za-z_.]* ##g'`
-fi
-
-XENAPILIB=0
-if echo "$AGENTS_LIST" | grep -q xenapi; then
- XENAPILIB=1
-fi
-
-## random vars
-
-LOGDIR=${localstatedir}/log/cluster
-CLUSTERVARRUN=${localstatedir}/run/cluster
-CLUSTERDATA=${datadir}/cluster
-
-
-
-
-
-
-
- # Find any Python interpreter.
- if test -z "$PYTHON"; then
- for ac_prog in python python2 python3 python3.3 python3.2 python3.1 python3.0 python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PYTHON+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $PYTHON in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-fi
-PYTHON=$ac_cv_path_PYTHON
-if test -n "$PYTHON"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
-$as_echo "$PYTHON" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$PYTHON" && break
-done
-test -n "$PYTHON" || PYTHON=":"
-
- fi
- am_display_PYTHON=python
-
-
- if test "$PYTHON" = :; then
- as_fn_error $? "no suitable Python interpreter found" "$LINENO" 5
- else
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5
-$as_echo_n "checking for $am_display_PYTHON version... " >&6; }
-if ${am_cv_python_version+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"`
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5
-$as_echo "$am_cv_python_version" >&6; }
- PYTHON_VERSION=$am_cv_python_version
-
-
-
- PYTHON_PREFIX='${prefix}'
-
- PYTHON_EXEC_PREFIX='${exec_prefix}'
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5
-$as_echo_n "checking for $am_display_PYTHON platform... " >&6; }
-if ${am_cv_python_platform+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5
-$as_echo "$am_cv_python_platform" >&6; }
- PYTHON_PLATFORM=$am_cv_python_platform
-
-
- # Just factor out some code duplication.
- am_python_setup_sysconfig="\
-import sys
-# Prefer sysconfig over distutils.sysconfig, for better compatibility
-# with python 3.x. See automake bug#10227.
-try:
- import sysconfig
-except ImportError:
- can_use_sysconfig = 0
-else:
- can_use_sysconfig = 1
-# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs:
-# <https://github.com/pypa/virtualenv/issues/118>
-try:
- from platform import python_implementation
- if python_implementation() == 'CPython' and sys.version[:3] == '2.7':
- can_use_sysconfig = 0
-except ImportError:
- pass"
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5
-$as_echo_n "checking for $am_display_PYTHON script directory... " >&6; }
-if ${am_cv_python_pythondir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "x$prefix" = xNONE
- then
- am_py_prefix=$ac_default_prefix
- else
- am_py_prefix=$prefix
- fi
- am_cv_python_pythondir=`$PYTHON -c "
-$am_python_setup_sysconfig
-if can_use_sysconfig:
- sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
-else:
- from distutils import sysconfig
- sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
-sys.stdout.write(sitedir)"`
- case $am_cv_python_pythondir in
- $am_py_prefix*)
- am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
- am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
- ;;
- *)
- case $am_py_prefix in
- /usr|/System*) ;;
- *)
- am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
- ;;
- esac
- ;;
- esac
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5
-$as_echo "$am_cv_python_pythondir" >&6; }
- pythondir=$am_cv_python_pythondir
-
-
-
- pkgpythondir=\${pythondir}/$PACKAGE
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory" >&5
-$as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; }
-if ${am_cv_python_pyexecdir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "x$exec_prefix" = xNONE
- then
- am_py_exec_prefix=$am_py_prefix
- else
- am_py_exec_prefix=$exec_prefix
- fi
- am_cv_python_pyexecdir=`$PYTHON -c "
-$am_python_setup_sysconfig
-if can_use_sysconfig:
- sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'})
-else:
- from distutils import sysconfig
- sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix')
-sys.stdout.write(sitedir)"`
- case $am_cv_python_pyexecdir in
- $am_py_exec_prefix*)
- am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
- am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
- ;;
- *)
- case $am_py_exec_prefix in
- /usr|/System*) ;;
- *)
- am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
- ;;
- esac
- ;;
- esac
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5
-$as_echo "$am_cv_python_pyexecdir" >&6; }
- pyexecdir=$am_cv_python_pyexecdir
-
-
-
- pkgpyexecdir=\${pyexecdir}/$PACKAGE
-
-
-
- fi
-
-
-if test -z "$PYTHON"; then
- echo "*** Essential program python not found" 1>&2
- exit 1
-fi
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking python module: suds" >&5
-$as_echo_n "checking python module: suds... " >&6; }
- $PYTHON -c "import suds" 2>/dev/null
- if test $? -eq 0;
- then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- eval HAVE_PYMOD_SUDS=yes
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- eval HAVE_PYMOD_SUDS=no
- #
- if test -n "1"
- then
- as_fn_error $? "failed to find required module suds" "$LINENO" 5
- exit 1
- fi
- fi
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking python module: pexpect" >&5
-$as_echo_n "checking python module: pexpect... " >&6; }
- $PYTHON -c "import pexpect" 2>/dev/null
- if test $? -eq 0;
- then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- eval HAVE_PYMOD_PEXPECT=yes
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- eval HAVE_PYMOD_PEXPECT=no
- #
- if test -n "1"
- then
- as_fn_error $? "failed to find required module pexpect" "$LINENO" 5
- exit 1
- fi
- fi
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking python module: pycurl" >&5
-$as_echo_n "checking python module: pycurl... " >&6; }
- $PYTHON -c "import pycurl" 2>/dev/null
- if test $? -eq 0;
- then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- eval HAVE_PYMOD_PYCURL=yes
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- eval HAVE_PYMOD_PYCURL=no
- #
- if test -n "1"
- then
- as_fn_error $? "failed to find required module pycurl" "$LINENO" 5
- exit 1
- fi
- fi
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking python module: requests" >&5
-$as_echo_n "checking python module: requests... " >&6; }
- $PYTHON -c "import requests" 2>/dev/null
- if test $? -eq 0;
- then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- eval HAVE_PYMOD_REQUESTS=yes
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- eval HAVE_PYMOD_REQUESTS=no
- #
- if test -n "1"
- then
- as_fn_error $? "failed to find required module requests" "$LINENO" 5
- exit 1
- fi
- fi
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking python module: pywsman" >&5
-$as_echo_n "checking python module: pywsman... " >&6; }
- $PYTHON -c "import pywsman" 2>/dev/null
- if test $? -eq 0;
- then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- eval HAVE_PYMOD_PYWSMAN=yes
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- eval HAVE_PYMOD_PYWSMAN=no
- #
- if test -n "1"
- then
- as_fn_error $? "failed to find required module pywsman" "$LINENO" 5
- exit 1
- fi
- fi
-
-
-## path to 3rd-party binaries
-# Extract the first word of "ipmitool", so it can be a program name with args.
-set dummy ipmitool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_IPMITOOL_PATH+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $IPMITOOL_PATH in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_IPMITOOL_PATH="$IPMITOOL_PATH" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_IPMITOOL_PATH="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_path_IPMITOOL_PATH" && ac_cv_path_IPMITOOL_PATH="/usr/bin/ipmitool"
- ;;
-esac
-fi
-IPMITOOL_PATH=$ac_cv_path_IPMITOOL_PATH
-if test -n "$IPMITOOL_PATH"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IPMITOOL_PATH" >&5
-$as_echo "$IPMITOOL_PATH" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# Extract the first word of "openstack", so it can be a program name with args.
-set dummy openstack; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_OPENSTACK_PATH+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $OPENSTACK_PATH in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_OPENSTACK_PATH="$OPENSTACK_PATH" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_OPENSTACK_PATH="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_path_OPENSTACK_PATH" && ac_cv_path_OPENSTACK_PATH="/usr/bin/openstack"
- ;;
-esac
-fi
-OPENSTACK_PATH=$ac_cv_path_OPENSTACK_PATH
-if test -n "$OPENSTACK_PATH"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPENSTACK_PATH" >&5
-$as_echo "$OPENSTACK_PATH" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# Extract the first word of "amttool", so it can be a program name with args.
-set dummy amttool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_AMTTOOL_PATH+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $AMTTOOL_PATH in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_AMTTOOL_PATH="$AMTTOOL_PATH" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_AMTTOOL_PATH="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_path_AMTTOOL_PATH" && ac_cv_path_AMTTOOL_PATH="/usr/bin/amttool"
- ;;
-esac
-fi
-AMTTOOL_PATH=$ac_cv_path_AMTTOOL_PATH
-if test -n "$AMTTOOL_PATH"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AMTTOOL_PATH" >&5
-$as_echo "$AMTTOOL_PATH" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# Extract the first word of "gnutlscli", so it can be a program name with args.
-set dummy gnutlscli; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_GNUTLSCLI_PATH+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $GNUTLSCLI_PATH in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_GNUTLSCLI_PATH="$GNUTLSCLI_PATH" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_GNUTLSCLI_PATH="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_path_GNUTLSCLI_PATH" && ac_cv_path_GNUTLSCLI_PATH="/usr/bin/gnutls-cli"
- ;;
-esac
-fi
-GNUTLSCLI_PATH=$ac_cv_path_GNUTLSCLI_PATH
-if test -n "$GNUTLSCLI_PATH"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GNUTLSCLI_PATH" >&5
-$as_echo "$GNUTLSCLI_PATH" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# Extract the first word of "corosync-cmapctl", so it can be a program name with args.
-set dummy corosync-cmapctl; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_COROSYNC_CMAPCTL_PATH+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $COROSYNC_CMAPCTL_PATH in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_COROSYNC_CMAPCTL_PATH="$COROSYNC_CMAPCTL_PATH" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_COROSYNC_CMAPCTL_PATH="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_path_COROSYNC_CMAPCTL_PATH" && ac_cv_path_COROSYNC_CMAPCTL_PATH="/usr/sbin/corosync-cmapctl"
- ;;
-esac
-fi
-COROSYNC_CMAPCTL_PATH=$ac_cv_path_COROSYNC_CMAPCTL_PATH
-if test -n "$COROSYNC_CMAPCTL_PATH"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $COROSYNC_CMAPCTL_PATH" >&5
-$as_echo "$COROSYNC_CMAPCTL_PATH" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# Extract the first word of "sg_persist", so it can be a program name with args.
-set dummy sg_persist; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_SG_PERSIST_PATH+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $SG_PERSIST_PATH in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_SG_PERSIST_PATH="$SG_PERSIST_PATH" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_SG_PERSIST_PATH="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_path_SG_PERSIST_PATH" && ac_cv_path_SG_PERSIST_PATH="/usr/bin/sg_persist"
- ;;
-esac
-fi
-SG_PERSIST_PATH=$ac_cv_path_SG_PERSIST_PATH
-if test -n "$SG_PERSIST_PATH"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SG_PERSIST_PATH" >&5
-$as_echo "$SG_PERSIST_PATH" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# Extract the first word of "sg_turs", so it can be a program name with args.
-set dummy sg_turs; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_SG_TURS_PATH+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $SG_TURS_PATH in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_SG_TURS_PATH="$SG_TURS_PATH" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_SG_TURS_PATH="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_path_SG_TURS_PATH" && ac_cv_path_SG_TURS_PATH="/usr/bin/sg_turs"
- ;;
-esac
-fi
-SG_TURS_PATH=$ac_cv_path_SG_TURS_PATH
-if test -n "$SG_TURS_PATH"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SG_TURS_PATH" >&5
-$as_echo "$SG_TURS_PATH" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# Extract the first word of "vgs", so it can be a program name with args.
-set dummy vgs; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_VGS_PATH+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $VGS_PATH in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_VGS_PATH="$VGS_PATH" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_VGS_PATH="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_path_VGS_PATH" && ac_cv_path_VGS_PATH="/usr/sbin/vgs"
- ;;
-esac
-fi
-VGS_PATH=$ac_cv_path_VGS_PATH
-if test -n "$VGS_PATH"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $VGS_PATH" >&5
-$as_echo "$VGS_PATH" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# Extract the first word of "sudo", so it can be a program name with args.
-set dummy sudo; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_SUDO_PATH+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $SUDO_PATH in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_SUDO_PATH="$SUDO_PATH" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_SUDO_PATH="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_path_SUDO_PATH" && ac_cv_path_SUDO_PATH="/usr/bin/sudo"
- ;;
-esac
-fi
-SUDO_PATH=$ac_cv_path_SUDO_PATH
-if test -n "$SUDO_PATH"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SUDO_PATH" >&5
-$as_echo "$SUDO_PATH" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# Extract the first word of "ssh", so it can be a program name with args.
-set dummy ssh; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_SSH_PATH+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $SSH_PATH in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_SSH_PATH="$SSH_PATH" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_SSH_PATH="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_path_SSH_PATH" && ac_cv_path_SSH_PATH="/usr/bin/ssh"
- ;;
-esac
-fi
-SSH_PATH=$ac_cv_path_SSH_PATH
-if test -n "$SSH_PATH"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SSH_PATH" >&5
-$as_echo "$SSH_PATH" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# Extract the first word of "telnet", so it can be a program name with args.
-set dummy telnet; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_TELNET_PATH+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $TELNET_PATH in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_TELNET_PATH="$TELNET_PATH" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_TELNET_PATH="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_path_TELNET_PATH" && ac_cv_path_TELNET_PATH="/usr/bin/telnet"
- ;;
-esac
-fi
-TELNET_PATH=$ac_cv_path_TELNET_PATH
-if test -n "$TELNET_PATH"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TELNET_PATH" >&5
-$as_echo "$TELNET_PATH" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# Extract the first word of "mpathpersist", so it can be a program name with args.
-set dummy mpathpersist; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_MPATH_PATH+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $MPATH_PATH in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_MPATH_PATH="$MPATH_PATH" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_MPATH_PATH="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_path_MPATH_PATH" && ac_cv_path_MPATH_PATH="/usr/sbin/mpathpersist"
- ;;
-esac
-fi
-MPATH_PATH=$ac_cv_path_MPATH_PATH
-if test -n "$MPATH_PATH"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MPATH_PATH" >&5
-$as_echo "$MPATH_PATH" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# Extract the first word of "sbd", so it can be a program name with args.
-set dummy sbd; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_SBD_PATH+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $SBD_PATH in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_SBD_PATH="$SBD_PATH" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_SBD_PATH="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_path_SBD_PATH" && ac_cv_path_SBD_PATH="/sbin/sbd"
- ;;
-esac
-fi
-SBD_PATH=$ac_cv_path_SBD_PATH
-if test -n "$SBD_PATH"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SBD_PATH" >&5
-$as_echo "$SBD_PATH" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# Extract the first word of "sudo", so it can be a program name with args.
-set dummy sudo; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_SUDO_PATH+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $SUDO_PATH in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_SUDO_PATH="$SUDO_PATH" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_SUDO_PATH="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_path_SUDO_PATH" && ac_cv_path_SUDO_PATH="/usr/bin/sudo"
- ;;
-esac
-fi
-SUDO_PATH=$ac_cv_path_SUDO_PATH
-if test -n "$SUDO_PATH"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SUDO_PATH" >&5
-$as_echo "$SUDO_PATH" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# Extract the first word of "snmpwalk", so it can be a program name with args.
-set dummy snmpwalk; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_SNMPWALK_PATH+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $SNMPWALK_PATH in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_SNMPWALK_PATH="$SNMPWALK_PATH" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_SNMPWALK_PATH="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_path_SNMPWALK_PATH" && ac_cv_path_SNMPWALK_PATH="/usr/bin/snmpwalk"
- ;;
-esac
-fi
-SNMPWALK_PATH=$ac_cv_path_SNMPWALK_PATH
-if test -n "$SNMPWALK_PATH"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SNMPWALK_PATH" >&5
-$as_echo "$SNMPWALK_PATH" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# Extract the first word of "snmpset", so it can be a program name with args.
-set dummy snmpset; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_SNMPSET_PATH+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $SNMPSET_PATH in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_SNMPSET_PATH="$SNMPSET_PATH" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_SNMPSET_PATH="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_path_SNMPSET_PATH" && ac_cv_path_SNMPSET_PATH="/usr/bin/snmpset"
- ;;
-esac
-fi
-SNMPSET_PATH=$ac_cv_path_SNMPSET_PATH
-if test -n "$SNMPSET_PATH"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SNMPSET_PATH" >&5
-$as_echo "$SNMPSET_PATH" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# Extract the first word of "snmpget", so it can be a program name with args.
-set dummy snmpget; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_SNMPGET_PATH+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $SNMPGET_PATH in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_SNMPGET_PATH="$SNMPGET_PATH" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_SNMPGET_PATH="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_path_SNMPGET_PATH" && ac_cv_path_SNMPGET_PATH="/usr/bin/snmpget"
- ;;
-esac
-fi
-SNMPGET_PATH=$ac_cv_path_SNMPGET_PATH
-if test -n "$SNMPGET_PATH"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SNMPGET_PATH" >&5
-$as_echo "$SNMPGET_PATH" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# Extract the first word of "nova", so it can be a program name with args.
-set dummy nova; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_NOVA_PATH+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $NOVA_PATH in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_NOVA_PATH="$NOVA_PATH" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_NOVA_PATH="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_path_NOVA_PATH" && ac_cv_path_NOVA_PATH="/usr/bin/nova"
- ;;
-esac
-fi
-NOVA_PATH=$ac_cv_path_NOVA_PATH
-if test -n "$NOVA_PATH"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NOVA_PATH" >&5
-$as_echo "$NOVA_PATH" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# Extract the first word of "powerman", so it can be a program name with args.
-set dummy powerman; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_POWERMAN_PATH+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $POWERMAN_PATH in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_POWERMAN_PATH="$POWERMAN_PATH" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_POWERMAN_PATH="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_path_POWERMAN_PATH" && ac_cv_path_POWERMAN_PATH="/usr/bin/powerman"
- ;;
-esac
-fi
-POWERMAN_PATH=$ac_cv_path_POWERMAN_PATH
-if test -n "$POWERMAN_PATH"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $POWERMAN_PATH" >&5
-$as_echo "$POWERMAN_PATH" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-
-## do subst
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define DEFAULT_CONFIG_DIR "$(eval echo ${DEFAULT_CONFIG_DIR})"
-_ACEOF
-
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define DEFAULT_CONFIG_FILE "$(eval echo ${DEFAULT_CONFIG_FILE})"
-_ACEOF
-
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define LOGDIR "$(eval echo ${LOGDIR})"
-_ACEOF
-
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define CLUSTERVARRUN "$(eval echo ${CLUSTERVARRUN})"
-_ACEOF
-
-
-
-
-
-
- if test $XENAPILIB -eq 1; then
- BUILD_XENAPILIB_TRUE=
- BUILD_XENAPILIB_FALSE='#'
-else
- BUILD_XENAPILIB_TRUE='#'
- BUILD_XENAPILIB_FALSE=
-fi
-
-
-
-
-
-
-
-
-
-
-
-## *FLAGS handling
-
-ENV_CFLAGS="$CFLAGS"
-ENV_CPPFLAGS="$CPPFLAGS"
-ENV_LDFLAGS="$LDFLAGS"
-
-# debug build stuff
-if test "x${enable_debug}" = xyes; then
-
-cat >>confdefs.h <<_ACEOF
-#define DEBUG 1
-_ACEOF
-
- OPT_CFLAGS="-O0"
-else
- OPT_CFLAGS="-O2"
-fi
-
-# gdb flags
-if test "x${GCC}" = xyes; then
- GDB_FLAGS="-ggdb3"
-else
- GDB_FLAGS="-g"
-fi
-
-# extra warnings
-EXTRA_WARNINGS=""
-
-WARNLIST="
- all
- shadow
- missing-prototypes
- missing-declarations
- strict-prototypes
- declaration-after-statement
- pointer-arith
- write-strings
- cast-align
- bad-function-cast
- missing-format-attribute
- format=2
- format-security
- format-nonliteral
- no-long-long
- unsigned-char
- gnu89-inline
- no-strict-aliasing
- "
-
-for j in $WARNLIST; do
- if cc_supports_flag -W$j; then
- EXTRA_WARNINGS="$EXTRA_WARNINGS -W$j";
- fi
-done
-
-CFLAGS="$ENV_CFLAGS $OPT_CFLAGS $GDB_FLAGS \
- $EXTRA_WARNINGS $WERROR_CFLAGS"
-CPPFLAGS="-I\$(top_builddir)/make -I\$(top_srcdir)/make -I. $ENV_CPPFLAGS"
-LDFLAGS="$ENV_LDFLAGS"
-
-
-ac_config_files="$ac_config_files Makefile fence/Makefile fence/agents/Makefile fence/agents/lib/Makefile doc/Makefile"
-
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems. If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
- for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) { eval $ac_var=; unset $ac_var;} ;;
- esac ;;
- esac
- done
-
- (set) 2>&1 |
- case $as_nl`(ac_space=' '; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- # `set' does not quote correctly, so add quotes: double-quote
- # substitution turns \\\\ into \\, and sed turns \\ into \.
- sed -n \
- "s/'/'\\\\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
- ;; #(
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-) |
- sed '
- /^ac_cv_env_/b end
- t clear
- :clear
- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
- t end
- s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
- :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
- if test -w "$cache_file"; then
- if test "x$cache_file" != "x/dev/null"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
- if test ! -f "$cache_file" || test -h "$cache_file"; then
- cat confcache >"$cache_file"
- else
- case $cache_file in #(
- */* | ?:*)
- mv -f confcache "$cache_file"$$ &&
- mv -f "$cache_file"$$ "$cache_file" ;; #(
- *)
- mv -f confcache "$cache_file" ;;
- esac
- fi
- fi
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
- fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-U=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
- # 1. Remove the extension, and $U if already installed.
- ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
- ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
- # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
- # will be set to the directory where LIBOBJS objects are built.
- as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
- as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
-$as_echo_n "checking that generated files are newer than configure... " >&6; }
- if test -n "$am_sleep_pid"; then
- # Hide warnings about reused PIDs.
- wait $am_sleep_pid 2>/dev/null
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
-$as_echo "done" >&6; }
- if test -n "$EXEEXT"; then
- am__EXEEXT_TRUE=
- am__EXEEXT_FALSE='#'
-else
- am__EXEEXT_TRUE='#'
- am__EXEEXT_FALSE=
-fi
-
-if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
- as_fn_error $? "conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
- as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
- as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
- as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${BUILD_XENAPILIB_TRUE}" && test -z "${BUILD_XENAPILIB_FALSE}"; then
- as_fn_error $? "conditional \"BUILD_XENAPILIB\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-
-: "${CONFIG_STATUS=./config.status}"
-ac_write_fail=0
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-as_write_fail=0
-cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
- as_status=$1; test $as_status -eq 0 && as_status=1
- if test "$4"; then
- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
- $as_echo "$as_me: error: $2" >&2
- as_fn_exit $as_status
-} # as_fn_error
-
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
- return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
- set +e
- as_fn_set_status $1
- exit $1
-} # as_fn_exit
-
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
- { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
- eval 'as_fn_append ()
- {
- eval $1+=\$2
- }'
-else
- as_fn_append ()
- {
- eval $1=\$$1\$2
- }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
- eval 'as_fn_arith ()
- {
- as_val=$(( $* ))
- }'
-else
- as_fn_arith ()
- {
- as_val=`expr "$@" || test $? -eq 1`
- }
-fi # as_fn_arith
-
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -pR'
- fi
-else
- as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || eval $as_mkdir_p || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p='mkdir -p "$as_dir"'
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-exec 6>&1
-## ----------------------------------- ##
-## Main body of $CONFIG_STATUS script. ##
-## ----------------------------------- ##
-_ASEOF
-test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# Save the log message, to keep $0 and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.
-ac_log="
-This file was extended by fence-agents $as_me 4.0.25, which was
-generated by GNU Autoconf 2.69. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- $ $0 $@
-
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
-
-_ACEOF
-
-case $ac_config_files in *"
-"*) set x $ac_config_files; shift; ac_config_files=$*;;
-esac
-
-case $ac_config_headers in *"
-"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
-esac
-
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_headers="$ac_config_headers"
-config_commands="$ac_config_commands"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-ac_cs_usage="\
-\`$as_me' instantiates files and other configuration actions
-from templates according to the current configuration. Unless the files
-and actions are specified as TAGs, all are instantiated by default.
-
-Usage: $0 [OPTION]... [TAG]...
-
- -h, --help print this help, then exit
- -V, --version print version number and configuration settings, then exit
- --config print configuration, then exit
- -q, --quiet, --silent
- do not print progress messages
- -d, --debug don't remove temporary files
- --recheck update $as_me by reconfiguring in the same conditions
- --file=FILE[:TEMPLATE]
- instantiate the configuration file FILE
- --header=FILE[:TEMPLATE]
- instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Configuration commands:
-$config_commands
-
-Report bugs to <linux-cluster at redhat.com>."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
-ac_cs_version="\\
-fence-agents config.status 4.0.25
-configured by $0, generated by GNU Autoconf 2.69,
- with options \\"\$ac_cs_config\\"
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-INSTALL='$INSTALL'
-MKDIR_P='$MKDIR_P'
-AWK='$AWK'
-test -n "\$AWK" || AWK=awk
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# The default lists apply if the user does not specify any file.
-ac_need_defaults=:
-while test $# != 0
-do
- case $1 in
- --*=?*)
- ac_option=`expr "X$1" : 'X\([^=]*\)='`
- ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
- ac_shift=:
- ;;
- --*=)
- ac_option=`expr "X$1" : 'X\([^=]*\)='`
- ac_optarg=
- ac_shift=:
- ;;
- *)
- ac_option=$1
- ac_optarg=$2
- ac_shift=shift
- ;;
- esac
-
- case $ac_option in
- # Handling of the options.
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- ac_cs_recheck=: ;;
- --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
- $as_echo "$ac_cs_version"; exit ;;
- --config | --confi | --conf | --con | --co | --c )
- $as_echo "$ac_cs_config"; exit ;;
- --debug | --debu | --deb | --de | --d | -d )
- debug=: ;;
- --file | --fil | --fi | --f )
- $ac_shift
- case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
- '') as_fn_error $? "missing file argument" ;;
- esac
- as_fn_append CONFIG_FILES " '$ac_optarg'"
- ac_need_defaults=false;;
- --header | --heade | --head | --hea )
- $ac_shift
- case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- as_fn_append CONFIG_HEADERS " '$ac_optarg'"
- ac_need_defaults=false;;
- --he | --h)
- # Conflict between --help and --header
- as_fn_error $? "ambiguous option: \`$1'
-Try \`$0 --help' for more information.";;
- --help | --hel | -h )
- $as_echo "$ac_cs_usage"; exit ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil | --si | --s)
- ac_cs_silent=: ;;
-
- # This is an error.
- -*) as_fn_error $? "unrecognized option: \`$1'
-Try \`$0 --help' for more information." ;;
-
- *) as_fn_append ac_config_targets " $1"
- ac_need_defaults=false ;;
-
- esac
- shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
- exec 6>/dev/null
- ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-if \$ac_cs_recheck; then
- set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
- shift
- \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
- CONFIG_SHELL='$SHELL'
- export CONFIG_SHELL
- exec "\$@"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-exec 5>>config.log
-{
- echo
- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
- $as_echo "$ac_log"
-} >&5
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-#
-# INIT-COMMANDS
-#
-AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
-
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-sed_quote_subst='$sed_quote_subst'
-double_quote_subst='$double_quote_subst'
-delay_variable_subst='$delay_variable_subst'
-macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
-macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
-enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
-enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
-pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
-enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
-SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
-ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
-PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
-host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
-host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
-host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
-build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
-build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
-build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
-SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
-Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
-GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
-EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
-FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
-LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
-NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
-LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
-max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
-ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
-exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
-lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
-lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
-lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
-lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
-lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
-reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
-reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
-OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
-deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
-file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
-file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
-want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
-DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
-sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
-AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
-AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
-archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
-STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
-RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
-old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
-old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
-lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
-CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
-CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
-compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
-GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
-nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
-lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
-objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
-MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
-need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
-MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
-DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
-NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
-LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
-OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
-libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
-shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
-extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
-archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
-export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
-whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
-compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
-old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
-archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
-archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
-module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
-module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
-with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
-allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
-no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
-hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
-hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
-hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
-hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
-hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
-inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
-link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
-always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
-export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
-exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
-include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
-prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
-postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
-file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
-variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
-need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
-need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
-version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
-runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
-shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
-shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
-libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
-library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
-soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
-install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
-postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
-finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
-finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
-hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
-sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
-sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`'
-hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
-enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
-enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
-enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
-old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
-striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
-compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`'
-predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`'
-postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`'
-predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`'
-postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`'
-compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`'
-LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`'
-reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`'
-reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`'
-GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`'
-archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`'
-export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
-whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
-compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`'
-old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`'
-allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`'
-no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`'
-inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`'
-link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`'
-always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`'
-export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`'
-include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`'
-prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`'
-compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`'
-predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`'
-postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`'
-predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`'
-postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`'
-compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`'
-
-LTCC='$LTCC'
-LTCFLAGS='$LTCFLAGS'
-compiler='$compiler_DEFAULT'
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-\$1
-_LTECHO_EOF'
-}
-
-# Quote evaled strings.
-for var in SHELL \
-ECHO \
-PATH_SEPARATOR \
-SED \
-GREP \
-EGREP \
-FGREP \
-LD \
-NM \
-LN_S \
-lt_SP2NL \
-lt_NL2SP \
-reload_flag \
-OBJDUMP \
-deplibs_check_method \
-file_magic_cmd \
-file_magic_glob \
-want_nocaseglob \
-DLLTOOL \
-sharedlib_from_linklib_cmd \
-AR \
-AR_FLAGS \
-archiver_list_spec \
-STRIP \
-RANLIB \
-CC \
-CFLAGS \
-compiler \
-lt_cv_sys_global_symbol_pipe \
-lt_cv_sys_global_symbol_to_cdecl \
-lt_cv_sys_global_symbol_to_c_name_address \
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
-nm_file_list_spec \
-lt_prog_compiler_no_builtin_flag \
-lt_prog_compiler_pic \
-lt_prog_compiler_wl \
-lt_prog_compiler_static \
-lt_cv_prog_compiler_c_o \
-need_locks \
-MANIFEST_TOOL \
-DSYMUTIL \
-NMEDIT \
-LIPO \
-OTOOL \
-OTOOL64 \
-shrext_cmds \
-export_dynamic_flag_spec \
-whole_archive_flag_spec \
-compiler_needs_object \
-with_gnu_ld \
-allow_undefined_flag \
-no_undefined_flag \
-hardcode_libdir_flag_spec \
-hardcode_libdir_separator \
-exclude_expsyms \
-include_expsyms \
-file_list_spec \
-variables_saved_for_relink \
-libname_spec \
-library_names_spec \
-soname_spec \
-install_override_mode \
-finish_eval \
-old_striplib \
-striplib \
-compiler_lib_search_dirs \
-predep_objects \
-postdep_objects \
-predeps \
-postdeps \
-compiler_lib_search_path \
-LD_CXX \
-reload_flag_CXX \
-compiler_CXX \
-lt_prog_compiler_no_builtin_flag_CXX \
-lt_prog_compiler_pic_CXX \
-lt_prog_compiler_wl_CXX \
-lt_prog_compiler_static_CXX \
-lt_cv_prog_compiler_c_o_CXX \
-export_dynamic_flag_spec_CXX \
-whole_archive_flag_spec_CXX \
-compiler_needs_object_CXX \
-with_gnu_ld_CXX \
-allow_undefined_flag_CXX \
-no_undefined_flag_CXX \
-hardcode_libdir_flag_spec_CXX \
-hardcode_libdir_separator_CXX \
-exclude_expsyms_CXX \
-include_expsyms_CXX \
-file_list_spec_CXX \
-compiler_lib_search_dirs_CXX \
-predep_objects_CXX \
-postdep_objects_CXX \
-predeps_CXX \
-postdeps_CXX \
-compiler_lib_search_path_CXX; do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[\\\\\\\`\\"\\\$]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-# Double-quote double-evaled strings.
-for var in reload_cmds \
-old_postinstall_cmds \
-old_postuninstall_cmds \
-old_archive_cmds \
-extract_expsyms_cmds \
-old_archive_from_new_cmds \
-old_archive_from_expsyms_cmds \
-archive_cmds \
-archive_expsym_cmds \
-module_cmds \
-module_expsym_cmds \
-export_symbols_cmds \
-prelink_cmds \
-postlink_cmds \
-postinstall_cmds \
-postuninstall_cmds \
-finish_cmds \
-sys_lib_search_path_spec \
-sys_lib_dlsearch_path_spec \
-reload_cmds_CXX \
-old_archive_cmds_CXX \
-old_archive_from_new_cmds_CXX \
-old_archive_from_expsyms_cmds_CXX \
-archive_cmds_CXX \
-archive_expsym_cmds_CXX \
-module_cmds_CXX \
-module_expsym_cmds_CXX \
-export_symbols_cmds_CXX \
-prelink_cmds_CXX \
-postlink_cmds_CXX; do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[\\\\\\\`\\"\\\$]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-ac_aux_dir='$ac_aux_dir'
-xsi_shell='$xsi_shell'
-lt_shell_append='$lt_shell_append'
-
-# See if we are running on zsh, and set the options which allow our
-# commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
-fi
-
-
- PACKAGE='$PACKAGE'
- VERSION='$VERSION'
- TIMESTAMP='$TIMESTAMP'
- RM='$RM'
- ofile='$ofile'
-
-
-
-
-
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
- case $ac_config_target in
- "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
- "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
- "make/clusterautoconfig.h") CONFIG_HEADERS="$CONFIG_HEADERS make/clusterautoconfig.h" ;;
- "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
- "fence/Makefile") CONFIG_FILES="$CONFIG_FILES fence/Makefile" ;;
- "fence/agents/Makefile") CONFIG_FILES="$CONFIG_FILES fence/agents/Makefile" ;;
- "fence/agents/lib/Makefile") CONFIG_FILES="$CONFIG_FILES fence/agents/lib/Makefile" ;;
- "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
-
- *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
- esac
-done
-
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used. Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
- test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
- test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience. Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
- tmp= ac_tmp=
- trap 'exit_status=$?
- : "${ac_tmp:=$tmp}"
- { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
-' 0
- trap 'as_fn_exit 1' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
- tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
- test -d "$tmp"
-} ||
-{
- tmp=./conf$$-$RANDOM
- (umask 077 && mkdir "$tmp")
-} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
-ac_tmp=$tmp
-
-# Set up the scripts for CONFIG_FILES section.
-# No need to generate them if there are no CONFIG_FILES.
-# This happens for instance with `./config.status config.h'.
-if test -n "$CONFIG_FILES"; then
-
-
-ac_cr=`echo X | tr X '\015'`
-# On cygwin, bash can eat \r inside `` if the user requested igncr.
-# But we know of no other shell where ac_cr would be empty at this
-# point, so we can use a bashism as a fallback.
-if test "x$ac_cr" = x; then
- eval ac_cr=\$\'\\r\'
-fi
-ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
-if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
- ac_cs_awk_cr='\\r'
-else
- ac_cs_awk_cr=$ac_cr
-fi
-
-echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
-_ACEOF
-
-
-{
- echo "cat >conf$$subs.awk <<_ACEOF" &&
- echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
- echo "_ACEOF"
-} >conf$$subs.sh ||
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
- . ./conf$$subs.sh ||
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-
- ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
- if test $ac_delim_n = $ac_delim_num; then
- break
- elif $ac_last_try; then
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-rm -f conf$$subs.sh
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
-_ACEOF
-sed -n '
-h
-s/^/S["/; s/!.*/"]=/
-p
-g
-s/^[^!]*!//
-:repl
-t repl
-s/'"$ac_delim"'$//
-t delim
-:nl
-h
-s/\(.\{148\}\)..*/\1/
-t more1
-s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
-p
-n
-b repl
-:more1
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t nl
-:delim
-h
-s/\(.\{148\}\)..*/\1/
-t more2
-s/["\\]/\\&/g; s/^/"/; s/$/"/
-p
-b
-:more2
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t delim
-' <conf$$subs.awk | sed '
-/^[^""]/{
- N
- s/\n//
-}
-' >>$CONFIG_STATUS || ac_write_fail=1
-rm -f conf$$subs.awk
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-_ACAWK
-cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
- for (key in S) S_is_set[key] = 1
- FS = ""
-
-}
-{
- line = $ 0
- nfields = split(line, field, "@")
- substed = 0
- len = length(field[1])
- for (i = 2; i < nfields; i++) {
- key = field[i]
- keylen = length(key)
- if (S_is_set[key]) {
- value = S[key]
- line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
- len += length(value) + length(field[++i])
- substed = 1
- } else
- len += 1 + keylen
- }
-
- print line
-}
-
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
- sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
-else
- cat
-fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
- || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
-_ACEOF
-
-# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
-# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
-h
-s///
-s/^/:/
-s/[ ]*$/:/
-s/:\$(srcdir):/:/g
-s/:\${srcdir}:/:/g
-s/:@srcdir@:/:/g
-s/^:*//
-s/:*$//
-x
-s/\(=[ ]*\).*/\1/
-G
-s/\n//
-s/^[^=]*=[ ]*$//
-}'
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-fi # test -n "$CONFIG_FILES"
-
-# Set up the scripts for CONFIG_HEADERS section.
-# No need to generate them if there are no CONFIG_HEADERS.
-# This happens for instance with `./config.status Makefile'.
-if test -n "$CONFIG_HEADERS"; then
-cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
-BEGIN {
-_ACEOF
-
-# Transform confdefs.h into an awk script `defines.awk', embedded as
-# here-document in config.status, that substitutes the proper values into
-# config.h.in to produce config.h.
-
-# Create a delimiter string that does not exist in confdefs.h, to ease
-# handling of long lines.
-ac_delim='%!_!# '
-for ac_last_try in false false :; do
- ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
- if test -z "$ac_tt"; then
- break
- elif $ac_last_try; then
- as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-
-# For the awk script, D is an array of macro values keyed by name,
-# likewise P contains macro parameters if any. Preserve backslash
-# newline sequences.
-
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-sed -n '
-s/.\{148\}/&'"$ac_delim"'/g
-t rset
-:rset
-s/^[ ]*#[ ]*define[ ][ ]*/ /
-t def
-d
-:def
-s/\\$//
-t bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3"/p
-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
-d
-:bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3\\\\\\n"\\/p
-t cont
-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
-t cont
-d
-:cont
-n
-s/.\{148\}/&'"$ac_delim"'/g
-t clear
-:clear
-s/\\$//
-t bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/"/p
-d
-:bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
-b cont
-' <confdefs.h | sed '
-s/'"$ac_delim"'/"\\\
-"/g' >>$CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- for (key in D) D_is_set[key] = 1
- FS = ""
-}
-/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
- line = \$ 0
- split(line, arg, " ")
- if (arg[1] == "#") {
- defundef = arg[2]
- mac1 = arg[3]
- } else {
- defundef = substr(arg[1], 2)
- mac1 = arg[2]
- }
- split(mac1, mac2, "(") #)
- macro = mac2[1]
- prefix = substr(line, 1, index(line, defundef) - 1)
- if (D_is_set[macro]) {
- # Preserve the white space surrounding the "#".
- print prefix "define", macro P[macro] D[macro]
- next
- } else {
- # Replace #undef with comments. This is necessary, for example,
- # in the case of _POSIX_SOURCE, which is predefined and required
- # on some systems where configure will not decide to define it.
- if (defundef == "undef") {
- print "/*", prefix defundef, macro, "*/"
- next
- }
- }
-}
-{ print }
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
- as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
-fi # test -n "$CONFIG_HEADERS"
-
-
-eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
-shift
-for ac_tag
-do
- case $ac_tag in
- :[FHLC]) ac_mode=$ac_tag; continue;;
- esac
- case $ac_mode$ac_tag in
- :[FHL]*:*);;
- :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
- :[FH]-) ac_tag=-:-;;
- :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
- esac
- ac_save_IFS=$IFS
- IFS=:
- set x $ac_tag
- IFS=$ac_save_IFS
- shift
- ac_file=$1
- shift
-
- case $ac_mode in
- :L) ac_source=$1;;
- :[FH])
- ac_file_inputs=
- for ac_f
- do
- case $ac_f in
- -) ac_f="$ac_tmp/stdin";;
- *) # Look for the file first in the build tree, then in the source tree
- # (if the path is not absolute). The absolute path cannot be DOS-style,
- # because $ac_f cannot contain `:'.
- test -f "$ac_f" ||
- case $ac_f in
- [\\/$]*) false;;
- *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
- esac ||
- as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
- esac
- case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
- as_fn_append ac_file_inputs " '$ac_f'"
- done
-
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- configure_input='Generated from '`
- $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
- `' by configure.'
- if test x"$ac_file" != x-; then
- configure_input="$ac_file. $configure_input"
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
- fi
- # Neutralize special characters interpreted by sed in replacement strings.
- case $configure_input in #(
- *\&* | *\|* | *\\* )
- ac_sed_conf_input=`$as_echo "$configure_input" |
- sed 's/[\\\\&|]/\\\\&/g'`;; #(
- *) ac_sed_conf_input=$configure_input;;
- esac
-
- case $ac_tag in
- *:-:* | *:-) cat >"$ac_tmp/stdin" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
- esac
- ;;
- esac
-
- ac_dir=`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- as_dir="$ac_dir"; as_fn_mkdir_p
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-
- case $ac_mode in
- :F)
- #
- # CONFIG_FILE
- #
-
- case $INSTALL in
- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
- *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
- esac
- ac_MKDIR_P=$MKDIR_P
- case $MKDIR_P in
- [\\/$]* | ?:[\\/]* ) ;;
- */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
- esac
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-ac_sed_dataroot='
-/datarootdir/ {
- p
- q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p'
-case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- ac_datarootdir_hack='
- s&@datadir@&$datadir&g
- s&@docdir@&$docdir&g
- s&@infodir@&$infodir&g
- s&@localedir@&$localedir&g
- s&@mandir@&$mandir&g
- s&\\\${datarootdir}&$datarootdir&g' ;;
-esac
-_ACEOF
-
-# Neutralize VPATH when `$srcdir' = `.'.
-# Shell code in configure.ac might set extrasub.
-# FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_sed_extra="$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s|@configure_input@|$ac_sed_conf_input|;t t
-s&@top_builddir@&$ac_top_builddir_sub&;t t
-s&@top_build_prefix@&$ac_top_build_prefix&;t t
-s&@srcdir@&$ac_srcdir&;t t
-s&@abs_srcdir@&$ac_abs_srcdir&;t t
-s&@top_srcdir@&$ac_top_srcdir&;t t
-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-s&@builddir@&$ac_builddir&;t t
-s&@abs_builddir@&$ac_abs_builddir&;t t
-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-s&@INSTALL@&$ac_INSTALL&;t t
-s&@MKDIR_P@&$ac_MKDIR_P&;t t
-$ac_datarootdir_hack
-"
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
- >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
- { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
- { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
- "$ac_tmp/out"`; test -z "$ac_out"; } &&
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined" >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined" >&2;}
-
- rm -f "$ac_tmp/stdin"
- case $ac_file in
- -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
- *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
- esac \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- ;;
- :H)
- #
- # CONFIG_HEADER
- #
- if test x"$ac_file" != x-; then
- {
- $as_echo "/* $configure_input */" \
- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
- } >"$ac_tmp/config.h" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-$as_echo "$as_me: $ac_file is unchanged" >&6;}
- else
- rm -f "$ac_file"
- mv "$ac_tmp/config.h" "$ac_file" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- fi
- else
- $as_echo "/* $configure_input */" \
- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
- || as_fn_error $? "could not create -" "$LINENO" 5
- fi
-# Compute "$ac_file"'s index in $config_headers.
-_am_arg="$ac_file"
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- $_am_arg | $_am_arg:* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
-$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$_am_arg" : 'X\(//\)[^/]' \| \
- X"$_am_arg" : 'X\(//\)$' \| \
- X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$_am_arg" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`/stamp-h$_am_stamp_count
- ;;
-
- :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
-$as_echo "$as_me: executing $ac_file commands" >&6;}
- ;;
- esac
-
-
- case $ac_file$ac_mode in
- "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
- # Older Autoconf quotes --file arguments for eval, but not when files
- # are listed without --file. Let's play safe and only enable the eval
- # if we detect the quoting.
- case $CONFIG_FILES in
- *\'*) eval set x "$CONFIG_FILES" ;;
- *) set x $CONFIG_FILES ;;
- esac
- shift
- for mf
- do
- # Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named 'Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # Grep'ing the whole file is not good either: AIX grep has a line
- # limit of 2048, but all sed's we know have understand at least 4000.
- if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
- dirpart=`$as_dirname -- "$mf" ||
-$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$mf" : 'X\(//\)[^/]' \| \
- X"$mf" : 'X\(//\)$' \| \
- X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$mf" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- else
- continue
- fi
- # Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running 'make'.
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
- test -z "$DEPDIR" && continue
- am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "$am__include" && continue
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # Find all dependency output files, they are included files with
- # $(DEPDIR) in their names. We invoke sed twice because it is the
- # simplest approach to changing $(DEPDIR) to its actual value in the
- # expansion.
- for file in `sed -n "
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
- fdir=`$as_dirname -- "$file" ||
-$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$file" : 'X\(//\)[^/]' \| \
- X"$file" : 'X\(//\)$' \| \
- X"$file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- as_dir=$dirpart/$fdir; as_fn_mkdir_p
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
- done
- done
-}
- ;;
- "libtool":C)
-
- # See if we are running on zsh, and set the options which allow our
- # commands through without removal of \ escapes.
- if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
- fi
-
- cfgfile="${ofile}T"
- trap "$RM \"$cfgfile\"; exit 1" 1 2 15
- $RM "$cfgfile"
-
- cat <<_LT_EOF >> "$cfgfile"
-#! $SHELL
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-# 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
-# Written by Gordon Matzigkeit, 1996
-#
-# This file is part of GNU Libtool.
-#
-# GNU Libtool 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.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Libtool; see the file COPYING. If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-
-# The names of the tagged configurations supported by this script.
-available_tags="CXX "
-
-# ### BEGIN LIBTOOL CONFIG
-
-# Which release of libtool.m4 was used?
-macro_version=$macro_version
-macro_revision=$macro_revision
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# What type of objects to build.
-pic_mode=$pic_mode
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# An echo program that protects backslashes.
-ECHO=$lt_ECHO
-
-# The PATH separator for the build system.
-PATH_SEPARATOR=$lt_PATH_SEPARATOR
-
-# The host system.
-host_alias=$host_alias
-host=$host
-host_os=$host_os
-
-# The build system.
-build_alias=$build_alias
-build=$build
-build_os=$build_os
-
-# A sed program that does not truncate output.
-SED=$lt_SED
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="\$SED -e 1s/^X//"
-
-# A grep program that handles long lines.
-GREP=$lt_GREP
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# A literal string matcher.
-FGREP=$lt_FGREP
-
-# A BSD- or MS-compatible name lister.
-NM=$lt_NM
-
-# Whether we need soft or hard links.
-LN_S=$lt_LN_S
-
-# What is the maximum length of a command?
-max_cmd_len=$max_cmd_len
-
-# Object file suffix (normally "o").
-objext=$ac_objext
-
-# Executable file suffix (normally "").
-exeext=$exeext
-
-# whether the shell understands "unset".
-lt_unset=$lt_unset
-
-# turn spaces into newlines.
-SP2NL=$lt_lt_SP2NL
-
-# turn newlines into spaces.
-NL2SP=$lt_lt_NL2SP
-
-# convert \$build file names to \$host format.
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-
-# convert \$build files to toolchain format.
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-
-# An object symbol dumper.
-OBJDUMP=$lt_OBJDUMP
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method = "file_magic".
-file_magic_cmd=$lt_file_magic_cmd
-
-# How to find potential files when deplibs_check_method = "file_magic".
-file_magic_glob=$lt_file_magic_glob
-
-# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
-want_nocaseglob=$lt_want_nocaseglob
-
-# DLL creation program.
-DLLTOOL=$lt_DLLTOOL
-
-# Command to associate shared and link libraries.
-sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
-
-# The archiver.
-AR=$lt_AR
-
-# Flags to create an archive.
-AR_FLAGS=$lt_AR_FLAGS
-
-# How to feed a file listing to the archiver.
-archiver_list_spec=$lt_archiver_list_spec
-
-# A symbol stripping program.
-STRIP=$lt_STRIP
-
-# Commands used to install an old-style archive.
-RANLIB=$lt_RANLIB
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Whether to use a lock for old archive extraction.
-lock_old_archive_extraction=$lock_old_archive_extraction
-
-# A C compiler.
-LTCC=$lt_CC
-
-# LTCC compiler flags.
-LTCFLAGS=$lt_CFLAGS
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration.
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair.
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# Transform the output of nm in a C name address pair when lib prefix is needed.
-global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
-
-# Specify filename containing input files for \$NM.
-nm_file_list_spec=$lt_nm_file_list_spec
-
-# The root where to search for dependent libraries,and in which our libraries should be installed.
-lt_sysroot=$lt_sysroot
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# Used to examine libraries when file_magic_cmd begins with "file".
-MAGIC_CMD=$MAGIC_CMD
-
-# Must we lock files when doing compilation?
-need_locks=$lt_need_locks
-
-# Manifest tool.
-MANIFEST_TOOL=$lt_MANIFEST_TOOL
-
-# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
-DSYMUTIL=$lt_DSYMUTIL
-
-# Tool to change global to local symbols on Mac OS X.
-NMEDIT=$lt_NMEDIT
-
-# Tool to manipulate fat objects and archives on Mac OS X.
-LIPO=$lt_LIPO
-
-# ldd/readelf like tool for Mach-O binaries on Mac OS X.
-OTOOL=$lt_OTOOL
-
-# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
-OTOOL64=$lt_OTOOL64
-
-# Old archive suffix (normally "a").
-libext=$libext
-
-# Shared library suffix (normally ".so").
-shrext_cmds=$lt_shrext_cmds
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at link time.
-variables_saved_for_relink=$lt_variables_saved_for_relink
-
-# Do we need the "lib" prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Library versioning type.
-version_type=$version_type
-
-# Shared library runtime path variable.
-runpath_var=$runpath_var
-
-# Shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names. First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Permission mode override for installation of shared libraries.
-install_override_mode=$lt_install_override_mode
-
-# Command to use after installation of a shared archive.
-postinstall_cmds=$lt_postinstall_cmds
-
-# Command to use after uninstallation of a shared archive.
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# As "finish_cmds", except a single script fragment to be evaled but
-# not shown.
-finish_eval=$lt_finish_eval
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Compile-time system search path for libraries.
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries.
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-
-# The linker used to build libraries.
-LD=$lt_LD
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# Commands used to build an old-style archive.
-old_archive_cmds=$lt_old_archive_cmds
-
-# A language specific compiler.
-CC=$lt_compiler
-
-# Is the compiler the GNU compiler?
-with_gcc=$GCC
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc
-
-# Whether or not to disallow shared libs when runtime libs are static.
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec
-
-# Whether the compiler copes with passing no objects directly.
-compiler_needs_object=$lt_compiler_needs_object
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
-
-# Commands used to build a shared archive.
-archive_cmds=$lt_archive_cmds
-archive_expsym_cmds=$lt_archive_expsym_cmds
-
-# Commands used to build a loadable module if different from building
-# a shared archive.
-module_cmds=$lt_module_cmds
-module_expsym_cmds=$lt_module_expsym_cmds
-
-# Whether we are building with GNU ld or not.
-with_gnu_ld=$lt_with_gnu_ld
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag
-
-# Flag that enforces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
-
-# Whether we need a single "-rpath" flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary.
-hardcode_direct=$hardcode_direct
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
-# library is relocated.
-hardcode_direct_absolute=$hardcode_direct_absolute
-
-# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-# into the resulting binary.
-hardcode_minus_L=$hardcode_minus_L
-
-# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-# into the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var
-
-# Set to "yes" if building a shared library automatically hardcodes DIR
-# into the library and all subsequent libraries and executables linked
-# against it.
-hardcode_automatic=$hardcode_automatic
-
-# Set to yes if linker adds runtime paths of dependent libraries
-# to runtime path list.
-inherit_rpath=$inherit_rpath
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs
-
-# Set to "yes" if exported symbols are required.
-always_export_symbols=$always_export_symbols
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms
-
-# Commands necessary for linking programs (against libraries) with templates.
-prelink_cmds=$lt_prelink_cmds
-
-# Commands necessary for finishing linking programs.
-postlink_cmds=$lt_postlink_cmds
-
-# Specify filename containing input files.
-file_list_spec=$lt_file_list_spec
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action
-
-# The directories searched by this compiler when creating a shared library.
-compiler_lib_search_dirs=$lt_compiler_lib_search_dirs
-
-# Dependencies to place before and after the objects being linked to
-# create a shared library.
-predep_objects=$lt_predep_objects
-postdep_objects=$lt_postdep_objects
-predeps=$lt_predeps
-postdeps=$lt_postdeps
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path
-
-# ### END LIBTOOL CONFIG
-
-_LT_EOF
-
- case $host_os in
- aix3*)
- cat <<\_LT_EOF >> "$cfgfile"
-# AIX sometimes has problems with the GCC collect2 program. For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
-fi
-_LT_EOF
- ;;
- esac
-
-
-ltmain="$ac_aux_dir/ltmain.sh"
-
-
- # We use sed instead of cat because bash on DJGPP gets confused if
- # if finds mixed CR/LF and LF-only lines. Since sed operates in
- # text mode, it properly converts lines to CR/LF. This bash problem
- # is reportedly fixed, but why not run on old versions too?
- sed '$q' "$ltmain" >> "$cfgfile" \
- || (rm -f "$cfgfile"; exit 1)
-
- if test x"$xsi_shell" = xyes; then
- sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
-func_dirname ()\
-{\
-\ case ${1} in\
-\ */*) func_dirname_result="${1%/*}${2}" ;;\
-\ * ) func_dirname_result="${3}" ;;\
-\ esac\
-} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_basename ()$/,/^} # func_basename /c\
-func_basename ()\
-{\
-\ func_basename_result="${1##*/}"\
-} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
-func_dirname_and_basename ()\
-{\
-\ case ${1} in\
-\ */*) func_dirname_result="${1%/*}${2}" ;;\
-\ * ) func_dirname_result="${3}" ;;\
-\ esac\
-\ func_basename_result="${1##*/}"\
-} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
-func_stripname ()\
-{\
-\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
-\ # positional parameters, so assign one to ordinary parameter first.\
-\ func_stripname_result=${3}\
-\ func_stripname_result=${func_stripname_result#"${1}"}\
-\ func_stripname_result=${func_stripname_result%"${2}"}\
-} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
-func_split_long_opt ()\
-{\
-\ func_split_long_opt_name=${1%%=*}\
-\ func_split_long_opt_arg=${1#*=}\
-} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
-func_split_short_opt ()\
-{\
-\ func_split_short_opt_arg=${1#??}\
-\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
-} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
-func_lo2o ()\
-{\
-\ case ${1} in\
-\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
-\ *) func_lo2o_result=${1} ;;\
-\ esac\
-} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_xform ()$/,/^} # func_xform /c\
-func_xform ()\
-{\
- func_xform_result=${1%.*}.lo\
-} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_arith ()$/,/^} # func_arith /c\
-func_arith ()\
-{\
- func_arith_result=$(( $* ))\
-} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_len ()$/,/^} # func_len /c\
-func_len ()\
-{\
- func_len_result=${#1}\
-} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-fi
-
-if test x"$lt_shell_append" = xyes; then
- sed -e '/^func_append ()$/,/^} # func_append /c\
-func_append ()\
-{\
- eval "${1}+=\\${2}"\
-} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
-func_append_quoted ()\
-{\
-\ func_quote_for_eval "${2}"\
-\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
-} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
- # Save a `func_append' function call where possible by direct use of '+='
- sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
- test 0 -eq $? || _lt_function_replace_fail=:
-else
- # Save a `func_append' function call even when '+=' is not available
- sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
- test 0 -eq $? || _lt_function_replace_fail=:
-fi
-
-if test x"$_lt_function_replace_fail" = x":"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
-$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
-fi
-
-
- mv -f "$cfgfile" "$ofile" ||
- (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
- chmod +x "$ofile"
-
-
- cat <<_LT_EOF >> "$ofile"
-
-# ### BEGIN LIBTOOL TAG CONFIG: CXX
-
-# The linker used to build libraries.
-LD=$lt_LD_CXX
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag_CXX
-reload_cmds=$lt_reload_cmds_CXX
-
-# Commands used to build an old-style archive.
-old_archive_cmds=$lt_old_archive_cmds_CXX
-
-# A language specific compiler.
-CC=$lt_compiler_CXX
-
-# Is the compiler the GNU compiler?
-with_gcc=$GCC_CXX
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_CXX
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_CXX
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_CXX
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc_CXX
-
-# Whether or not to disallow shared libs when runtime libs are static.
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
-
-# Whether the compiler copes with passing no objects directly.
-compiler_needs_object=$lt_compiler_needs_object_CXX
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
-
-# Commands used to build a shared archive.
-archive_cmds=$lt_archive_cmds_CXX
-archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
-
-# Commands used to build a loadable module if different from building
-# a shared archive.
-module_cmds=$lt_module_cmds_CXX
-module_expsym_cmds=$lt_module_expsym_cmds_CXX
-
-# Whether we are building with GNU ld or not.
-with_gnu_ld=$lt_with_gnu_ld_CXX
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_CXX
-
-# Flag that enforces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_CXX
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
-
-# Whether we need a single "-rpath" flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary.
-hardcode_direct=$hardcode_direct_CXX
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
-# library is relocated.
-hardcode_direct_absolute=$hardcode_direct_absolute_CXX
-
-# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-# into the resulting binary.
-hardcode_minus_L=$hardcode_minus_L_CXX
-
-# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-# into the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
-
-# Set to "yes" if building a shared library automatically hardcodes DIR
-# into the library and all subsequent libraries and executables linked
-# against it.
-hardcode_automatic=$hardcode_automatic_CXX
-
-# Set to yes if linker adds runtime paths of dependent libraries
-# to runtime path list.
-inherit_rpath=$inherit_rpath_CXX
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs_CXX
-
-# Set to "yes" if exported symbols are required.
-always_export_symbols=$always_export_symbols_CXX
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds_CXX
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms_CXX
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms_CXX
-
-# Commands necessary for linking programs (against libraries) with templates.
-prelink_cmds=$lt_prelink_cmds_CXX
-
-# Commands necessary for finishing linking programs.
-postlink_cmds=$lt_postlink_cmds_CXX
-
-# Specify filename containing input files.
-file_list_spec=$lt_file_list_spec_CXX
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_CXX
-
-# The directories searched by this compiler when creating a shared library.
-compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX
-
-# Dependencies to place before and after the objects being linked to
-# create a shared library.
-predep_objects=$lt_predep_objects_CXX
-postdep_objects=$lt_postdep_objects_CXX
-predeps=$lt_predeps_CXX
-postdeps=$lt_postdeps_CXX
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
-
-# ### END LIBTOOL TAG CONFIG: CXX
-_LT_EOF
-
- ;;
-
- esac
-done # for ac_tag
-
-
-as_fn_exit 0
-_ACEOF
-ac_clean_files=$ac_clean_files_save
-
-test $ac_write_fail = 0 ||
- as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded. So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status. When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
- ac_cs_success=:
- ac_config_status_args=
- test "$silent" = yes &&
- ac_config_status_args="$ac_config_status_args --quiet"
- exec 5>/dev/null
- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
- exec 5>>config.log
- # Use ||, not &&, to avoid exiting from the if with $? = 1, which
- # would make configure fail if this is the last instruction.
- $ac_cs_success || as_fn_exit 1
-fi
-if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
-fi
-
diff --git a/configure.ac b/configure.ac
index 4c3f7fc..4b9e742 100644
--- a/configure.ac
+++ b/configure.ac
@@ -130,11 +130,34 @@ if test "x$AGENTS_LIST" = x; then
AC_ERROR([No agents selected])
fi
+FENCE_KDUMP=0
+if echo "$AGENTS_LIST" | grep -q -E "all|kdump"; then
+ FENCE_KDUMP=1
+ AGENTS_LIST=$(echo "$AGENTS_LIST" | sed -E "s/kdump( |$)//")
+fi
+
+FENCE_MANUAL=0
+if echo "$AGENTS_LIST" | grep -q -E "all|manual"; then
+ FENCE_MANUAL=1
+ AGENTS_LIST=$(echo "$AGENTS_LIST" | sed -E "s/manual( |$)//")
+fi
+
+FENCE_SCSI=0
+if echo "$AGENTS_LIST" | grep -q -E "all|scsi"; then
+ FENCE_SCSI=1
+fi
+
+FENCE_ZVM=0
+if echo "$AGENTS_LIST" | grep -q -E "all|zvm( |$)"; then
+ FENCE_ZVM=1
+fi
+
if test "x$AGENTS_LIST" != xall; then
for j in $AGENTS_LIST; do
- if ! test -d fence/agents/$j; then
+ if ! test -f fence/agents/$j/fence_$j*.py; then
AC_ERROR([Agent $j does not exists])
fi
+ AGENTS_LIST=`echo "$AGENTS_LIST" | sed -E -e "s#$j([^_/]|$)#$j/fence_$j\1#g" -e "s#zvm/fence_zvm( |$)#zvm/fence_zvmip\1#g"`
done
fi
@@ -159,11 +182,22 @@ if test -z "$PYTHON"; then
exit 1
fi
-AC_PYTHON_MODULE(suds, 1)
AC_PYTHON_MODULE(pexpect, 1)
AC_PYTHON_MODULE(pycurl, 1)
AC_PYTHON_MODULE(requests, 1)
-AC_PYTHON_MODULE(pywsman, 1)
+
+if echo "$AGENTS_LIST" | grep -q amt_ws; then
+ AC_PYTHON_MODULE(pywsman, 1)
+fi
+if echo "$AGENTS_LIST" | grep -q aws; then
+ AC_PYTHON_MODULE(boto3, 1)
+fi
+if echo "$AGENTS_LIST" | grep -q -E "ovh|vmware_soap"; then
+ AC_PYTHON_MODULE(suds, 1)
+fi
+if echo "$AGENTS_LIST" | grep -q gce; then
+ AC_PYTHON_MODULE(googleapiclient, 1)
+fi
## path to 3rd-party binaries
AC_PATH_PROG([IPMITOOL_PATH], [ipmitool], [/usr/bin/ipmitool])
@@ -186,6 +220,27 @@ AC_PATH_PROG([SNMPGET_PATH], [snmpget], [/usr/bin/snmpget])
AC_PATH_PROG([NOVA_PATH], [nova], [/usr/bin/nova])
AC_PATH_PROG([POWERMAN_PATH], [powerman], [/usr/bin/powerman])
+AC_PATH_PROG([PING_CMD], [ping])
+AC_PATH_PROG([PING6_CMD], [ping6])
+AC_PATH_PROG([PING4_CMD], [ping4])
+
+if test "x${ac_cv_path_PING_CMD}" = x; then
+ # assume multicall-ping just not available in build-environment
+ PING_CMD="/bin/ping"
+ PING4_CMD="/bin/ping -4"
+ PING6_CMD="/bin/ping -6"
+elif test "x${ac_cv_path_PING6_CMD}" = x; then
+ # just IPv4
+ PING4_CMD="${ac_cv_path_PING_CMD}"
+elif test -L ${ac_cv_path_PING6_CMD}; then
+ # assume multicall-ping
+ PING4_CMD="${ac_cv_path_PING_CMD} -4"
+else
+ # ping is just IPv4
+ PING4_CMD="${ac_cv_path_PING_CMD}"
+fi
+
+
## do subst
AC_SUBST([DEFAULT_CONFIG_DIR])
@@ -208,6 +263,10 @@ AC_SUBST([CLUSTERDATA])
AC_SUBST([FENCEAGENTSLIBDIR])
AC_SUBST([SNMPBIN])
AC_SUBST([AGENTS_LIST])
+AM_CONDITIONAL(BUILD_FENCE_KDUMP, test $FENCE_KDUMP -eq 1)
+AM_CONDITIONAL(BUILD_FENCE_MANUAL, test $FENCE_MANUAL -eq 1)
+AM_CONDITIONAL(BUILD_FENCE_SCSI, test $FENCE_SCSI -eq 1)
+AM_CONDITIONAL(BUILD_FENCE_ZVM, test $FENCE_ZVM -eq 1)
AM_CONDITIONAL(BUILD_XENAPILIB, test $XENAPILIB -eq 1)
AC_SUBST([IPMITOOL_PATH])
@@ -219,6 +278,7 @@ AC_SUBST([SG_TURS_PATH])
AC_SUBST([VGS_PATH])
AC_SUBST([POWERMAN_PATH])
+
## *FLAGS handling
ENV_CFLAGS="$CFLAGS"
@@ -276,6 +336,7 @@ CPPFLAGS="-I\$(top_builddir)/make -I\$(top_srcdir)/make -I. $ENV_CPPFLAGS"
LDFLAGS="$ENV_LDFLAGS"
+AM_EXTRA_RECURSIVE_TARGETS([xml-upload])
AC_CONFIG_FILES([Makefile
fence/Makefile
fence/agents/Makefile
diff --git a/depcomp b/depcomp
deleted file mode 100755
index fc98710..0000000
--- a/depcomp
+++ /dev/null
@@ -1,791 +0,0 @@
-#! /bin/sh
-# depcomp - compile a program generating dependencies as side-effects
-
-scriptversion=2013-05-30.07; # UTC
-
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
-
-# 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
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Originally written by Alexandre Oliva <oliva at dcc.unicamp.br>.
-
-case $1 in
- '')
- echo "$0: No command. Try '$0 --help' for more information." 1>&2
- exit 1;
- ;;
- -h | --h*)
- cat <<\EOF
-Usage: depcomp [--help] [--version] PROGRAM [ARGS]
-
-Run PROGRAMS ARGS to compile a file, generating dependencies
-as side-effects.
-
-Environment variables:
- depmode Dependency tracking mode.
- source Source file read by 'PROGRAMS ARGS'.
- object Object file output by 'PROGRAMS ARGS'.
- DEPDIR directory where to store dependencies.
- depfile Dependency file to output.
- tmpdepfile Temporary file to use when outputting dependencies.
- libtool Whether libtool is used (yes/no).
-
-Report bugs to <bug-automake at gnu.org>.
-EOF
- exit $?
- ;;
- -v | --v*)
- echo "depcomp $scriptversion"
- exit $?
- ;;
-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.
-tab=' '
-# A newline character.
-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
- echo "depcomp: Variables source, object and depmode must be set" 1>&2
- exit 1
-fi
-
-# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
-depfile=${depfile-`echo "$object" |
- sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
-tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
-
-rm -f "$tmpdepfile"
-
-# Avoid interferences from the environment.
-gccflag= dashmflag=
-
-# Some modes work just like other modes, but use different flags. We
-# 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
-# here, because this file can only contain one case statement.
-if test "$depmode" = hp; then
- # HP compiler uses -M and no extra arg.
- gccflag=-M
- depmode=gcc
-fi
-
-if test "$depmode" = dashXmstdout; then
- # This is just like dashmstdout with a different argument.
- dashmflag=-xM
- depmode=dashmstdout
-fi
-
-cygpath_u="cygpath -u -f -"
-if test "$depmode" = msvcmsys; then
- # This is just like msvisualcpp but w/o cygpath translation.
- # Just convert the backslash-escaped backslashes to single forward
- # slashes to satisfy depend.m4
- cygpath_u='sed s,\\\\,/,g'
- depmode=msvisualcpp
-fi
-
-if test "$depmode" = msvc7msys; then
- # This is just like msvc7 but w/o cygpath translation.
- # Just convert the backslash-escaped backslashes to single forward
- # slashes to satisfy depend.m4
- cygpath_u='sed s,\\\\,/,g'
- depmode=msvc7
-fi
-
-if test "$depmode" = xlc; then
- # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
- gccflag=-qmakedep=gcc,-MF
- depmode=gcc
-fi
-
-case "$depmode" in
-gcc3)
-## gcc 3 implements dependency tracking that does exactly what
-## we want. Yay! Note: for some reason libtool 1.4 doesn't like
-## it if -MD -MP comes after the -MF stuff. Hmm.
-## Unfortunately, FreeBSD c89 acceptance of flags depends upon
-## the command line argument order; so add the flags where they
-## appear in depend2.am. Note that the slowdown incurred here
-## affects only configure: in makefiles, %FASTDEP% shortcuts this.
- for arg
- do
- case $arg in
- -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
- *) set fnord "$@" "$arg" ;;
- esac
- shift # fnord
- shift # $arg
- done
- "$@"
- stat=$?
- if test $stat -ne 0; then
- rm -f "$tmpdepfile"
- exit $stat
- fi
- mv "$tmpdepfile" "$depfile"
- ;;
-
-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
-## why we pick this rather obscure method:
-## - 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.
-## (We might end up doing this anyway to support other compilers.)
-## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
-## -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
-## than renaming).
- if test -z "$gccflag"; then
- gccflag=-MD,
- fi
- "$@" -Wp,"$gccflag$tmpdepfile"
- stat=$?
- if test $stat -ne 0; then
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- # The second -e expression handles DOS-style file names with drive
- # letters.
- sed -e 's/^[^:]*: / /' \
- -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
-## This next piece of magic avoids the "deleted header file" problem.
-## The problem is that when a header file which appears in a .P file
-## is deleted, the dependency causes make to die (because there is
-## typically no way to rebuild the header). We avoid this by adding
-## dummy dependencies for each header file. Too bad gcc doesn't do
-## this for us directly.
-## 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
-## well. hp depmode also adds that space, but also prefixes the VPATH
-## 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
-## correctly. Breaking it into two sed invocations is a workaround.
- tr ' ' "$nl" < "$tmpdepfile" \
- | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
- | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-hp)
- # This case exists only to let depend.m4 do its work. It works by
- # looking at the text of this script. This case will never be run,
- # since it is checked for above.
- exit 1
- ;;
-
-sgi)
- if test "$libtool" = yes; then
- "$@" "-Wp,-MDupdate,$tmpdepfile"
- else
- "$@" -MDupdate "$tmpdepfile"
- fi
- stat=$?
- if test $stat -ne 0; then
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
-
- if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
- echo "$object : \\" > "$depfile"
- # 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
- # lines with more than a fixed number of characters (4096 in
- # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
- # the IRIX cc adds comments like '#:fec' to the end of the
- # dependency line.
- tr ' ' "$nl" < "$tmpdepfile" \
- | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
- | tr "$nl" ' ' >> "$depfile"
- echo >> "$depfile"
- # The second pass generates a dummy entry for each header file.
- tr ' ' "$nl" < "$tmpdepfile" \
- | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
- >> "$depfile"
- else
- make_dummy_depfile
- fi
- rm -f "$tmpdepfile"
- ;;
-
-xlc)
- # This case exists only to let depend.m4 do its work. It works by
- # looking at the text of this script. This case will never be run,
- # since it is checked for above.
- exit 1
- ;;
-
-aix)
- # The C for AIX Compiler uses -M and outputs the dependencies
- # in a .u file. In older versions, this file always lives in the
- # current directory. Also, the AIX compiler puts '$object:' at the
- # start of each line; $object doesn't have directory information.
- # Version 6 uses the directory in both cases.
- set_dir_from "$object"
- set_base_from "$object"
- if test "$libtool" = yes; then
- tmpdepfile1=$dir$base.u
- tmpdepfile2=$base.u
- tmpdepfile3=$dir.libs/$base.u
- "$@" -Wc,-M
- else
- tmpdepfile1=$dir$base.u
- tmpdepfile2=$dir$base.u
- tmpdepfile3=$dir$base.u
- "$@" -M
- fi
- stat=$?
- if test $stat -ne 0; then
- rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
- exit $stat
- fi
-
- for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
- do
- test -f "$tmpdepfile" && break
- done
- aix_post_process_depfile
- ;;
-
-tcc)
- # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
- # FIXME: That version still under development at the moment of writing.
- # Make that this statement remains true also for stable, released
- # versions.
- # It will wrap lines (doesn't matter whether long or short) with a
- # trailing '\', as in:
- #
- # 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
- 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"
- ;;
-
-## The order of this option in the case statement is important, since the
-## shell code in configure will try each of these formats in the order
-## listed in this file. A plain '-MD' option would be understood by many
-## compilers, so we must ensure this comes after the gcc and icc options.
-pgcc)
- # Portland's C compiler understands '-MD'.
- # Will always output deps to 'file.d' where file is the root name of the
- # source file under compilation, even if file resides in a subdirectory.
- # The object file name does not affect the name of the '.d' file.
- # pgcc 10.2 will output
- # foo.o: sub/foo.c sub/foo.h
- # and will wrap long lines using '\' :
- # foo.o: sub/foo.c ... \
- # sub/foo.h ... \
- # ...
- set_dir_from "$object"
- # Use the source, not the object, to determine the base name, since
- # that's sadly what pgcc will do too.
- 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=$?
- # Release the lock.
- rmdir "$lockdir"
- break
- 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"
- exit $stat
- fi
- rm -f "$depfile"
- # Each line is of the form `foo.o: dependent.h',
- # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
- # Do two passes, one to just change these to
- # `$object: dependent.h' and one to simply `dependent.h:'.
- sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
- # Some versions of the HPUX 10.20 sed can't process this invocation
- # correctly. Breaking it into two sed invocations is a workaround.
- sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
- | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-hp2)
- # The "hp" stanza above does not work with aCC (C++) and HP's ia64
- # compilers, which have integrated preprocessors. The correct option
- # to use with these is +Maked; it writes dependencies to a file named
- # 'foo.d', which lands next to the object file, wherever that
- # happens to be.
- # Much of this is similar to the tru64 case; see comments there.
- set_dir_from "$object"
- set_base_from "$object"
- if test "$libtool" = yes; then
- tmpdepfile1=$dir$base.d
- tmpdepfile2=$dir.libs/$base.d
- "$@" -Wc,+Maked
- else
- tmpdepfile1=$dir$base.d
- tmpdepfile2=$dir$base.d
- "$@" +Maked
- fi
- stat=$?
- if test $stat -ne 0; then
- rm -f "$tmpdepfile1" "$tmpdepfile2"
- exit $stat
- fi
-
- for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
- do
- test -f "$tmpdepfile" && break
- done
- if test -f "$tmpdepfile"; then
- sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
- # Add 'dependent.h:' lines.
- sed -ne '2,${
- s/^ *//
- s/ \\*$//
- s/$/:/
- p
- }' "$tmpdepfile" >> "$depfile"
- else
- make_dummy_depfile
- fi
- rm -f "$tmpdepfile" "$tmpdepfile2"
- ;;
-
-tru64)
- # The Tru64 compiler uses -MD to generate dependencies as a side
- # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
- # 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.
- # Subdirectories are respected.
- set_dir_from "$object"
- set_base_from "$object"
-
- if test "$libtool" = yes; then
- # Libtool 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
- # 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
- # automatically cleaned when .libs/ is deleted, while ignoring
- # the former would cause a distcleancheck panic.
- tmpdepfile1=$dir$base.o.d # libtool 1.5
- tmpdepfile2=$dir.libs/$base.o.d # Likewise.
- tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
- "$@" -Wc,-MD
- else
- tmpdepfile1=$dir$base.d
- tmpdepfile2=$dir$base.d
- tmpdepfile3=$dir$base.d
- "$@" -MD
- fi
-
- stat=$?
- if test $stat -ne 0; then
- rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
- exit $stat
- fi
-
- for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
- do
- test -f "$tmpdepfile" && break
- done
- # Same post-processing that is required for AIX mode.
- aix_post_process_depfile
- ;;
-
-msvc7)
- if test "$libtool" = yes; then
- showIncludes=-Wc,-showIncludes
- else
- showIncludes=-showIncludes
- fi
- "$@" $showIncludes > "$tmpdepfile"
- stat=$?
- grep -v '^Note: including file: ' "$tmpdepfile"
- if test $stat -ne 0; then
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- # The first sed program below extracts the file names and escapes
- # backslashes for cygpath. The second sed program outputs the file
- # name when reading, but also accumulates all include files in the
- # hold buffer in order to output them again at the end. This only
- # works with sed implementations that can handle large buffers.
- sed < "$tmpdepfile" -n '
-/^Note: including file: *\(.*\)/ {
- s//\1/
- s/\\/\\\\/g
- p
-}' | $cygpath_u | sort -u | sed -n '
-s/ /\\ /g
-s/\(.*\)/'"$tab"'\1 \\/p
-s/.\(.*\) \\/\1:/
-H
-$ {
- s/.*/'"$tab"'/
- G
- p
-}' >> "$depfile"
- echo >> "$depfile" # make sure the fragment doesn't end with a backslash
- rm -f "$tmpdepfile"
- ;;
-
-msvc7msys)
- # This case exists only to let depend.m4 do its work. It works by
- # looking at the text of this script. This case will never be run,
- # since it is checked for above.
- exit 1
- ;;
-
-#nosideeffect)
- # This comment above is used by automake to tell side-effect
- # dependency tracking mechanisms from slower ones.
-
-dashmstdout)
- # Important note: in order to support this mode, a compiler *must*
- # always write the preprocessed file to stdout, regardless of -o.
- "$@" || exit $?
-
- # Remove the call to Libtool.
- if test "$libtool" = yes; then
- while test "X$1" != 'X--mode=compile'; do
- shift
- done
- shift
- fi
-
- # Remove '-o $object'.
- IFS=" "
- for arg
- do
- case $arg in
- -o)
- shift
- ;;
- $object)
- shift
- ;;
- *)
- set fnord "$@" "$arg"
- shift # fnord
- shift # $arg
- ;;
- esac
- done
-
- test -z "$dashmflag" && dashmflag=-M
- # Require at least two characters before searching for ':'
- # 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.
- "$@" $dashmflag |
- sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
- rm -f "$depfile"
- cat < "$tmpdepfile" > "$depfile"
- # Some versions of the HPUX 10.20 sed can't process this sed invocation
- # correctly. Breaking it into two sed invocations is a workaround.
- tr ' ' "$nl" < "$tmpdepfile" \
- | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
- | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-dashXmstdout)
- # This case only exists to satisfy depend.m4. It is never actually
- # run, as this mode is specially recognized in the preamble.
- exit 1
- ;;
-
-makedepend)
- "$@" || exit $?
- # Remove any Libtool call
- if test "$libtool" = yes; then
- while test "X$1" != 'X--mode=compile'; do
- shift
- done
- shift
- fi
- # X makedepend
- shift
- cleared=no eat=no
- for arg
- do
- case $cleared in
- no)
- set ""; shift
- cleared=yes ;;
- esac
- if test $eat = yes; then
- eat=no
- continue
- fi
- case "$arg" in
- -D*|-I*)
- set fnord "$@" "$arg"; shift ;;
- # Strip any option that makedepend may not understand. Remove
- # the object too, otherwise makedepend will parse it as a source file.
- -arch)
- eat=yes ;;
- -*|$object)
- ;;
- *)
- set fnord "$@" "$arg"; shift ;;
- esac
- done
- obj_suffix=`echo "$object" | sed 's/^.*\././'`
- touch "$tmpdepfile"
- ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
- rm -f "$depfile"
- # makedepend may prepend the VPATH from the source file name to the object.
- # No need to regex-escape $object, excess matching of '.' is harmless.
- sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
- # Some versions of the HPUX 10.20 sed can't process the last invocation
- # correctly. Breaking it into two sed invocations is a workaround.
- sed '1,2d' "$tmpdepfile" \
- | tr ' ' "$nl" \
- | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
- | sed -e 's/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile" "$tmpdepfile".bak
- ;;
-
-cpp)
- # Important note: in order to support this mode, a compiler *must*
- # always write the preprocessed file to stdout.
- "$@" || exit $?
-
- # Remove the call to Libtool.
- if test "$libtool" = yes; then
- while test "X$1" != 'X--mode=compile'; do
- shift
- done
- shift
- fi
-
- # Remove '-o $object'.
- IFS=" "
- for arg
- do
- case $arg in
- -o)
- shift
- ;;
- $object)
- shift
- ;;
- *)
- set fnord "$@" "$arg"
- shift # fnord
- shift # $arg
- ;;
- esac
- done
-
- "$@" -E \
- | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
- -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
- | sed '$ s: \\$::' > "$tmpdepfile"
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- cat < "$tmpdepfile" >> "$depfile"
- sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-msvisualcpp)
- # Important note: in order to support this mode, a compiler *must*
- # always write the preprocessed file to stdout.
- "$@" || exit $?
-
- # Remove the call to Libtool.
- if test "$libtool" = yes; then
- while test "X$1" != 'X--mode=compile'; do
- shift
- done
- shift
- fi
-
- IFS=" "
- for arg
- do
- case "$arg" in
- -o)
- shift
- ;;
- $object)
- shift
- ;;
- "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
- set fnord "$@"
- shift
- shift
- ;;
- *)
- set fnord "$@" "$arg"
- shift
- shift
- ;;
- esac
- done
- "$@" -E 2>/dev/null |
- sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
- rm -f "$depfile"
- echo "$object : \\" > "$depfile"
- sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
- echo "$tab" >> "$depfile"
- sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
- rm -f "$tmpdepfile"
- ;;
-
-msvcmsys)
- # This case exists only to let depend.m4 do its work. It works by
- # looking at the text of this script. This case will never be run,
- # since it is checked for above.
- exit 1
- ;;
-
-none)
- exec "$@"
- ;;
-
-*)
- echo "Unknown depmode $depmode" 1>&2
- exit 1
- ;;
-esac
-
-exit 0
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
-# time-stamp-end: "; # UTC"
-# End:
diff --git a/doc/COPYRIGHT b/doc/COPYRIGHT
index 8124c53..49f88c6 100644
--- a/doc/COPYRIGHT
+++ b/doc/COPYRIGHT
@@ -58,6 +58,7 @@ Joel Becker <joel.becker at oracle.com>
Jonathan Brassow <jbrassow at redhat.com>
jparsons <jparsons at redhat.com>
Ken Preslan <kpreslan at redhat.com>
+Klaus Wenninger <kwenning at redhat.com>
Lon Hohberger <lhh at redhat.com>
Marc - A. Dahlhaus <mad at wol.de>
Marek 'marx' Grac <mgrac at redhat.com>
diff --git a/doc/Makefile.in b/doc/Makefile.in
deleted file mode 100644
index f4c1ba6..0000000
--- a/doc/Makefile.in
+++ /dev/null
@@ -1,536 +0,0 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = { \
- if test -z '$(MAKELEVEL)'; then \
- false; \
- elif test -n '$(MAKE_HOST)'; then \
- true; \
- elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
- true; \
- else \
- false; \
- fi; \
-}
-am__make_running_with_option = \
- 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 \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- 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; \
- 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@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = doc
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ac_python_module.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(dist_doc_DATA) \
- $(am__DIST_COMMON)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/make/clusterautoconfig.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-SOURCES =
-DIST_SOURCES =
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-am__installdirs = "$(DESTDIR)$(docdir)"
-DATA = $(dist_doc_DATA)
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-am__DIST_COMMON = $(srcdir)/Makefile.in
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AGENTS_LIST = @AGENTS_LIST@
-AMTAR = @AMTAR@
-AMTTOOL_PATH = @AMTTOOL_PATH@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CLUSTERDATA = @CLUSTERDATA@
-CLUSTERVARRUN = @CLUSTERVARRUN@
-COROSYNC_CMAPCTL_PATH = @COROSYNC_CMAPCTL_PATH@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFAULT_CONFIG_DIR = @DEFAULT_CONFIG_DIR@
-DEFAULT_CONFIG_FILE = @DEFAULT_CONFIG_FILE@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FENCEAGENTSLIBDIR = @FENCEAGENTSLIBDIR@
-FGREP = @FGREP@
-GNUTLSCLI_PATH = @GNUTLSCLI_PATH@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-IPMITOOL_PATH = @IPMITOOL_PATH@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LOGDIR = @LOGDIR@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-MPATH_PATH = @MPATH_PATH@
-NM = @NM@
-NMEDIT = @NMEDIT@
-NOVA_PATH = @NOVA_PATH@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OPENSTACK_PATH = @OPENSTACK_PATH@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-POWERMAN_PATH = @POWERMAN_PATH@
-PYTHON = @PYTHON@
-PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
-PYTHON_PLATFORM = @PYTHON_PLATFORM@
-PYTHON_PREFIX = @PYTHON_PREFIX@
-PYTHON_VERSION = @PYTHON_VERSION@
-RANLIB = @RANLIB@
-SBD_PATH = @SBD_PATH@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SG_PERSIST_PATH = @SG_PERSIST_PATH@
-SG_TURS_PATH = @SG_TURS_PATH@
-SHELL = @SHELL@
-SNMPBIN = @SNMPBIN@
-SNMPGET_PATH = @SNMPGET_PATH@
-SNMPSET_PATH = @SNMPSET_PATH@
-SNMPWALK_PATH = @SNMPWALK_PATH@
-SSH_PATH = @SSH_PATH@
-STRIP = @STRIP@
-SUDO_PATH = @SUDO_PATH@
-TELNET_PATH = @TELNET_PATH@
-VERSION = @VERSION@
-VGS_PATH = @VGS_PATH@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-pkgpyexecdir = @pkgpyexecdir@
-pkgpythondir = @pkgpythondir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-pyexecdir = @pyexecdir@
-pythondir = @pythondir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-MAINTAINERCLEANFILES = Makefile.in
-dist_doc_DATA = COPYING.applications \
- COPYING.libraries \
- COPYRIGHT \
- README.licence
-
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu doc/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-dist_docDATA: $(dist_doc_DATA)
- @$(NORMAL_INSTALL)
- @list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(docdir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(docdir)" || exit 1; \
- fi; \
- for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; \
- done | $(am__base_list) | \
- while read files; do \
- echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docdir)'"; \
- $(INSTALL_DATA) $$files "$(DESTDIR)$(docdir)" || exit $$?; \
- done
-
-uninstall-dist_docDATA:
- @$(NORMAL_UNINSTALL)
- @list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \
- files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- dir='$(DESTDIR)$(docdir)'; $(am__uninstall_files_from_dir)
-tags TAGS:
-
-ctags CTAGS:
-
-cscope cscopelist:
-
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(DATA)
-installdirs:
- for dir in "$(DESTDIR)$(docdir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
- -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
-clean: clean-am
-
-clean-am: clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-am
- -rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-dist_docDATA
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-dist_docDATA
-
-.MAKE: install-am install-strip
-
-.PHONY: all all-am check check-am clean clean-generic clean-libtool \
- cscopelist-am ctags-am distclean distclean-generic \
- distclean-libtool distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am \
- install-dist_docDATA install-dvi install-dvi-am install-exec \
- install-exec-am install-html install-html-am install-info \
- install-info-am install-man install-pdf install-pdf-am \
- install-ps install-ps-am install-strip installcheck \
- installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
- uninstall-am uninstall-dist_docDATA
-
-.PRECIOUS: Makefile
-
-
-# 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.
-.NOEXPORT:
diff --git a/fence/Makefile.in b/fence/Makefile.in
deleted file mode 100644
index a367be3..0000000
--- a/fence/Makefile.in
+++ /dev/null
@@ -1,656 +0,0 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-VPATH = @srcdir@
-am__is_gnu_make = { \
- if test -z '$(MAKELEVEL)'; then \
- false; \
- elif test -n '$(MAKE_HOST)'; then \
- true; \
- elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
- true; \
- else \
- false; \
- fi; \
-}
-am__make_running_with_option = \
- 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 \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- 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; \
- 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@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = fence
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ac_python_module.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/make/clusterautoconfig.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-SOURCES =
-DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
- ctags-recursive dvi-recursive html-recursive info-recursive \
- install-data-recursive install-dvi-recursive \
- install-exec-recursive install-html-recursive \
- install-info-recursive install-pdf-recursive \
- install-ps-recursive install-recursive installcheck-recursive \
- installdirs-recursive pdf-recursive ps-recursive \
- tags-recursive uninstall-recursive
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
- distclean-recursive maintainer-clean-recursive
-am__recursive_targets = \
- $(RECURSIVE_TARGETS) \
- $(RECURSIVE_CLEAN_TARGETS) \
- $(am__extra_recursive_targets)
-AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
- 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
-CTAGS = ctags
-DIST_SUBDIRS = $(SUBDIRS)
-am__DIST_COMMON = $(srcdir)/Makefile.in
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-am__relativize = \
- dir0=`pwd`; \
- sed_first='s,^\([^/]*\)/.*$$,\1,'; \
- sed_rest='s,^[^/]*/*,,'; \
- sed_last='s,^.*/\([^/]*\)$$,\1,'; \
- sed_butlast='s,/*[^/]*$$,,'; \
- while test -n "$$dir1"; do \
- first=`echo "$$dir1" | sed -e "$$sed_first"`; \
- if test "$$first" != "."; then \
- if test "$$first" = ".."; then \
- dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
- dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
- else \
- first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
- if test "$$first2" = "$$first"; then \
- dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
- else \
- dir2="../$$dir2"; \
- fi; \
- dir0="$$dir0"/"$$first"; \
- fi; \
- fi; \
- dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
- done; \
- reldir="$$dir2"
-ACLOCAL = @ACLOCAL@
-AGENTS_LIST = @AGENTS_LIST@
-AMTAR = @AMTAR@
-AMTTOOL_PATH = @AMTTOOL_PATH@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CLUSTERDATA = @CLUSTERDATA@
-CLUSTERVARRUN = @CLUSTERVARRUN@
-COROSYNC_CMAPCTL_PATH = @COROSYNC_CMAPCTL_PATH@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFAULT_CONFIG_DIR = @DEFAULT_CONFIG_DIR@
-DEFAULT_CONFIG_FILE = @DEFAULT_CONFIG_FILE@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FENCEAGENTSLIBDIR = @FENCEAGENTSLIBDIR@
-FGREP = @FGREP@
-GNUTLSCLI_PATH = @GNUTLSCLI_PATH@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-IPMITOOL_PATH = @IPMITOOL_PATH@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LOGDIR = @LOGDIR@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-MPATH_PATH = @MPATH_PATH@
-NM = @NM@
-NMEDIT = @NMEDIT@
-NOVA_PATH = @NOVA_PATH@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OPENSTACK_PATH = @OPENSTACK_PATH@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-POWERMAN_PATH = @POWERMAN_PATH@
-PYTHON = @PYTHON@
-PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
-PYTHON_PLATFORM = @PYTHON_PLATFORM@
-PYTHON_PREFIX = @PYTHON_PREFIX@
-PYTHON_VERSION = @PYTHON_VERSION@
-RANLIB = @RANLIB@
-SBD_PATH = @SBD_PATH@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SG_PERSIST_PATH = @SG_PERSIST_PATH@
-SG_TURS_PATH = @SG_TURS_PATH@
-SHELL = @SHELL@
-SNMPBIN = @SNMPBIN@
-SNMPGET_PATH = @SNMPGET_PATH@
-SNMPSET_PATH = @SNMPSET_PATH@
-SNMPWALK_PATH = @SNMPWALK_PATH@
-SSH_PATH = @SSH_PATH@
-STRIP = @STRIP@
-SUDO_PATH = @SUDO_PATH@
-TELNET_PATH = @TELNET_PATH@
-VERSION = @VERSION@
-VGS_PATH = @VGS_PATH@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-pkgpyexecdir = @pkgpyexecdir@
-pkgpythondir = @pkgpythondir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-pyexecdir = @pyexecdir@
-pythondir = @pythondir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-MAINTAINERCLEANFILES = Makefile.in
-SUBDIRS = agents
-all: all-recursive
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fence/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu fence/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run 'make' without going through this Makefile.
-# To change the values of 'make' variables: instead of editing Makefiles,
-# (1) if the variable is set in 'config.status', edit 'config.status'
-# (which will cause the Makefiles to be regenerated when you run 'make');
-# (2) otherwise, pass the desired values on the 'make' command line.
-$(am__recursive_targets):
- @fail=; \
- if $(am__make_keepgoing); then \
- failcom='fail=yes'; \
- else \
- failcom='exit 1'; \
- fi; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- case "$@" in \
- distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
- *) list='$(SUBDIRS)' ;; \
- esac; \
- for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-recursive
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
- include_option=--etags-include; \
- empty_fix=.; \
- else \
- include_option=--include; \
- empty_fix=; \
- fi; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test ! -f $$subdir/TAGS || \
- set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
- fi; \
- done; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-recursive
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && 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:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
- @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- $(am__make_dryrun) \
- || test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
- $(am__relativize); \
- new_distdir=$$reldir; \
- dir1=$$subdir; dir2="$(top_distdir)"; \
- $(am__relativize); \
- new_top_distdir=$$reldir; \
- echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
- echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
- ($(am__cd) $$subdir && \
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$new_top_distdir" \
- distdir="$$new_distdir" \
- am__remove_distdir=: \
- am__skip_length_check=: \
- am__skip_mode_fix=: \
- distdir) \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-recursive
-all-am: Makefile
-installdirs: installdirs-recursive
-installdirs-am:
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
- -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
-clean: clean-recursive
-
-clean-am: clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-recursive
- -rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-html-am:
-
-info: info-recursive
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-recursive
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-recursive
-
-install-html-am:
-
-install-info: install-info-recursive
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-recursive
-
-install-pdf-am:
-
-install-ps: install-ps-recursive
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: $(am__recursive_targets) install-am install-strip
-
-.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
- check-am clean clean-generic clean-libtool cscopelist-am ctags \
- ctags-am distclean distclean-generic distclean-libtool \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- installdirs-am maintainer-clean maintainer-clean-generic \
- mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
- ps ps-am tags tags-am uninstall uninstall-am
-
-.PRECIOUS: Makefile
-
-
-# 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.
-.NOEXPORT:
diff --git a/fence/agents/Makefile.am b/fence/agents/Makefile.am
index 9f0964c..023eea7 100644
--- a/fence/agents/Makefile.am
+++ b/fence/agents/Makefile.am
@@ -6,32 +6,54 @@ SRC = $(TARGET:=.py)
CLEAN_TARGET_ADDITIONAL = kdump/fence_kdump_send manual/fence_ack_manual */*.o
-EXTRA_DIST = $(SRC) manual/fence_ack_manual.in manual/fence_ack_manual.8 zvm/fence_zvm_man_page
+EXTRA_DIST = $(SRC)
-sbin_SCRIPTS = $(TARGET) manual/fence_ack_manual
+sbin_PROGRAMS =
+sbin_SCRIPTS = $(TARGET)
+libexec_PROGRAMS =
+
+dist_man_MANS =
+
+noinst_HEADERS = kdump/list.h kdump/message.h kdump/options.h kdump/version.h zvm/fence_zvm.h
EXTRA_SCRIPTS =
man_MANS = $(sbin_SCRIPTS:=.8)
-sbin_PROGRAMS = kdump/fence_kdump zvm/fence_zvm
-libexec_PROGRAMS = kdump/fence_kdump_send
+if BUILD_FENCE_KDUMP
+sbin_PROGRAMS += kdump/fence_kdump
+libexec_PROGRAMS += kdump/fence_kdump_send
-noinst_HEADERS = kdump/list.h kdump/message.h kdump/options.h kdump/version.h zvm/fence_zvm.h
+dist_man_MANS += kdump/fence_kdump.8 kdump/fence_kdump_send.8
kdump_fence_kdump_SOURCES = kdump/fence_kdump.c
kdump_fence_kdump_CFLAGS = -D_GNU_SOURCE -Ikdump
kdump_fence_kdump_send_SOURCES = kdump/fence_kdump_send.c
kdump_fence_kdump_send_CFLAGS = -D_GNU_SOURCE -Ikdump
+endif
-dist_man_MANS = kdump/fence_kdump.8 kdump/fence_kdump_send.8 zvm/fence_zvm.8
+if BUILD_FENCE_MANUAL
+EXTRA_DIST += manual/fence_ack_manual.in manual/fence_ack_manual.8
-scsidatadir = $(CLUSTERDATA)
-scsidata_SCRIPTS = scsi/fence_scsi_check scsi/fence_scsi_check_hardreboot
+sbin_SCRIPTS += manual/fence_ack_manual
+endif
+
+if BUILD_FENCE_ZVM
+EXTRA_DIST += zvm/fence_zvm_man_page
+
+sbin_PROGRAMS += zvm/fence_zvm
+
+dist_man_MANS += zvm/fence_zvm.8
zvm_fence_zvm_SOURCES = zvm/fence_zvm.c
zvm_fence_zvm_CFLAGS = -D_GNU_SOURCE -Izvm
+endif
+
+if BUILD_FENCE_SCSI
+scsidatadir = $(CLUSTERDATA)
+scsidata_SCRIPTS = scsi/fence_scsi_check scsi/fence_scsi_check_hardreboot
+endif
FENCE_TEST_ARGS = \
login=test\n\
@@ -41,7 +63,8 @@ port=1\n\
managed=1\n\
devices=test\n\
session_url=http://test\n\
-email=test at test.te
+email=test at test.te\n\
+ping_targets=localhost
manual/fence_ack_manual: manual/fence_ack_manual.in
mkdir -p $(@D)
diff --git a/fence/agents/Makefile.in b/fence/agents/Makefile.in
deleted file mode 100644
index 9580e33..0000000
--- a/fence/agents/Makefile.in
+++ /dev/null
@@ -1,1181 +0,0 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-
-
-VPATH = @srcdir@
-am__is_gnu_make = { \
- if test -z '$(MAKELEVEL)'; then \
- false; \
- elif test -n '$(MAKE_HOST)'; then \
- true; \
- elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
- true; \
- else \
- false; \
- fi; \
-}
-am__make_running_with_option = \
- 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 \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- 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; \
- 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@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-sbin_PROGRAMS = kdump/fence_kdump$(EXEEXT) zvm/fence_zvm$(EXEEXT)
-libexec_PROGRAMS = kdump/fence_kdump_send$(EXEEXT)
-subdir = fence/agents
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ac_python_module.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
- $(am__DIST_COMMON)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/make/clusterautoconfig.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__installdirs = "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(sbindir)" \
- "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(scsidatadir)" \
- "$(DESTDIR)$(man8dir)"
-PROGRAMS = $(libexec_PROGRAMS) $(sbin_PROGRAMS)
-am__dirstamp = $(am__leading_dot)dirstamp
-am_kdump_fence_kdump_OBJECTS = \
- kdump/kdump_fence_kdump-fence_kdump.$(OBJEXT)
-kdump_fence_kdump_OBJECTS = $(am_kdump_fence_kdump_OBJECTS)
-kdump_fence_kdump_LDADD = $(LDADD)
-AM_V_lt = $(am__v_lt_ at AM_V@)
-am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
-kdump_fence_kdump_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
- $(kdump_fence_kdump_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
- -o $@
-am_kdump_fence_kdump_send_OBJECTS = \
- kdump/kdump_fence_kdump_send-fence_kdump_send.$(OBJEXT)
-kdump_fence_kdump_send_OBJECTS = $(am_kdump_fence_kdump_send_OBJECTS)
-kdump_fence_kdump_send_LDADD = $(LDADD)
-kdump_fence_kdump_send_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
- $(kdump_fence_kdump_send_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-am_zvm_fence_zvm_OBJECTS = zvm/zvm_fence_zvm-fence_zvm.$(OBJEXT)
-zvm_fence_zvm_OBJECTS = $(am_zvm_fence_zvm_OBJECTS)
-zvm_fence_zvm_LDADD = $(LDADD)
-zvm_fence_zvm_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(zvm_fence_zvm_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-SCRIPTS = $(sbin_SCRIPTS) $(scsidata_SCRIPTS)
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)/make
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_ at AM_V@)
-am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
-am__v_CC_0 = @echo " CC " $@;
-am__v_CC_1 =
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo " CCLD " $@;
-am__v_CCLD_1 =
-SOURCES = $(kdump_fence_kdump_SOURCES) \
- $(kdump_fence_kdump_send_SOURCES) $(zvm_fence_zvm_SOURCES)
-DIST_SOURCES = $(kdump_fence_kdump_SOURCES) \
- $(kdump_fence_kdump_send_SOURCES) $(zvm_fence_zvm_SOURCES)
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-man8dir = $(mandir)/man8
-NROFF = nroff
-MANS = $(dist_man_MANS) $(man_MANS)
-HEADERS = $(noinst_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
-CTAGS = ctags
-am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \
- $(top_srcdir)/depcomp $(top_srcdir)/make/agentpycheck.mk \
- $(top_srcdir)/make/fencebuild.mk \
- $(top_srcdir)/make/fenceman.mk
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AGENTS_LIST = @AGENTS_LIST@
-AMTAR = @AMTAR@
-AMTTOOL_PATH = @AMTTOOL_PATH@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CLUSTERDATA = @CLUSTERDATA@
-CLUSTERVARRUN = @CLUSTERVARRUN@
-COROSYNC_CMAPCTL_PATH = @COROSYNC_CMAPCTL_PATH@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFAULT_CONFIG_DIR = @DEFAULT_CONFIG_DIR@
-DEFAULT_CONFIG_FILE = @DEFAULT_CONFIG_FILE@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FENCEAGENTSLIBDIR = @FENCEAGENTSLIBDIR@
-FGREP = @FGREP@
-GNUTLSCLI_PATH = @GNUTLSCLI_PATH@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-IPMITOOL_PATH = @IPMITOOL_PATH@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LOGDIR = @LOGDIR@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-MPATH_PATH = @MPATH_PATH@
-NM = @NM@
-NMEDIT = @NMEDIT@
-NOVA_PATH = @NOVA_PATH@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OPENSTACK_PATH = @OPENSTACK_PATH@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-POWERMAN_PATH = @POWERMAN_PATH@
-PYTHON = @PYTHON@
-PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
-PYTHON_PLATFORM = @PYTHON_PLATFORM@
-PYTHON_PREFIX = @PYTHON_PREFIX@
-PYTHON_VERSION = @PYTHON_VERSION@
-RANLIB = @RANLIB@
-SBD_PATH = @SBD_PATH@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SG_PERSIST_PATH = @SG_PERSIST_PATH@
-SG_TURS_PATH = @SG_TURS_PATH@
-SHELL = @SHELL@
-SNMPBIN = @SNMPBIN@
-SNMPGET_PATH = @SNMPGET_PATH@
-SNMPSET_PATH = @SNMPSET_PATH@
-SNMPWALK_PATH = @SNMPWALK_PATH@
-SSH_PATH = @SSH_PATH@
-STRIP = @STRIP@
-SUDO_PATH = @SUDO_PATH@
-TELNET_PATH = @TELNET_PATH@
-VERSION = @VERSION@
-VGS_PATH = @VGS_PATH@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-pkgpyexecdir = @pkgpyexecdir@
-pkgpythondir = @pkgpythondir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-pyexecdir = @pyexecdir@
-pythondir = @pythondir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-MAINTAINERCLEANFILES = Makefile.in
-TARGET = $(AGENTS_LIST:%.py=%)
-SRC = $(TARGET:=.py)
-CLEAN_TARGET_ADDITIONAL = kdump/fence_kdump_send manual/fence_ack_manual */*.o
-EXTRA_DIST = $(SRC) manual/fence_ack_manual.in manual/fence_ack_manual.8 zvm/fence_zvm_man_page
-sbin_SCRIPTS = $(TARGET) manual/fence_ack_manual
-EXTRA_SCRIPTS =
-man_MANS = $(sbin_SCRIPTS:=.8)
-noinst_HEADERS = kdump/list.h kdump/message.h kdump/options.h kdump/version.h zvm/fence_zvm.h
-kdump_fence_kdump_SOURCES = kdump/fence_kdump.c
-kdump_fence_kdump_CFLAGS = -D_GNU_SOURCE -Ikdump
-kdump_fence_kdump_send_SOURCES = kdump/fence_kdump_send.c
-kdump_fence_kdump_send_CFLAGS = -D_GNU_SOURCE -Ikdump
-dist_man_MANS = kdump/fence_kdump.8 kdump/fence_kdump_send.8 zvm/fence_zvm.8
-scsidatadir = $(CLUSTERDATA)
-scsidata_SCRIPTS = scsi/fence_scsi_check scsi/fence_scsi_check_hardreboot
-zvm_fence_zvm_SOURCES = zvm/fence_zvm.c
-zvm_fence_zvm_CFLAGS = -D_GNU_SOURCE -Izvm
-FENCE_TEST_ARGS = \
-login=test\n\
-passwd=test\n\
-ipaddr=test\n\
-port=1\n\
-managed=1\n\
-devices=test\n\
-session_url=http://test\n\
-email=test at test.te
-
-DATADIR := $(abs_top_srcdir)/tests/data/metadata
-AWK_VAL = 'BEGIN {store=-1} /name=\".*_path\"/ {store=2} {if (store!=0) {print}; store--}'
-TEST_TARGET = $(filter-out $(TEST_TARGET_SKIP),$(TARGET))
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/make/fencebuild.mk $(top_srcdir)/make/fenceman.mk $(top_srcdir)/make/agentpycheck.mk $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fence/agents/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu fence/agents/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-$(top_srcdir)/make/fencebuild.mk $(top_srcdir)/make/fenceman.mk $(top_srcdir)/make/agentpycheck.mk $(am__empty):
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-libexecPROGRAMS: $(libexec_PROGRAMS)
- @$(NORMAL_INSTALL)
- @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(libexecdir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(libexecdir)" || exit 1; \
- fi; \
- for p in $$list; do echo "$$p $$p"; done | \
- sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p \
- || test -f $$p1 \
- ; then echo "$$p"; echo "$$p"; else :; fi; \
- done | \
- sed -e 'p;s,.*/,,;n;h' \
- -e 's|.*|.|' \
- -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
- sed 'N;N;N;s,\n, ,g' | \
- $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
- { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
- if ($$2 == $$4) files[d] = files[d] " " $$1; \
- else { print "f", $$3 "/" $$4, $$1; } } \
- END { for (d in files) print "f", d, files[d] }' | \
- while read type dir files; do \
- if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
- test -z "$$files" || { \
- echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(libexecdir)$$dir'"; \
- $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(libexecdir)$$dir" || exit $$?; \
- } \
- ; done
-
-uninstall-libexecPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \
- files=`for p in $$list; do echo "$$p"; done | \
- sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' \
- `; \
- test -n "$$list" || exit 0; \
- echo " ( cd '$(DESTDIR)$(libexecdir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(libexecdir)" && rm -f $$files
-
-clean-libexecPROGRAMS:
- @list='$(libexec_PROGRAMS)'; test -n "$$list" || exit 0; \
- echo " rm -f" $$list; \
- rm -f $$list || exit $$?; \
- test -n "$(EXEEXT)" || exit 0; \
- list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f" $$list; \
- rm -f $$list
-install-sbinPROGRAMS: $(sbin_PROGRAMS)
- @$(NORMAL_INSTALL)
- @list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(sbindir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(sbindir)" || exit 1; \
- fi; \
- for p in $$list; do echo "$$p $$p"; done | \
- sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p \
- || test -f $$p1 \
- ; then echo "$$p"; echo "$$p"; else :; fi; \
- done | \
- sed -e 'p;s,.*/,,;n;h' \
- -e 's|.*|.|' \
- -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
- sed 'N;N;N;s,\n, ,g' | \
- $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
- { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
- if ($$2 == $$4) files[d] = files[d] " " $$1; \
- else { print "f", $$3 "/" $$4, $$1; } } \
- END { for (d in files) print "f", d, files[d] }' | \
- while read type dir files; do \
- if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
- test -z "$$files" || { \
- echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(sbindir)$$dir'"; \
- $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(sbindir)$$dir" || exit $$?; \
- } \
- ; done
-
-uninstall-sbinPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
- files=`for p in $$list; do echo "$$p"; done | \
- sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' \
- `; \
- test -n "$$list" || exit 0; \
- echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(sbindir)" && rm -f $$files
-
-clean-sbinPROGRAMS:
- @list='$(sbin_PROGRAMS)'; test -n "$$list" || exit 0; \
- echo " rm -f" $$list; \
- rm -f $$list || exit $$?; \
- test -n "$(EXEEXT)" || exit 0; \
- list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f" $$list; \
- rm -f $$list
-kdump/$(am__dirstamp):
- @$(MKDIR_P) kdump
- @: > kdump/$(am__dirstamp)
-kdump/$(DEPDIR)/$(am__dirstamp):
- @$(MKDIR_P) kdump/$(DEPDIR)
- @: > kdump/$(DEPDIR)/$(am__dirstamp)
-kdump/kdump_fence_kdump-fence_kdump.$(OBJEXT): kdump/$(am__dirstamp) \
- kdump/$(DEPDIR)/$(am__dirstamp)
-
-kdump/fence_kdump$(EXEEXT): $(kdump_fence_kdump_OBJECTS) $(kdump_fence_kdump_DEPENDENCIES) $(EXTRA_kdump_fence_kdump_DEPENDENCIES) kdump/$(am__dirstamp)
- @rm -f kdump/fence_kdump$(EXEEXT)
- $(AM_V_CCLD)$(kdump_fence_kdump_LINK) $(kdump_fence_kdump_OBJECTS) $(kdump_fence_kdump_LDADD) $(LIBS)
-kdump/kdump_fence_kdump_send-fence_kdump_send.$(OBJEXT): \
- kdump/$(am__dirstamp) kdump/$(DEPDIR)/$(am__dirstamp)
-
-kdump/fence_kdump_send$(EXEEXT): $(kdump_fence_kdump_send_OBJECTS) $(kdump_fence_kdump_send_DEPENDENCIES) $(EXTRA_kdump_fence_kdump_send_DEPENDENCIES) kdump/$(am__dirstamp)
- @rm -f kdump/fence_kdump_send$(EXEEXT)
- $(AM_V_CCLD)$(kdump_fence_kdump_send_LINK) $(kdump_fence_kdump_send_OBJECTS) $(kdump_fence_kdump_send_LDADD) $(LIBS)
-zvm/$(am__dirstamp):
- @$(MKDIR_P) zvm
- @: > zvm/$(am__dirstamp)
-zvm/$(DEPDIR)/$(am__dirstamp):
- @$(MKDIR_P) zvm/$(DEPDIR)
- @: > zvm/$(DEPDIR)/$(am__dirstamp)
-zvm/zvm_fence_zvm-fence_zvm.$(OBJEXT): zvm/$(am__dirstamp) \
- zvm/$(DEPDIR)/$(am__dirstamp)
-
-zvm/fence_zvm$(EXEEXT): $(zvm_fence_zvm_OBJECTS) $(zvm_fence_zvm_DEPENDENCIES) $(EXTRA_zvm_fence_zvm_DEPENDENCIES) zvm/$(am__dirstamp)
- @rm -f zvm/fence_zvm$(EXEEXT)
- $(AM_V_CCLD)$(zvm_fence_zvm_LINK) $(zvm_fence_zvm_OBJECTS) $(zvm_fence_zvm_LDADD) $(LIBS)
-install-sbinSCRIPTS: $(sbin_SCRIPTS)
- @$(NORMAL_INSTALL)
- @list='$(sbin_SCRIPTS)'; test -n "$(sbindir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(sbindir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(sbindir)" || exit 1; \
- fi; \
- for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
- done | \
- sed -e 'p;s,.*/,,;n' \
- -e 'h;s|.*|.|' \
- -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
- $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
- { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
- if ($$2 == $$4) { files[d] = files[d] " " $$1; \
- if (++n[d] == $(am__install_max)) { \
- print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
- else { print "f", d "/" $$4, $$1 } } \
- END { for (d in files) print "f", d, files[d] }' | \
- while read type dir files; do \
- if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
- test -z "$$files" || { \
- echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(sbindir)$$dir'"; \
- $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(sbindir)$$dir" || exit $$?; \
- } \
- ; done
-
-uninstall-sbinSCRIPTS:
- @$(NORMAL_UNINSTALL)
- @list='$(sbin_SCRIPTS)'; test -n "$(sbindir)" || exit 0; \
- files=`for p in $$list; do echo "$$p"; done | \
- sed -e 's,.*/,,;$(transform)'`; \
- dir='$(DESTDIR)$(sbindir)'; $(am__uninstall_files_from_dir)
-install-scsidataSCRIPTS: $(scsidata_SCRIPTS)
- @$(NORMAL_INSTALL)
- @list='$(scsidata_SCRIPTS)'; test -n "$(scsidatadir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(scsidatadir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(scsidatadir)" || exit 1; \
- fi; \
- for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
- done | \
- sed -e 'p;s,.*/,,;n' \
- -e 'h;s|.*|.|' \
- -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
- $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
- { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
- if ($$2 == $$4) { files[d] = files[d] " " $$1; \
- if (++n[d] == $(am__install_max)) { \
- print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
- else { print "f", d "/" $$4, $$1 } } \
- END { for (d in files) print "f", d, files[d] }' | \
- while read type dir files; do \
- if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
- test -z "$$files" || { \
- echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(scsidatadir)$$dir'"; \
- $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(scsidatadir)$$dir" || exit $$?; \
- } \
- ; done
-
-uninstall-scsidataSCRIPTS:
- @$(NORMAL_UNINSTALL)
- @list='$(scsidata_SCRIPTS)'; test -n "$(scsidatadir)" || exit 0; \
- files=`for p in $$list; do echo "$$p"; done | \
- sed -e 's,.*/,,;$(transform)'`; \
- dir='$(DESTDIR)$(scsidatadir)'; $(am__uninstall_files_from_dir)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
- -rm -f kdump/*.$(OBJEXT)
- -rm -f zvm/*.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
- at AMDEP_TRUE@@am__include@ @am__quote at kdump/$(DEPDIR)/kdump_fence_kdump-fence_kdump.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at kdump/$(DEPDIR)/kdump_fence_kdump_send-fence_kdump_send.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at zvm/$(DEPDIR)/zvm_fence_zvm-fence_zvm.Po at am__quote@
-
-.c.o:
- at am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
- at am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
- at am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ $<
-
-.c.obj:
- at am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
- at am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
- at am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.c.lo:
- at am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
- at am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
- at am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
-
-kdump/kdump_fence_kdump-fence_kdump.o: kdump/fence_kdump.c
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(kdump_fence_kdump_CFLAGS) $(CFLAGS) -MT kdump/kdump_fence_kdump-fence_kdump.o -MD -MP -MF kdump/$(DEPDIR)/kdump_fence_kdump-fence_kdump.Tpo -c -o kdump/kdump_fence_kdump-fence_kdump.o `test -f 'kdump/fence_kdump.c' || echo '$(srcdir)/'`kdump/fence_kdump.c
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) kdump/$(DEPDIR)/kdump_fence_kdump-fence_kdump.Tpo kdump/$(DEPDIR)/kdump_fence_kdump-fence_kdump.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kdump/fence_kdump.c' object='kdump/kdump_fence_kdump-fence_kdump.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(kdump_fence_kdump_CFLAGS) $(CFLAGS) -c -o kdump/kdump_fence_kdump-fence_kdump.o `test -f 'kdump/fence_kdump.c' || echo '$(srcdir)/'`kdump/fence_kdump.c
-
-kdump/kdump_fence_kdump-fence_kdump.obj: kdump/fence_kdump.c
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(kdump_fence_kdump_CFLAGS) $(CFLAGS) -MT kdump/kdump_fence_kdump-fence_kdump.obj -MD -MP -MF kdump/$(DEPDIR)/kdump_fence_kdump-fence_kdump.Tpo -c -o kdump/kdump_fence_kdump-fence_kdump.obj `if test -f 'kdump/fence_kdump.c'; then $(CYGPATH_W) 'kdump/fence_kdump.c'; else $(CYGPATH_W) '$(srcdir)/kdump/fence_kdump.c'; fi`
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) kdump/$(DEPDIR)/kdump_fence_kdump-fence_kdump.Tpo kdump/$(DEPDIR)/kdump_fence_kdump-fence_kdump.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kdump/fence_kdump.c' object='kdump/kdump_fence_kdump-fence_kdump.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(kdump_fence_kdump_CFLAGS) $(CFLAGS) -c -o kdump/kdump_fence_kdump-fence_kdump.obj `if test -f 'kdump/fence_kdump.c'; then $(CYGPATH_W) 'kdump/fence_kdump.c'; else $(CYGPATH_W) '$(srcdir)/kdump/fence_kdump.c'; fi`
-
-kdump/kdump_fence_kdump_send-fence_kdump_send.o: kdump/fence_kdump_send.c
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(kdump_fence_kdump_send_CFLAGS) $(CFLAGS) -MT kdump/kdump_fence_kdump_send-fence_kdump_send.o -MD -MP -MF kdump/$(DEPDIR)/kdump_fence_kdump_send-fence_kdump_send.Tpo -c -o kdump/kdump_fence_kdump_send-fence_kdump_send.o `test -f 'kdump/fence_kdump_send.c' || echo '$(srcdir)/'`kdump/fence_kdump_send.c
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) kdump/$(DEPDIR)/kdump_fence_kdump_send-fence_kdump_send.Tpo kdump/$(DEPDIR)/kdump_fence_kdump_send-fence_kdump_send.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kdump/fence_kdump_send.c' object='kdump/kdump_fence_kdump_send-fence_kdump_send.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(kdump_fence_kdump_send_CFLAGS) $(CFLAGS) -c -o kdump/kdump_fence_kdump_send-fence_kdump_send.o `test -f 'kdump/fence_kdump_send.c' || echo '$(srcdir)/'`kdump/fence_kdump_send.c
-
-kdump/kdump_fence_kdump_send-fence_kdump_send.obj: kdump/fence_kdump_send.c
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(kdump_fence_kdump_send_CFLAGS) $(CFLAGS) -MT kdump/kdump_fence_kdump_send-fence_kdump_send.obj -MD -MP -MF kdump/$(DEPDIR)/kdump_fence_kdump_send-fence_kdump_send.Tpo -c -o kdump/kdump_fence_kdump_send-fence_kdump_send.obj `if test -f 'kdump/fence_kdump_send.c'; then $(CYGPATH_W) 'kdump/fence_kdump_send.c'; else $(CYGPATH_W) '$(srcdir)/kdump/fence_kdump_send.c'; fi`
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) kdump/$(DEPDIR)/kdump_fence_kdump_send-fence_kdump_send.Tpo kdump/$(DEPDIR)/kdump_fence_kdump_send-fence_kdump_send.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kdump/fence_kdump_send.c' object='kdump/kdump_fence_kdump_send-fence_kdump_send.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(kdump_fence_kdump_send_CFLAGS) $(CFLAGS) -c -o kdump/kdump_fence_kdump_send-fence_kdump_send.obj `if test -f 'kdump/fence_kdump_send.c'; then $(CYGPATH_W) 'kdump/fence_kdump_send.c'; else $(CYGPATH_W) '$(srcdir)/kdump/fence_kdump_send.c'; fi`
-
-zvm/zvm_fence_zvm-fence_zvm.o: zvm/fence_zvm.c
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(zvm_fence_zvm_CFLAGS) $(CFLAGS) -MT zvm/zvm_fence_zvm-fence_zvm.o -MD -MP -MF zvm/$(DEPDIR)/zvm_fence_zvm-fence_zvm.Tpo -c -o zvm/zvm_fence_zvm-fence_zvm.o `test -f 'zvm/fence_zvm.c' || echo '$(srcdir)/'`zvm/fence_zvm.c
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) zvm/$(DEPDIR)/zvm_fence_zvm-fence_zvm.Tpo zvm/$(DEPDIR)/zvm_fence_zvm-fence_zvm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zvm/fence_zvm.c' object='zvm/zvm_fence_zvm-fence_zvm.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(zvm_fence_zvm_CFLAGS) $(CFLAGS) -c -o zvm/zvm_fence_zvm-fence_zvm.o `test -f 'zvm/fence_zvm.c' || echo '$(srcdir)/'`zvm/fence_zvm.c
-
-zvm/zvm_fence_zvm-fence_zvm.obj: zvm/fence_zvm.c
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(zvm_fence_zvm_CFLAGS) $(CFLAGS) -MT zvm/zvm_fence_zvm-fence_zvm.obj -MD -MP -MF zvm/$(DEPDIR)/zvm_fence_zvm-fence_zvm.Tpo -c -o zvm/zvm_fence_zvm-fence_zvm.obj `if test -f 'zvm/fence_zvm.c'; then $(CYGPATH_W) 'zvm/fence_zvm.c'; else $(CYGPATH_W) '$(srcdir)/zvm/fence_zvm.c'; fi`
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) zvm/$(DEPDIR)/zvm_fence_zvm-fence_zvm.Tpo zvm/$(DEPDIR)/zvm_fence_zvm-fence_zvm.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='zvm/fence_zvm.c' object='zvm/zvm_fence_zvm-fence_zvm.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(zvm_fence_zvm_CFLAGS) $(CFLAGS) -c -o zvm/zvm_fence_zvm-fence_zvm.obj `if test -f 'zvm/fence_zvm.c'; then $(CYGPATH_W) 'zvm/fence_zvm.c'; else $(CYGPATH_W) '$(srcdir)/zvm/fence_zvm.c'; fi`
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
- -rm -rf kdump/.libs kdump/_libs
- -rm -rf zvm/.libs zvm/_libs
-install-man8: $(dist_man_MANS) $(man_MANS)
- @$(NORMAL_INSTALL)
- @list1=''; \
- list2='$(dist_man_MANS) $(man_MANS)'; \
- test -n "$(man8dir)" \
- && test -n "`echo $$list1$$list2`" \
- || exit 0; \
- echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \
- { for i in $$list1; do echo "$$i"; done; \
- if test -n "$$list2"; then \
- for i in $$list2; do echo "$$i"; done \
- | sed -n '/\.8[a-z]*$$/p'; \
- fi; \
- } | while read p; do \
- if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; echo "$$p"; \
- done | \
- sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \
- -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
- sed 'N;N;s,\n, ,g' | { \
- list=; while read file base inst; do \
- if test "$$base" = "$$inst"; then list="$$list $$file"; else \
- echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \
- $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \
- fi; \
- done; \
- for i in $$list; do echo "$$i"; done | $(am__base_list) | \
- while read files; do \
- test -z "$$files" || { \
- echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \
- $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \
- done; }
-
-uninstall-man8:
- @$(NORMAL_UNINSTALL)
- @list=''; test -n "$(man8dir)" || exit 0; \
- files=`{ for i in $$list; do echo "$$i"; done; \
- l2='$(dist_man_MANS) $(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
- sed -n '/\.8[a-z]*$$/p'; \
- } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \
- -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
- dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir)
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && 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:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(MANS) $(HEADERS)
-installdirs:
- for dir in "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(scsidatadir)" "$(DESTDIR)$(man8dir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
- -rm -f kdump/$(DEPDIR)/$(am__dirstamp)
- -rm -f kdump/$(am__dirstamp)
- -rm -f zvm/$(DEPDIR)/$(am__dirstamp)
- -rm -f zvm/$(am__dirstamp)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
- -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
-clean-am: clean-generic clean-libexecPROGRAMS clean-libtool \
- clean-local clean-sbinPROGRAMS mostlyclean-am
-
-distclean: distclean-am
- -rm -rf kdump/$(DEPDIR) zvm/$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-man install-scsidataSCRIPTS
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-libexecPROGRAMS install-sbinPROGRAMS \
- install-sbinSCRIPTS
- @$(NORMAL_INSTALL)
- $(MAKE) $(AM_MAKEFLAGS) install-exec-hook
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man: install-man8
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf kdump/$(DEPDIR) zvm/$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-libexecPROGRAMS uninstall-man \
- uninstall-sbinPROGRAMS uninstall-sbinSCRIPTS \
- uninstall-scsidataSCRIPTS
- @$(NORMAL_INSTALL)
- $(MAKE) $(AM_MAKEFLAGS) uninstall-hook
-uninstall-man: uninstall-man8
-
-.MAKE: install-am install-exec-am install-strip uninstall-am
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
- clean-libexecPROGRAMS clean-libtool clean-local \
- clean-sbinPROGRAMS cscopelist-am ctags ctags-am distclean \
- distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-exec-hook \
- install-html install-html-am install-info install-info-am \
- install-libexecPROGRAMS install-man install-man8 install-pdf \
- install-pdf-am install-ps install-ps-am install-sbinPROGRAMS \
- install-sbinSCRIPTS install-scsidataSCRIPTS install-strip \
- installcheck installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags tags-am uninstall uninstall-am uninstall-hook \
- uninstall-libexecPROGRAMS uninstall-man uninstall-man8 \
- uninstall-sbinPROGRAMS uninstall-sbinSCRIPTS \
- uninstall-scsidataSCRIPTS
-
-.PRECIOUS: Makefile
-
-
-manual/fence_ack_manual: manual/fence_ack_manual.in
- mkdir -p $(@D)
- cat $^ | sed \
- -e 's#@clustervarrun@#${CLUSTERVARRUN}#g' \
- > $@
-
-scsi/fence_scsi_check: scsi/fence_scsi
- cp $^ $@
-
-scsi/fence_scsi_check_hardreboot: scsi/fence_scsi
- cp $^ $@
-
-kdump/fence_kdump.8: kdump/fence_kdump $(top_srcdir)/fence/agents/lib/fence2man.xsl
- set -e && \
- ./$(@:%.8=%) -o metadata > $(@D)/.$(@F).tmp && \
- xmllint --noout --relaxng $(top_srcdir)/fence/agents/lib/metadata.rng $(@D)/.$(@F).tmp && \
- xsltproc $(top_srcdir)/fence/agents/lib/fence2man.xsl $(@D)/.$(@F).tmp > $@
- xsltproc $(top_srcdir)/fence/agents/lib/fence2wiki.xsl $(@D)/.$(@F).tmp | grep -v '<?xml' > $(@D)/$(@F:%.8=%.wiki)
-
-kdump/fence_kdump_send.8:
- true
-
-manual/fence_ack_manual.8:
- true
-
-zvm/fence_zvm.8: zvm/fence_zvm
- cp $(top_srcdir)/fence/agents/zvm/fence_zvm_man_page $(@D)/fence_zvm.8
-
-cisco_mds/fence_cisco_mds.delay-check: cisco_mds/fence_cisco_mds
- $(eval INPUT=$(subst .delay-check,,$@))
- FENCE_TEST_ARGS_CISCO_MDS=$$(/bin/echo -e '$(FENCE_TEST_ARGS)' | sed 's#port=1#port=fc1/1#'); \
- test `PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib /usr/bin/time -f "%e" \
- sh -c "/bin/echo -e 'delay=10\n $$FENCE_TEST_ARGS_CISCO_MDS' | $(PYTHON) ./$(INPUT)" 2>&1 |\
- sed 's/\.//' | tail -n 1` -ge 1000 || ( \
- PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib /usr/bin/time -f "%e" \
- sh -c "/bin/echo -e "delay=0\n $$FENCE_TEST_ARGS_CISCO_MDS" | $(PYTHON) ./$(INPUT)"; false )
-define gen_agent_from_py
- mkdir -p `dirname $@`
- bash $(top_srcdir)/scripts/fenceparse \
- $(top_srcdir)/make/copyright.cf REDHAT_COPYRIGHT \
- $(VERSION) \
- $(abs_srcdir) $@ | \
- sed \
- -e 's#@''PYTHON@#${PYTHON}#g' \
- -e 's#@''FENCEAGENTSLIBDIR@#${FENCEAGENTSLIBDIR}#g' \
- -e 's#@''LOGDIR@#${LOGDIR}#g' \
- -e 's#@''SBINDIR@#${sbindir}#g' \
- -e 's#@''LIBEXECDIR@#${libexecdir}#g' \
- -e 's#@''IPMITOOL_PATH@#${IPMITOOL_PATH}#g' \
- -e 's#@''OPENSTACK_PATH@#${OPENSTACK_PATH}#g' \
- -e 's#@''AMTTOOL_PATH@#${AMTTOOL_PATH}#g' \
- -e 's#@''GNUTLSCLI_PATH@#${GNUTLSCLI_PATH}#g' \
- -e 's#@''COROSYNC_CMAPCTL_PATH@#${COROSYNC_CMAPCTL_PATH}#g' \
- -e 's#@''SG_PERSIST_PATH@#${SG_PERSIST_PATH}#g' \
- -e 's#@''SG_TURS_PATH@#${SG_TURS_PATH}#g' \
- -e 's#@''VGS_PATH@#${VGS_PATH}#g' \
- -e 's#@''SUDO_PATH@#${SUDO_PATH}#g' \
- -e 's#@''SSH_PATH@#${SSH_PATH}#g' \
- -e 's#@''TELNET_PATH@#${TELNET_PATH}#g' \
- -e 's#@''MPATH_PATH@#${MPATH_PATH}#g' \
- -e 's#@''SBD_PATH@#${SBD_PATH}#g' \
- -e 's#@''STORE_PATH@#${CLUSTERVARRUN}#g' \
- -e 's#@''SUDO_PATH@#${SUDO_PATH}#g' \
- -e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
- -e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
- -e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
- -e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
- -e 's#@''POWERMAN_PATH@#${POWERMAN_PATH}#g' \
- > $@
-
- if [ 0 -eq `echo "$(@)" | grep fence_ &> /dev/null; echo $$?` ]; then \
- PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $(top_srcdir)/fence/agents/lib/check_used_options.py $@; \
- else true ; fi
-
- for x in `PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $(@) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \
- cp -f $(@) $(@D)/$$x; \
- $(MAKE) $(@D)/$$x.8; \
- done
-endef
-
-# dependency, one on one
-$(foreach t,$(TARGET),$(eval $(t) : $(t:=.py)))
-
-# rule
-$(TARGET):
- $(call gen_agent_from_py)
-
-clean: clean-man
- rm -f $(CLEAN_TARGET:%.8=%) $(CLEAN_TARGET_ADDITIONAL) $(scsidata_SCRIPTS) */*.pyc */*.wiki
-
- if [ "$(abs_builddir)" = "$(abs_top_builddir)/fence/agents/lib" ]; then \
- rm -f $(TARGET); \
- fi
-
-clean-local: clean
-
-install-exec-hook: $(TARGET)
- if [ -n "$(man8dir)" ]; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \
- fi
- for p in $(TARGET); do \
- dir=`dirname $$p`; \
- for x in `PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $$p -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \
- echo " $(INSTALL_SCRIPT) $$dir/$$x '$(DESTDIR)$(sbindir)'"; \
- $(INSTALL_SCRIPT) $$dir/$$x "$(DESTDIR)$(sbindir)" || exit $$?; \
- echo " $(INSTALL_DATA) '$$dir/$$x.8' '$(DESTDIR)$(man8dir)'"; \
- $(INSTALL_DATA) "$$dir/$$x.8" "$(DESTDIR)$(man8dir)" || exit $$?; \
- done; \
- done
-
-uninstall-hook: $(TARGET)
- files=`for p in $(TARGET); do \
- for x in \`PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $$p -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"\`; do \
- echo " rm -f '$(DESTDIR)$(sbindir)/$$x'"; \
- rm -f "$(DESTDIR)$(sbindir)/$$x"; \
- echo " rm -f '$(DESTDIR)$(man8dir)/$$x.8'"; \
- rm -f "$(DESTDIR)$(man8dir)/$$x.8"; \
- done; \
- done`
-%.8: % $(top_srcdir)/fence/agents/lib/fence2man.xsl
- set -e && \
- PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/../lib:$(abs_builddir)/lib \
- $(PYTHON) $* -o metadata > $(@D)/.$(@F).tmp && \
- xmllint --noout --relaxng $(abs_srcdir)/lib/metadata.rng $(@D)/.$(@F).tmp && \
- xsltproc $(top_srcdir)/fence/agents/lib/fence2man.xsl $(@D)/.$(@F).tmp > $@
- xsltproc $(top_srcdir)/fence/agents/lib/fence2wiki.xsl $(@D)/.$(@F).tmp | grep -v '<?xml' > $(@D)/$(@F:%.8=%.wiki)
-
-clean-man:
- $(eval CLEAN_TARGET=$(shell find -name "*.8" | grep -Pv "kdump/fence_kdump_send.8|manual/fence_ack_manual.8"))
- rm -f $(CLEAN_TARGET) */.*.8.tmp */*.wiki
-
-check: $(TEST_TARGET:%=%.xml-check) $(SYMTARGET:%=%.xml-check) $(TEST_TARGET:%=%.delay-check) $(TEST_TARGET:%=%.rng-check)
-
-%.xml-check: %
- $(eval INPUT=$(subst .xml-check,,$(@F)))
- for x in $(INPUT) `PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $(@D)/$(INPUT) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \
- TEMPFILE=$$(mktemp); \
- PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $(@D)/$$x -o metadata | $(AWK) $(AWK_VAL) > $$TEMPFILE && \
- diff $$TEMPFILE $(DATADIR)/$$x.xml && \
- rm $$TEMPFILE; \
- done
-
-%.xml-upload: %
- $(eval INPUT=$(subst .xml-upload,,$(@F)))
- for x in $(INPUT) `PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $(@D)/$(INPUT) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \
- PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $(@D)/$$x -o metadata | $(AWK) $(AWK_VAL) > $(DATADIR)/$$x.xml; \
- done
-
-# If test will fail, rerun fence agents to show problems
-%.delay-check: %
- $(eval INPUT=$(subst .delay-check,,$(@F)))
- for x in $(INPUT) `PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $(@D)/$(INPUT) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \
- test `PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib /usr/bin/time -f "%e" \
- sh -c "/bin/echo -e 'delay=10\n $(FENCE_TEST_ARGS)' | $(PYTHON) $(@D)/$$x" 2>&1 |\
- sed 's/\.//' | tail -n 1` -ge 1000 || ( \
- PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib /usr/bin/time -f "%e" \
- sh -c "/bin/echo -e 'delay=0\n $(FENCE_TEST_ARGS)' | $(PYTHON) $(@D)/$$x"; false ); \
- done
-
-%.rng-check: %
- $(eval INPUT=$(subst .rng-check,,$(@F)))
- for x in $(INPUT) `PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $(@D)/$(INPUT) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \
- PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $(@D)/$$x -o metadata | \
- /usr/bin/xsltproc ${abs_top_srcdir}/fence/agents/lib/fence2rng.xsl - | \
- sed -e 's/ rha:description=/ description=/g' -e 's/ rha:name=/ name=/g' | \
- xmllint --nsclean --noout -; \
- done
-
-# 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.
-.NOEXPORT:
diff --git a/fence/agents/alom/fence_alom.py b/fence/agents/alom/fence_alom.py
index 62ffd7d..7b03dc2 100644
--- a/fence/agents/alom/fence_alom.py
+++ b/fence/agents/alom/fence_alom.py
@@ -10,12 +10,6 @@ import atexit
sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="Sun Advanced Lights Out Manager (ALOM)"
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
def get_power_status(conn, options):
conn.send_eol("showplatform")
conn.log_expect(options["--command-prompt"], int(options["--shell-timeout"]))
diff --git a/fence/agents/amt/fence_amt.py b/fence/agents/amt/fence_amt.py
index 082f5d0..feec6e3 100644
--- a/fence/agents/amt/fence_amt.py
+++ b/fence/agents/amt/fence_amt.py
@@ -7,12 +7,6 @@ sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
from fencing import fail_usage, is_executable, run_command, run_delay
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="Fence agent for Intel AMT"
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
def get_power_status(_, options):
output = amt_run_command(options, create_command(options, "status"))
match = re.search('Powerstate:[\\s]*(..)', str(output))
diff --git a/fence/agents/amt_ws/fence_amt_ws.py b/fence/agents/amt_ws/fence_amt_ws.py
index 5284a77..b99f20a 100755
--- a/fence/agents/amt_ws/fence_amt_ws.py
+++ b/fence/agents/amt_ws/fence_amt_ws.py
@@ -27,13 +27,6 @@ from fencing import run_delay, fail_usage, fail, EC_STATUS
import pywsman
from xml.etree import ElementTree
-
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="Fence agent for Intel AMT (WS)"
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
POWER_ON='2'
POWER_OFF='8'
POWER_CYCLE='10'
diff --git a/fence/agents/apc/fence_apc.py b/fence/agents/apc/fence_apc.py
index 1e9c376..24a5a42 100644
--- a/fence/agents/apc/fence_apc.py
+++ b/fence/agents/apc/fence_apc.py
@@ -20,12 +20,6 @@ sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
from fencing import fail, fail_usage, EC_STATUS
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="New APC Agent - test release on steroids"
-REDHAT_COPYRIGHT=""
-BUILD_DATE="March, 2008"
-#END_VERSION_GENERATION
-
# Fix for connection timed out issue in:
# https://bugzilla.redhat.com/show_bug.cgi?id=1342584
TIMEDOUT_DELAY = 0.5
diff --git a/fence/agents/apc_snmp/README b/fence/agents/apc_snmp/README
new file mode 100644
index 0000000..75aa37a
--- /dev/null
+++ b/fence/agents/apc_snmp/README
@@ -0,0 +1,45 @@
+This is an snmp based fence agent for APC power switches to be used
+with RHEL4 Red Hat Cluster Suite.
+
+The reasons to use this agent rather than the current fence_apc agent are:
+1) This script has been tested with EVERY powerswitch that APC currently
+makes.
+2) It will work on many older models that are no longer supported by APC.
+I have been told that it even works with the AP9200 switch. Older switches
+usually don't do well with the fence_apc script.
+3) This agent works with large power switches that have more than 8 outlets.
+The fence_apc script will also, in the next update -- this script will work for you now.
+
+If feedback on this beta version of the agent is good, and if ganged switches
+can be supported, then this agent may replace fence_apc.
+
+In order to use this agent, you will need to have net-snmp-utils installed
+on every node in your cluster. net-snmp-utils is scheduled for inclusion
+in the base RHEL distribution for Update 4, and is yummable in FC5.
+
+After net-snmp-utils is installed, there will be a directory named:
+/usr/share/snmp/mibs/
+
+Place the accompanying powernet369.mib file in this directory.
+
+To use the agent, cp the agent to the /sbin directory on every
+cluster node. The interface for the fence_apc_snmp agent is identical to
+the existing fence_apc agent, so if you are using APC for fencing in
+your cluster, you *could* backup your current fence_apc agent, and
+rename this agent from fence_apc_snmp to fence_apc, and it should just work.
+
+NOTE: The fence_apc_snmp agent does not yet support ganged or 'daisy-chained'
+APC switches.
+
+If you would rather not copy over your fence_apc agent, you can still use
+the fence_apc_snmp agent by dropping it into /sbin on every node, and then
+defining a <fencedevice> in the cluster.conf file with agent="fence_apc_snmp"
+as an attribute, and use it that way. Note, please, that the GUI does
+not support this agent yet, and you will have to edit your cluster.conf
+by hand and then propagate it yourself. If you need help with this, email
+me on linux-cluster or at the address below.
+
+Big thanks to Nate Straz who laid the foundation for this agent.
+
+Please let me know how this agent works.
+--Jim Parsons - jparsons at redhat.com
diff --git a/fence/agents/apc_snmp/fence_apc_snmp.py b/fence/agents/apc_snmp/fence_apc_snmp.py
index f93cfa8..f68c0cb 100644
--- a/fence/agents/apc_snmp/fence_apc_snmp.py
+++ b/fence/agents/apc_snmp/fence_apc_snmp.py
@@ -20,12 +20,6 @@ from fencing import *
from fencing import fail_usage
from fencing_snmp import FencingSnmp
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="APC SNMP fence agent"
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
### CONSTANTS ###
# oid defining fence device
OID_SYS_OBJECT_ID = '.1.3.6.1.2.1.1.2.0'
diff --git a/fence/agents/apc_snmp/powernet369.mib b/fence/agents/apc_snmp/powernet369.mib
new file mode 100644
index 0000000..ab948f8
--- /dev/null
+++ b/fence/agents/apc_snmp/powernet369.mib
@@ -0,0 +1,31109 @@
+-- *************************************************************************
+-- AMERICAN POWER CONVERSION PowerNet-MIB
+-- *************************************************************************
+-- Copyright (c) 2005 American Power Conversion, Inc.
+-- PowerNet is a Trademark of American Power Conversion Corp.
+--
+-- Title: APC TOP LEVEL PowerNet MIB
+--
+-- Version : 3.6.9
+--
+-- Generated by script: tomib.awk
+--
+-- Input File: powernetPS.mib
+--
+-- Created: Wednesday, January, 26, 2005
+--
+-- Revision History:
+-- *************************************************************************
+
+-- - v3.2.0 Added functionality for MasterSwitch Plus
+-- - v3.3.0 Added functionality for MX28B (dcDM3) and 3-phase UPS
+-- - v3.3.2 New traps for Symmetra PX UPS
+-- 07/15/01 - v3.4.0 Added transfer switch
+-- - v3.4.3 Added functionality for External and Integrated Environmental Monitor
+-- 06/14/02 - v3.4.4 Added dcmim2(Siemens) branch, Battery Manager(Reading) traps, and
+-- Psx Traps for PDU and RM-PDU and Netlock branch/traps
+-- 06/18/02 - v3.5.0a Sync Control Group support
+-- 08/06/02 - v3.5.0a Environmental Management System branch/traps
+-- 09/16/02 - v3.5.0b Fixed some odds/ends ... going to RM-PDU for MS additions
+-- 09/25/02 - v3.5.0c MS3 additions
+-- 11/05/02 - v3.5.0e More Environmental Management System/A-Link devices(ARU)
+-- 11/22/02 - v3.5.0g Added General APC device status OID
+-- 11/27/02 - v3.5.0h Wrapped up MS3 ((Controlled or Metered) Rack PDU) changes
+-- 12/26/02 - v3.5.1a Changed MS3 name again, Controlled to Switched Rack PDU
+-- 01/07/03 - v3.6.0a Added OIDs/Traps for UPS Switchable Outlet Groups.
+-- 01/09/03 - Adding the General APC device discovery OIDs (hidden)
+-- 01/28/03 - v3.6.0c Made some small trap pair fixes for Switched Rack PDU (MS3)
+-- 02/13/03 - v3.6.0d Mods from the review and some EMS fixes.
+-- Added OID for the new 20kVA Symmetra 3 Phase type.
+-- Added OIDs to upsAdvConfig for Symmetra type UPSs.
+-- Added upsDiagnostics branch OID for Symmetra module information.
+-- 04/05/03 - v3.6.2 Added OID for the new Smart-UPS 7500 and 10000 types.
+-- 06/04/03 - v3.6.3 Added OIDs/Traps for AirFM.
+-- 06/24/03 - v3.6.4 Moved some AirFM temps and humidities from system level to module level.
+-- 10/24/03 - v3.6.4a Added OIDs/Traps for xPDU.
+-- 10/27/03 - v3.6.4f Added AirPA OIDs.
+-- 11/03/03 - v3.6.4g Merge of 3.6.4e and 3.6.4f
+-- 11/07/03 - v3.6.4h Additional review corrections
+-- 12/01/03 - v3.6.5a Added group OIDs for Air FM. Added C & F OIDs for Air PA setpoint.
+-- 12/19/03 - v3.6.5b Review corrections.
+-- 02/23/04 - v3.6.5c Added Modbus to experimental and multiple CB(bank) rPDU support
+-- 05/05/04 - v3.6.6 Adding EMS status OID and trap for H/W issues, redefined duplicate
+-- trap #228 (to ARU Device config change) and minor clean-up
+-- 05/12/04 - v3.6.7a Added Air FM alarm status OIDs.
+-- 06/03/04 - v3.6.7b Added UPS Config for Simple Signal Shutdowns and Number of External
+-- batteries. Added Mute option to the UPS Config Audible Alarm.
+-- 07/12/04 - v3.6.7d Removed Air FM alarm status OIDs due to delay in release.
+-- 07/14/04 - v3.6.7d Added a detailed description to the UPSAdvConfigAlarm OID
+-- 07/14/04 - v3.6.7e Added Custom Event traps
+-- 08/04/04 - v3.6.7 Tag for final builds, see v3.6.7 beta build notes for changes
+-- 08/26/04 - v3.6.8a Added new traps for UPS internal over temperature fault and cleared.
+-- 09/01/04 - v3.6.8b Adding new thresholds for EMS probe config & status
+-- 09/08/04 - v3.6.8c Corrections from MIB review.
+-- 09/30/04 - v3.6.8d Added new traps for AIS ^F Message events.
+-- 10/21/04 - v3.6.8e EMS. Added missing traps and new Rate functionality.
+-- 10/22/04 - v3.6.8f Added resetNetworkLeaveModeAndRestart option to the mcontrolRestartAgent OID.
+-- 10/28/04 - v3.6.8g Updated EMS sections from mib committee review.
+-- 11/22/04 - v3.6.8 Tag for final build.
+-- 12/02/04 - v3.6.9a Added OIDs and traps for BMS-HVA.
+-- 12/20/04 - v3.6.9c corrections to xPDU.
+-- 12/20/04 - v3.6.9c added OIDs and traps for xATS.
+-- 01/03/05 - v3.6.9d removed traps for xATS.
+-- 01/03/05 - v3.6.9e correction to xATS entries, that removed underscores (mib browser incompatibility)
+-- 01/07/05 - v3.6.9f
+-- 01/14/05 - v3.6.9g add xPDU OIDs and traps and some corrections.
+-- 01/14/05 - v3.6.9g modifications to xATS OIDs and traps.
+
+-- *************************************************************************
+-- *************************************************************************
+-- PowerNet-MIB { iso org(3) dod(6) internet(1) private(4)
+-- enterprises(1) apc(318) }
+
+PowerNet-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ enterprises, IpAddress, Gauge, TimeTicks FROM RFC1155-SMI
+ DisplayString FROM RFC1213-MIB
+ OBJECT-TYPE FROM RFC-1212
+ TRAP-TYPE FROM RFC-1215;
+
+apc OBJECT IDENTIFIER ::= { enterprises 318 }
+
+products OBJECT IDENTIFIER ::= { apc 1 }
+apcmgmt OBJECT IDENTIFIER ::= { apc 2 }
+
+hardware OBJECT IDENTIFIER ::= { products 1 }
+software OBJECT IDENTIFIER ::= { products 2 }
+system OBJECT IDENTIFIER ::= { products 3 }
+experimental OBJECT IDENTIFIER ::= { products 4 }
+
+mconfig OBJECT IDENTIFIER ::= { apcmgmt 1 }
+mcontrol OBJECT IDENTIFIER ::= { apcmgmt 2 }
+mtrapargs OBJECT IDENTIFIER ::= { apcmgmt 3 }
+mfiletransfer OBJECT IDENTIFIER ::= { apcmgmt 4 }
+
+mconfigClock OBJECT IDENTIFIER ::= { mconfig 6 }
+
+mfiletransferStatus OBJECT IDENTIFIER ::= { mfiletransfer 1 }
+mfiletransferConfig OBJECT IDENTIFIER ::= { mfiletransfer 2 }
+mfiletransferControl OBJECT IDENTIFIER ::= { mfiletransfer 3 }
+
+mfiletransferConfigSettings OBJECT IDENTIFIER ::= { mfiletransferConfig 1 }
+mfiletransferConfigTFTP OBJECT IDENTIFIER ::= { mfiletransferConfig 2 }
+mfiletransferConfigFTP OBJECT IDENTIFIER ::= { mfiletransferConfig 3 }
+
+ups OBJECT IDENTIFIER ::= { hardware 1 }
+measureUps OBJECT IDENTIFIER ::= { hardware 2 }
+miniSNMPadapter OBJECT IDENTIFIER ::= { hardware 3 }
+masterswitch OBJECT IDENTIFIER ::= { hardware 4 }
+masterswitchVM OBJECT IDENTIFIER ::= { hardware 5 }
+masterswitchMSP OBJECT IDENTIFIER ::= { hardware 6 }
+dcDM3 OBJECT IDENTIFIER ::= { hardware 7 }
+automaticTransferSwitch OBJECT IDENTIFIER ::= { hardware 8 }
+dc2 OBJECT IDENTIFIER ::= { hardware 9 }
+environmentalMonitor OBJECT IDENTIFIER ::= { hardware 10 }
+netlock OBJECT IDENTIFIER ::= { hardware 11 }
+rPDU OBJECT IDENTIFIER ::= { hardware 12 }
+airConditioners OBJECT IDENTIFIER ::= { hardware 13 }
+rARU OBJECT IDENTIFIER ::= { hardware 14 }
+xPDU OBJECT IDENTIFIER ::= { hardware 15 }
+battMan OBJECT IDENTIFIER ::= { hardware 16 }
+xATS OBJECT IDENTIFIER ::= { hardware 17 }
+generator OBJECT IDENTIFIER ::= { hardware 18 }
+
+powerNetSubAgent OBJECT IDENTIFIER ::= { software 1 }
+
+powerNetSoftwareSystem OBJECT IDENTIFIER ::= { powerNetSubAgent 1 }
+powerNetSoftwareConfig OBJECT IDENTIFIER ::= { powerNetSubAgent 2 }
+
+backUPS OBJECT IDENTIFIER ::= { system 1 }
+smartUPS OBJECT IDENTIFIER ::= { system 2 }
+matrixUPS OBJECT IDENTIFIER ::= { system 3 }
+masterSwitch OBJECT IDENTIFIER ::= { system 4 }
+symmetraUPS OBJECT IDENTIFIER ::= { system 5 }
+dp100E OBJECT IDENTIFIER ::= { system 6 }
+dp300E OBJECT IDENTIFIER ::= { system 7 }
+monitors OBJECT IDENTIFIER ::= { system 8 }
+redundantSwitch OBJECT IDENTIFIER ::= { system 9 }
+dcPower OBJECT IDENTIFIER ::= { system 10 }
+automaticXferSwitch OBJECT IDENTIFIER ::= { system 11 }
+netLock OBJECT IDENTIFIER ::= { system 12 }
+symmetra3PhaseUPS OBJECT IDENTIFIER ::= { system 13 }
+networkAir OBJECT IDENTIFIER ::= { system 14 }
+infraXurePDU OBJECT IDENTIFIER ::= { system 15 }
+ais5000UPS OBJECT IDENTIFIER ::= { system 16 }
+smartUPS3Phase OBJECT IDENTIFIER ::= { system 17 }
+battManager OBJECT IDENTIFIER ::= { system 18 }
+infraXureATS OBJECT IDENTIFIER ::= { system 19 }
+
+battManIdent OBJECT IDENTIFIER ::= { battMan 1 }
+battManSystemCalib OBJECT IDENTIFIER ::= { battMan 2 }
+battManUnitCalib OBJECT IDENTIFIER ::= { battMan 3 }
+battManStringCalib OBJECT IDENTIFIER ::= { battMan 4 }
+battManBatteryCalib OBJECT IDENTIFIER ::= { battMan 5 }
+battManConfig OBJECT IDENTIFIER ::= { battMan 6 }
+battManAlarm OBJECT IDENTIFIER ::= { battMan 7 }
+battManSystemStatus OBJECT IDENTIFIER ::= { battMan 8 }
+battManStringStatus OBJECT IDENTIFIER ::= { battMan 9 }
+battManBatteryStatus OBJECT IDENTIFIER ::= { battMan 10 }
+battManInputContactStatus OBJECT IDENTIFIER ::= { battMan 11 }
+battManControl OBJECT IDENTIFIER ::= { battMan 12 }
+battManTestResults OBJECT IDENTIFIER ::= { battMan 13 }
+
+xPDUIdent OBJECT IDENTIFIER ::= { xPDU 1 }
+xPDUDevice OBJECT IDENTIFIER ::= { xPDU 2 }
+xPDUACMonitoringPoint OBJECT IDENTIFIER ::= { xPDU 3 }
+xPDUCircuitBreakers OBJECT IDENTIFIER ::= { xPDU 4 }
+xPDUInputContacts OBJECT IDENTIFIER ::= { xPDU 5 }
+xPDUOutputRelays OBJECT IDENTIFIER ::= { xPDU 6 }
+xPDUMiscGroup OBJECT IDENTIFIER ::= { xPDU 7 }
+
+xPDUMainInput OBJECT IDENTIFIER ::= { xPDUACMonitoringPoint 1 }
+xPDUBypassInput OBJECT IDENTIFIER ::= { xPDUACMonitoringPoint 2 }
+xPDUUPSInput OBJECT IDENTIFIER ::= { xPDUACMonitoringPoint 3 }
+xPDUSystemOutput OBJECT IDENTIFIER ::= { xPDUACMonitoringPoint 4 }
+xPDUGroundMonitorPoint OBJECT IDENTIFIER ::= { xPDUACMonitoringPoint 5 }
+
+xPDUSystemBreakers OBJECT IDENTIFIER ::= { xPDUCircuitBreakers 1 }
+xPDUBranchBreakers OBJECT IDENTIFIER ::= { xPDUCircuitBreakers 2 }
+
+xATSIdent OBJECT IDENTIFIER ::= { xATS 1 }
+xATSDevice OBJECT IDENTIFIER ::= { xATS 2 }
+xATSSwitch OBJECT IDENTIFIER ::= { xATS 3 }
+xATSACMonitoringPoint OBJECT IDENTIFIER ::= { xATS 4 }
+xATSTesting OBJECT IDENTIFIER ::= { xATS 5 }
+xATSInputContacts OBJECT IDENTIFIER ::= { xATS 6 }
+xATSOutputRelays OBJECT IDENTIFIER ::= { xATS 7 }
+xATSMisc OBJECT IDENTIFIER ::= { xATS 8 }
+
+xATSSwitchStatus OBJECT IDENTIFIER ::= { xATSSwitch 1 }
+xATSSwitchSettings OBJECT IDENTIFIER ::= { xATSSwitch 2 }
+xATSSwitchTimers OBJECT IDENTIFIER ::= { xATSSwitch 3 }
+xATSSwitchBlockMap OBJECT IDENTIFIER ::= { xATSSwitch 4 }
+xATSSwitchStatistics OBJECT IDENTIFIER ::= { xATSSwitch 5 }
+
+xATSSource1 OBJECT IDENTIFIER ::= { xATSACMonitoringPoint 1 }
+xATSSource2 OBJECT IDENTIFIER ::= { xATSACMonitoringPoint 2 }
+xATSSystemOutput OBJECT IDENTIFIER ::= { xATSACMonitoringPoint 3 }
+
+xATSTestingStatus OBJECT IDENTIFIER ::= { xATSTesting 1 }
+xATSTestingResults OBJECT IDENTIFIER ::= { xATSTesting 2 }
+xATSTestingSchedule OBJECT IDENTIFIER ::= { xATSTesting 3 }
+xATSTestingSimulatePowerFail OBJECT IDENTIFIER ::= { xATSTesting 4 }
+
+xATSGenerator OBJECT IDENTIFIER ::= { generator 1 }
+
+xATSGeneratorIdent OBJECT IDENTIFIER ::= { xATSGenerator 1 }
+xATSGeneratorStatus OBJECT IDENTIFIER ::= { xATSGenerator 2 }
+xATSGeneratorAdvStatus OBJECT IDENTIFIER ::= { xATSGenerator 3 }
+xATSGeneratorOutput OBJECT IDENTIFIER ::= { xATSGenerator 4 }
+xATSGeneratorSettings OBJECT IDENTIFIER ::= { xATSGenerator 5 }
+xATSGeneratorService OBJECT IDENTIFIER ::= { xATSGenerator 6 }
+xATSGeneratorFuelSystem OBJECT IDENTIFIER ::= { xATSGenerator 7 }
+
+
+smartUPS250 OBJECT IDENTIFIER ::= { smartUPS 1 }
+smartUPS400 OBJECT IDENTIFIER ::= { smartUPS 2 }
+smartUPS600 OBJECT IDENTIFIER ::= { smartUPS 3 }
+smartUPS900 OBJECT IDENTIFIER ::= { smartUPS 4 }
+smartUPS1250 OBJECT IDENTIFIER ::= { smartUPS 5 }
+smartUPS2000 OBJECT IDENTIFIER ::= { smartUPS 6 }
+
+smartUPS450 OBJECT IDENTIFIER ::= { smartUPS 7 }
+smartUPS700 OBJECT IDENTIFIER ::= { smartUPS 8 }
+smartUPS1000 OBJECT IDENTIFIER ::= { smartUPS 9 }
+smartUPS1400 OBJECT IDENTIFIER ::= { smartUPS 10 }
+smartUPS2200 OBJECT IDENTIFIER ::= { smartUPS 11 }
+smartUPS3000 OBJECT IDENTIFIER ::= { smartUPS 12 }
+smartUPS5000 OBJECT IDENTIFIER ::= { smartUPS 13 }
+smartUPS7500 OBJECT IDENTIFIER ::= { smartUPS 14 }
+smartUPS10000 OBJECT IDENTIFIER ::= { smartUPS 15 }
+smartUPS1500 OBJECT IDENTIFIER ::= { smartUPS 16 }
+
+matrixUPS3000 OBJECT IDENTIFIER ::= { matrixUPS 1 }
+matrixUPS5000 OBJECT IDENTIFIER ::= { matrixUPS 2 }
+
+masterSwitchV1 OBJECT IDENTIFIER ::= { masterSwitch 1}
+masterSwitchV2 OBJECT IDENTIFIER ::= { masterSwitch 2}
+masterSwitchVM OBJECT IDENTIFIER ::= { masterSwitch 3}
+masterSwitchMSP OBJECT IDENTIFIER ::= { masterSwitch 4}
+masterSwitchrPDU OBJECT IDENTIFIER ::= { masterSwitch 5}
+
+symmetraUPS4kVA OBJECT IDENTIFIER ::= { symmetraUPS 1 }
+symmetraUPS8kVA OBJECT IDENTIFIER ::= { symmetraUPS 2 }
+symmetraUPS12kVA OBJECT IDENTIFIER ::= { symmetraUPS 3 }
+symmetraUPS16kVA OBJECT IDENTIFIER ::= { symmetraUPS 4 }
+
+environmental OBJECT IDENTIFIER ::= { monitors 1 }
+environmentalMgtSystem OBJECT IDENTIFIER ::= { monitors 2 }
+emu2 OBJECT IDENTIFIER ::= { monitors 3 }
+
+dm3 OBJECT IDENTIFIER ::= { dcPower 1 }
+dcmim2 OBJECT IDENTIFIER ::= { dcPower 2 }
+
+symmetra3PhaseUPS40kVA OBJECT IDENTIFIER ::= { symmetra3PhaseUPS 1 }
+symmetra3PhaseUPS60kVA OBJECT IDENTIFIER ::= { symmetra3PhaseUPS 2 }
+symmetra3PhaseUPS80kVA OBJECT IDENTIFIER ::= { symmetra3PhaseUPS 3 }
+symmetra3PhaseUPS20kVA OBJECT IDENTIFIER ::= { symmetra3PhaseUPS 4 }
+
+airFMSeries OBJECT IDENTIFIER ::= { networkAir 1 }
+rackAirRemovalUnit OBJECT IDENTIFIER ::= { networkAir 2 }
+airPASeries OBJECT IDENTIFIER ::= { networkAir 3 }
+
+ais5000UPS10kVA OBJECT IDENTIFIER ::= { ais5000UPS 1 }
+ais5000UPS20kVA OBJECT IDENTIFIER ::= { ais5000UPS 2 }
+ais5000UPS30kVA OBJECT IDENTIFIER ::= { ais5000UPS 3 }
+ais5000UPS40kVA OBJECT IDENTIFIER ::= { ais5000UPS 4 }
+ais5000UPS60kVA OBJECT IDENTIFIER ::= { ais5000UPS 5 }
+ais5000UPS80kVA OBJECT IDENTIFIER ::= { ais5000UPS 6 }
+ais5000UPS100kVA OBJECT IDENTIFIER ::= { ais5000UPS 7 }
+
+smartUPS3Phase10kVA OBJECT IDENTIFIER ::= { smartUPS3Phase 1 }
+smartUPS3Phase15kVA OBJECT IDENTIFIER ::= { smartUPS3Phase 2 }
+smartUPS3Phase20kVA OBJECT IDENTIFIER ::= { smartUPS3Phase 3 }
+smartUPS3Phase30kVA OBJECT IDENTIFIER ::= { smartUPS3Phase 4 }
+smartUPS3Phase40kVA OBJECT IDENTIFIER ::= { smartUPS3Phase 5 }
+
+upsIdent OBJECT IDENTIFIER ::= { ups 1 }
+upsBattery OBJECT IDENTIFIER ::= { ups 2 }
+upsInput OBJECT IDENTIFIER ::= { ups 3 }
+upsOutput OBJECT IDENTIFIER ::= { ups 4 }
+upsConfig OBJECT IDENTIFIER ::= { ups 5 }
+upsControl OBJECT IDENTIFIER ::= { ups 6 }
+upsTest OBJECT IDENTIFIER ::= { ups 7 }
+upsComm OBJECT IDENTIFIER ::= { ups 8 }
+upsPhase OBJECT IDENTIFIER ::= { ups 9 }
+upsSyncCtrlGroup OBJECT IDENTIFIER ::= { ups 10 }
+upsState OBJECT IDENTIFIER ::= { ups 11 }
+upsOutletGroups OBJECT IDENTIFIER ::= { ups 12 }
+upsDiagnostics OBJECT IDENTIFIER ::= { ups 13 }
+
+upsBasicIdent OBJECT IDENTIFIER ::= { upsIdent 1 }
+upsAdvIdent OBJECT IDENTIFIER ::= { upsIdent 2 }
+
+upsBasicBattery OBJECT IDENTIFIER ::= { upsBattery 1 }
+upsAdvBattery OBJECT IDENTIFIER ::= { upsBattery 2 }
+
+upsBasicInput OBJECT IDENTIFIER ::= { upsInput 1 }
+upsAdvInput OBJECT IDENTIFIER ::= { upsInput 2 }
+
+upsBasicOutput OBJECT IDENTIFIER ::= { upsOutput 1 }
+upsAdvOutput OBJECT IDENTIFIER ::= { upsOutput 2 }
+
+upsBasicConfig OBJECT IDENTIFIER ::= { upsConfig 1 }
+upsAdvConfig OBJECT IDENTIFIER ::= { upsConfig 2 }
+
+upsBasicControl OBJECT IDENTIFIER ::= { upsControl 1 }
+upsAdvControl OBJECT IDENTIFIER ::= { upsControl 2 }
+
+upsBasicTest OBJECT IDENTIFIER ::= { upsTest 1 }
+upsAdvTest OBJECT IDENTIFIER ::= { upsTest 2 }
+
+upsPhaseResetValues OBJECT IDENTIFIER ::= { upsPhase 1 }
+upsPhaseInput OBJECT IDENTIFIER ::= { upsPhase 2 }
+upsPhaseOutput OBJECT IDENTIFIER ::= { upsPhase 3 }
+
+upsSyncCtrlGroupConfig OBJECT IDENTIFIER ::= { upsSyncCtrlGroup 1 }
+upsSyncCtrlGroupStatus OBJECT IDENTIFIER ::= { upsSyncCtrlGroup 2 }
+
+upsBasicState OBJECT IDENTIFIER ::= { upsState 1 }
+upsAdvState OBJECT IDENTIFIER ::= { upsState 2 }
+
+upsOutletGroupStatus OBJECT IDENTIFIER ::= { upsOutletGroups 1 }
+upsOutletGroupConfig OBJECT IDENTIFIER ::= { upsOutletGroups 2 }
+upsOutletGroupControl OBJECT IDENTIFIER ::= { upsOutletGroups 3 }
+
+upsDiagnosticIM OBJECT IDENTIFIER ::= { upsDiagnostics 1 }
+upsDiagnosticPowerModules OBJECT IDENTIFIER ::= { upsDiagnostics 2 }
+upsDiagnosticBatteries OBJECT IDENTIFIER ::= { upsDiagnostics 3 }
+upsDiagnosticSubsystem OBJECT IDENTIFIER ::= { upsDiagnostics 4 }
+upsDiagnosticExternalDevices OBJECT IDENTIFIER ::= { upsDiagnostics 5 }
+upsDiagnosticComBus OBJECT IDENTIFIER ::= { upsDiagnostics 6 }
+
+upsDiagSwitchGear OBJECT IDENTIFIER ::= { upsDiagnosticExternalDevices 1 }
+upsDiagMCCBBox OBJECT IDENTIFIER ::= { upsDiagnosticExternalDevices 2 }
+upsDiagTransformer OBJECT IDENTIFIER ::= { upsDiagnosticExternalDevices 3 }
+
+mUpsEnviron OBJECT IDENTIFIER ::= { measureUps 1 }
+mUpsContact OBJECT IDENTIFIER ::= { measureUps 2 }
+
+serialPort OBJECT IDENTIFIER ::= { miniSNMPadapter 1}
+
+serialPort1 OBJECT IDENTIFIER ::= { serialPort 1}
+serialPort2 OBJECT IDENTIFIER ::= { serialPort 2}
+
+serialPort2Config OBJECT IDENTIFIER ::= { serialPort2 1}
+serialPort2Control OBJECT IDENTIFIER ::= { serialPort2 2}
+
+sPDUIdent OBJECT IDENTIFIER ::= { masterswitch 1 }
+sPDUMasterControl OBJECT IDENTIFIER ::= { masterswitch 2 }
+sPDUMasterConfig OBJECT IDENTIFIER ::= { masterswitch 3 }
+sPDUOutletControl OBJECT IDENTIFIER ::= { masterswitch 4 }
+sPDUOutletConfig OBJECT IDENTIFIER ::= { masterswitch 5 }
+
+sPDUIdentVM OBJECT IDENTIFIER ::= { masterswitchVM 1 }
+sPDUMasterControlVM OBJECT IDENTIFIER ::= { masterswitchVM 2 }
+sPDUMasterConfigVM OBJECT IDENTIFIER ::= { masterswitchVM 3 }
+sPDUMasterStatusVM OBJECT IDENTIFIER ::= { masterswitchVM 4 }
+sPDUOutletControlVM OBJECT IDENTIFIER ::= { masterswitchVM 5 }
+sPDUOutletConfigVM OBJECT IDENTIFIER ::= { masterswitchVM 6 }
+sPDUOutletStatusVM OBJECT IDENTIFIER ::= { masterswitchVM 7 }
+
+sPDUIdentMSP OBJECT IDENTIFIER ::= { masterswitchMSP 1 }
+sPDUMasterControlMSP OBJECT IDENTIFIER ::= { masterswitchMSP 2 }
+sPDUMasterConfigMSP OBJECT IDENTIFIER ::= { masterswitchMSP 3 }
+sPDUMasterStatusMSP OBJECT IDENTIFIER ::= { masterswitchMSP 4 }
+sPDUOutletControlMSP OBJECT IDENTIFIER ::= { masterswitchMSP 5 }
+sPDUOutletConfigMSP OBJECT IDENTIFIER ::= { masterswitchMSP 6 }
+sPDUOutletStatusMSP OBJECT IDENTIFIER ::= { masterswitchMSP 7 }
+
+sPDUOutletConfigMSPall OBJECT IDENTIFIER ::= { sPDUOutletConfigMSP 1 }
+sPDUOutletConfigMSPgs OBJECT IDENTIFIER ::= { sPDUOutletConfigMSP 2 }
+sPDUOutletConfigMSPannun OBJECT IDENTIFIER ::= { sPDUOutletConfigMSP 3 }
+sPDUOutletConfigMSPmups OBJECT IDENTIFIER ::= { sPDUOutletConfigMSP 4 }
+
+rPDUIdent OBJECT IDENTIFIER ::= { rPDU 1 }
+rPDULoad OBJECT IDENTIFIER ::= { rPDU 2 }
+rPDUOutlet OBJECT IDENTIFIER ::= { rPDU 3 }
+rPDUPowerSupply OBJECT IDENTIFIER ::= { rPDU 4 }
+
+rPDULoadDevice OBJECT IDENTIFIER ::= { rPDULoad 1 }
+rPDULoadPhaseConfig OBJECT IDENTIFIER ::= { rPDULoad 2 }
+rPDULoadStatus OBJECT IDENTIFIER ::= { rPDULoad 3 }
+rPDULoadBankConfig OBJECT IDENTIFIER ::= { rPDULoad 4 }
+
+rPDUOutletDevice OBJECT IDENTIFIER ::= { rPDUOutlet 1 }
+rPDUOutletPhase OBJECT IDENTIFIER ::= { rPDUOutlet 2 }
+rPDUOutletControl OBJECT IDENTIFIER ::= { rPDUOutlet 3 }
+rPDUOutletConfig OBJECT IDENTIFIER ::= { rPDUOutlet 4 }
+rPDUOutletStatus OBJECT IDENTIFIER ::= { rPDUOutlet 5 }
+rPDUOutletBank OBJECT IDENTIFIER ::= { rPDUOutlet 6 }
+
+rPDUPowerSupplyDevice OBJECT IDENTIFIER ::= { rPDUPowerSupply 1 }
+
+dm3Ident OBJECT IDENTIFIER ::= { dcDM3 1 }
+dm3Config OBJECT IDENTIFIER ::= { dcDM3 2 }
+dm3Status OBJECT IDENTIFIER ::= { dcDM3 3 }
+
+dm3IdentSystem OBJECT IDENTIFIER ::= { dm3Ident 1}
+
+dm3ConfigSystem OBJECT IDENTIFIER ::= { dm3Config 1 }
+dm3ConfigLVD OBJECT IDENTIFIER ::= { dm3Config 2 }
+dm3ConfigBattery OBJECT IDENTIFIER ::= { dm3Config 3 }
+dm3ConfigPowerModules OBJECT IDENTIFIER ::= { dm3Config 4 }
+dm3ConfigRelays OBJECT IDENTIFIER ::= { dm3Config 5 }
+dm3ConfigDistribution OBJECT IDENTIFIER ::= { dm3Config 6 }
+
+dm3ConfigRectifier OBJECT IDENTIFIER ::= { dm3ConfigPowerModules 1 }
+dm3ConfigConverter OBJECT IDENTIFIER ::= { dm3ConfigPowerModules 2 }
+
+dm3ConfigRectThresh OBJECT IDENTIFIER ::= { dm3ConfigRectifier 1 }
+dm3ConfigRectAlarms OBJECT IDENTIFIER ::= { dm3ConfigRectifier 2 }
+
+dm3ConfigConvThresh OBJECT IDENTIFIER ::= { dm3ConfigConverter 1 }
+dm3ConfigConvAlarms OBJECT IDENTIFIER ::= { dm3ConfigConverter 2 }
+
+dm3ConfigOutputRelays OBJECT IDENTIFIER ::= { dm3ConfigRelays 1 }
+dm3ConfigInputRelays OBJECT IDENTIFIER ::= { dm3ConfigRelays 2 }
+
+dm3ConfigBreakers OBJECT IDENTIFIER ::= { dm3ConfigDistribution 1 }
+dm3ConfigFuses OBJECT IDENTIFIER ::= { dm3ConfigDistribution 2 }
+
+dm3StatusSystem OBJECT IDENTIFIER ::= { dm3Status 1 }
+dm3StatusAlarms OBJECT IDENTIFIER ::= { dm3Status 2 }
+dm3StatusBattery OBJECT IDENTIFIER ::= { dm3Status 3 }
+dm3StatusOEM OBJECT IDENTIFIER ::= { dm3Status 4 }
+dm3StatusLVD OBJECT IDENTIFIER ::= { dm3Status 5 }
+dm3StatusPowerModules OBJECT IDENTIFIER ::= { dm3Status 6 }
+dm3StatusRelays OBJECT IDENTIFIER ::= { dm3Status 7 }
+dm3StatusDistribution OBJECT IDENTIFIER ::= { dm3Status 8 }
+
+dm3StatusRectifier OBJECT IDENTIFIER ::= { dm3StatusPowerModules 1 }
+dm3StatusConverter OBJECT IDENTIFIER ::= { dm3StatusPowerModules 2 }
+
+dm3StatusOutputRelays OBJECT IDENTIFIER ::= { dm3StatusRelays 1 }
+dm3StatusInputRelays OBJECT IDENTIFIER ::= { dm3StatusRelays 2 }
+
+dm3StatusBreakers OBJECT IDENTIFIER ::= { dm3StatusDistribution 1 }
+dm3StatusFuses OBJECT IDENTIFIER ::= { dm3StatusDistribution 2 }
+
+atsIdent OBJECT IDENTIFIER ::= { automaticTransferSwitch 1 }
+atsCalibration OBJECT IDENTIFIER ::= { automaticTransferSwitch 2 }
+atsControl OBJECT IDENTIFIER ::= { automaticTransferSwitch 3 }
+atsConfig OBJECT IDENTIFIER ::= { automaticTransferSwitch 4 }
+atsStatus OBJECT IDENTIFIER ::= { automaticTransferSwitch 5 }
+
+atsCalibrationInput OBJECT IDENTIFIER ::= { atsCalibration 1 }
+atsCalibrationPowerSupply OBJECT IDENTIFIER ::= { atsCalibration 2 }
+atsCalibrationOutput OBJECT IDENTIFIER ::= { atsCalibration 3 }
+
+atsStatusDeviceStatus OBJECT IDENTIFIER ::= { atsStatus 1 }
+atsStatusResetValues OBJECT IDENTIFIER ::= { atsStatus 2 }
+atsStatusInput OBJECT IDENTIFIER ::= { atsStatus 3 }
+atsStatusOutput OBJECT IDENTIFIER ::= { atsStatus 4 }
+
+dcmim2Ident OBJECT IDENTIFIER ::= { dc2 1 }
+dcmim2Control OBJECT IDENTIFIER ::= { dc2 2 }
+dcmim2Config OBJECT IDENTIFIER ::= { dc2 3 }
+dcmim2Status OBJECT IDENTIFIER ::= { dc2 4 }
+
+dcmim2IdentSystem OBJECT IDENTIFIER ::= { dcmim2Ident 1 }
+
+dcmim2ControlSystem OBJECT IDENTIFIER ::= { dcmim2Control 1 }
+
+dcmim2ConfigSystem OBJECT IDENTIFIER ::= { dcmim2Config 1 }
+dcmim2ConfigBattery OBJECT IDENTIFIER ::= { dcmim2Config 2 }
+dcmim2ConfigLVD OBJECT IDENTIFIER ::= { dcmim2Config 3 }
+
+dcmim2StatusSystem OBJECT IDENTIFIER ::= { dcmim2Status 1 }
+dcmim2StatusRectifier OBJECT IDENTIFIER ::= { dcmim2Status 2 }
+dcmim2StatusBattery OBJECT IDENTIFIER ::= { dcmim2Status 3 }
+dcmim2StatusLVD OBJECT IDENTIFIER ::= { dcmim2Status 4 }
+dcmim2StatusAlarms OBJECT IDENTIFIER ::= { dcmim2Status 5 }
+
+external OBJECT IDENTIFIER ::= { environmentalMonitor 1 }
+integrated OBJECT IDENTIFIER ::= { environmentalMonitor 2 }
+envMgtSystem OBJECT IDENTIFIER ::= { environmentalMonitor 3 }
+
+emIdent OBJECT IDENTIFIER ::= { external 1 }
+emConfig OBJECT IDENTIFIER ::= { external 2 }
+emStatus OBJECT IDENTIFIER ::= { external 3 }
+
+iemIdent OBJECT IDENTIFIER ::= { integrated 1 }
+iemConfig OBJECT IDENTIFIER ::= { integrated 2 }
+iemStatus OBJECT IDENTIFIER ::= { integrated 3 }
+
+emsIdent OBJECT IDENTIFIER ::= { envMgtSystem 1 }
+
+emsOutputRelayControl OBJECT IDENTIFIER ::= { envMgtSystem 2 }
+emsOutletControl OBJECT IDENTIFIER ::= { envMgtSystem 3 }
+emsSensorControl OBJECT IDENTIFIER ::= { envMgtSystem 4 }
+emsAlarmDeviceControl OBJECT IDENTIFIER ::= { envMgtSystem 5 }
+
+emsConfig OBJECT IDENTIFIER ::= { envMgtSystem 6 }
+emsProbeConfig OBJECT IDENTIFIER ::= { envMgtSystem 7 }
+emsInputContactConfig OBJECT IDENTIFIER ::= { envMgtSystem 8 }
+emsOutputRelayConfig OBJECT IDENTIFIER ::= { envMgtSystem 9 }
+emsOutletConfig OBJECT IDENTIFIER ::= { envMgtSystem 10 }
+emsSensorConfig OBJECT IDENTIFIER ::= { envMgtSystem 11 }
+
+emsStatus OBJECT IDENTIFIER ::= { envMgtSystem 12 }
+emsProbeStatus OBJECT IDENTIFIER ::= { envMgtSystem 13 }
+emsInputContactStatus OBJECT IDENTIFIER ::= { envMgtSystem 14 }
+emsOutputRelayStatus OBJECT IDENTIFIER ::= { envMgtSystem 15 }
+emsOutletStatus OBJECT IDENTIFIER ::= { envMgtSystem 16 }
+emsAlarmDeviceStatus OBJECT IDENTIFIER ::= { envMgtSystem 17 }
+emsSensorStatus OBJECT IDENTIFIER ::= { envMgtSystem 18 }
+
+nlIdent OBJECT IDENTIFIER ::= { netlock 1 }
+nlStatus OBJECT IDENTIFIER ::= { netlock 2 }
+
+airFM OBJECT IDENTIFIER ::= { airConditioners 1 }
+airFMIdent OBJECT IDENTIFIER ::= { airFM 1 }
+airFMStatus OBJECT IDENTIFIER ::= { airFM 2 }
+airFMGroup OBJECT IDENTIFIER ::= { airFM 3 }
+
+airPA OBJECT IDENTIFIER ::= { airConditioners 2 }
+airPAIdent OBJECT IDENTIFIER ::= { airPA 1 }
+airPAStatus OBJECT IDENTIFIER ::= { airPA 2 }
+
+rARUIdent OBJECT IDENTIFIER ::= { rARU 1 }
+rARUConfig OBJECT IDENTIFIER ::= { rARU 2 }
+rARUStatus OBJECT IDENTIFIER ::= { rARU 3 }
+
+
+-- object types
+
+-- the products group
+-- the experimental group
+
+
+
+-- the apcmgmt group
+-- the mconfig group
+
+mconfigNumTrapReceivers OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of managers to send traps to."
+ ::= { mconfig 1 }
+
+mconfigTrapReceiverTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF MconfigTrapReceiverEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of managers to send traps to. The number of
+ entries is given by the value of mconfigNumTrapReceivers.
+ Maximum number of Trap Receivers is four."
+ ::= { mconfig 2 }
+
+mconfigTrapReceiverEntry OBJECT-TYPE
+ SYNTAX MconfigTrapReceiverEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The managers to send traps to."
+ INDEX { trapIndex}
+ ::= { mconfigTrapReceiverTable 1 }
+
+MconfigTrapReceiverEntry ::=
+ SEQUENCE {
+ trapIndex
+ INTEGER,
+ receiverAddr
+ IpAddress,
+ communityString
+ DisplayString,
+ severity
+ INTEGER,
+ acceptThisReceiver
+ INTEGER,
+ receiveTrapType
+ INTEGER
+ }
+
+trapIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to a trap receiver entry."
+ ::= { mconfigTrapReceiverEntry 1 }
+
+receiverAddr OBJECT-TYPE
+ SYNTAX IpAddress
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The IP address of the manager to send a trap to."
+ ::= { mconfigTrapReceiverEntry 2 }
+
+communityString OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The community name to use in the trap when
+ sent to the manager."
+ ::= { mconfigTrapReceiverEntry 3 }
+
+severity OBJECT-TYPE
+ SYNTAX INTEGER {
+ information(1),
+ warning(2),
+ severe(3)
+ }
+ ACCESS read-only
+ STATUS obsolete
+ DESCRIPTION
+ "The severity threshold of traps to send to the manager.
+ traps are labeled in severity as informational(1), warning(2),
+ severe(3). Only traps of equal or greater severity than
+ this value are sent to the manager."
+ ::= { mconfigTrapReceiverEntry 4 }
+
+acceptThisReceiver OBJECT-TYPE
+ SYNTAX INTEGER {
+ yes (1),
+ no (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "An entry will become active if yes, and will
+ be deleted if no."
+ ::= { mconfigTrapReceiverEntry 5 }
+
+
+receiveTrapType OBJECT-TYPE
+ SYNTAX INTEGER {
+ powernet (1),
+ ietf (2),
+ both (3)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The node in this entry will receive traps defined in APC
+ PowerNet MIB, if this OID is set to yes."
+ ::= { mconfigTrapReceiverEntry 6 }
+
+mconfigBOOTPEnabled OBJECT-TYPE
+ SYNTAX INTEGER {
+ yes (1),
+ no (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The value of yes(1) indicates the PowerNet Adapter is configured to
+ obtain its IP configuration parameters from a BOOTP server.
+
+ The value of no(2) indicates adapter will assume IP configuration parameters
+ values saved in adapter's eeprom, which was originally configured at local
+ console."
+ ::= { mconfig 3 }
+
+mconfigTFTPServerIP OBJECT-TYPE
+ SYNTAX IpAddress
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The IP address of TFTP server. If mconfigBOOTPEnabled is yes(1), then this IP address
+ is provided by BOOTP server and not allowed to be modified; otherwise, this IP address
+ can be modified.
+
+ Before using TFTP to load new code image, the image file should be placed in proper
+ directory of the specified TFTP server. This OID is only supported by AP9605, AP9205,
+ and AP9603 PowerNet SNMP Adapters."
+ ::= { mconfig 4 }
+
+newCodeAuthentViaTFTP OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown (1),
+ validNewAgentCodeImage (2),
+ sameAgentCodeImage (3),
+ invalidAgentCodeImage (4)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Once mcontrolRestartAgent is set to loadAndExecuteNewAgent (3), PowerNet adapter will
+ start to load the remote image file, for authentication only, instead of saving the code
+ into flash memory. Only if a validNewAgentCodeImage (1) is found will the agent reboot
+ the PowerNet adapter and invoke the loader to load and save new code into the flash memory.
+ Otherwise, the current agent code will continue to run.
+
+ This OID shows the result of the above authentication process.
+ validNewAgentCodeImage (1) means the code image on TFTP server
+ is a valid APC agent code and is different version from the current agent.
+ Once agent identifies this, loader will start to update flash memory with
+ the new agent code.
+
+ sameAgentCodeImage (2) means the code image on TFTP server is exactly the
+ same as the currently running agent. Currently running agent will not invoke
+ loader to load the same again.
+
+ invalidAgentCodeImage (3) means the code image on TFTP server is NOT a valid
+ APC agent code. Thus, current agent will not load it into the flash memory.
+
+ The value of this OID will be associated with TRAP codeImageAuthentDone.
+ This OID is only supported by AP9605, AP9205, and AP9603 PowerNet SNMP Adapters."
+
+ ::= { mconfig 5 }
+
+mconfigClockDate OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The current date in the mm/dd/yyyy format. Example: 01/01/2000."
+ ::= { mconfigClock 1 }
+
+mconfigClockTime OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The current time in the hh:mm:ss am/pm format. Example: 12:00:00 am."
+ ::= { mconfigClock 2 }
+
+mcontrolRestartAgent OBJECT-TYPE
+ SYNTAX INTEGER {
+ restartCurrentAgent (1),
+ continueCurrentAgent (2),
+ loadAndExecuteNewAgent (3),
+ restartWithoutAgent (4),
+ resetNetworkAndRestart (5),
+ resetNetworkLeaveModeAndRestart (6)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this OID to restartCurrentAgent (1) will restart the same SNMP
+ agent code currently saved in flash memory. Setting this OID to
+ loadAndExecuteNewAgent (3) will enable adapter to load a new agent code
+ into the flash memory and start to execute this new agent code.
+ Bootp/tftp is the default protocol. loadAndExecuteNewAgent is only
+ supported by AP9605, AP9205, and AP9603 PowerNet SNMP Adapters. Setting
+ this OID to restartWithoutAgent (4) will restart the system and not
+ start the agent. The subsequent time the system restarts the agent will
+ also automatically restart. Setting this OID to
+ resetNetworkAndRestart (5) will set the Boot Mode, IP Address, Subnet
+ Mask, and Default Gateway to defaults, expire any existing DHCP lease
+ and then restart the system. Setting this OID to
+ resetNetworkLeaveModeAndRestart (6) will leave the Boot Mode at the
+ current setting, set the IP Address, Subnet Mask, and Default Gateway to
+ defaults, expire any existing DHCP lease and then restart the system."
+
+ ::= { mcontrol 1 }
+
+-- The mtrapargs group
+-- These OIDs allows APC traps to be sent with additional arguments
+-- which may not be defined in the APC MIB.
+
+mtrapargsInteger OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID allows APC traps to be sent with an integer argument
+ that my not be defined in the APC MIB.
+
+ A get of this OID will return 0."
+ ::= { mtrapargs 1 }
+
+mtrapargsIpAddress OBJECT-TYPE
+ SYNTAX IpAddress
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID allows APC traps to be sent with an IP address argument
+ that my not be defined in the APC MIB.
+
+ A get of this OID will return 0.0.0.0."
+ ::= { mtrapargs 2 }
+
+mtrapargsString OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID allows APC traps to be sent with an octet string argument
+ that my not be defined in the APC MIB.
+
+ A get of this OID will return a NULL string."
+ ::= { mtrapargs 3 }
+
+mtrapargsGauge OBJECT-TYPE
+ SYNTAX Gauge
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID allows APC traps to be sent with a Gauge argument
+ that my not be defined in the APC MIB.
+
+ A get of this OID will return 0."
+ ::= { mtrapargs 4 }
+
+mtrapargsTimeTicks OBJECT-TYPE
+ SYNTAX TimeTicks
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID allows APC traps to be sent with a TimeTicks argument
+ that my not be defined in the APC MIB.
+
+ A get of this OID will return 0."
+ ::= { mtrapargs 5 }
+
+mtrapargsInteger02 OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID allows APC traps to be sent with an integer argument
+ that my not be defined in the APC MIB.
+
+ A get of this OID will return 0."
+ ::= { mtrapargs 6 }
+
+mtrapargsInteger03 OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID allows APC traps to be sent with an integer argument
+ that my not be defined in the APC MIB.
+
+ A get of this OID will return 0."
+ ::= { mtrapargs 7 }
+
+mtrapargsIpAddress02 OBJECT-TYPE
+ SYNTAX IpAddress
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID allows APC traps to be sent with an IP address argument
+ that my not be defined in the APC MIB.
+
+ A get of this OID will return 0.0.0.0."
+ ::= { mtrapargs 8 }
+
+mtrapargsIpAddress03 OBJECT-TYPE
+ SYNTAX IpAddress
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID allows APC traps to be sent with an IP address argument
+ that my not be defined in the APC MIB.
+
+ A get of this OID will return 0.0.0.0."
+ ::= { mtrapargs 9 }
+
+mtrapargsString02 OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID allows APC traps to be sent with an octet string argument
+ that my not be defined in the APC MIB.
+
+ A get of this OID will return a NULL string."
+ ::= { mtrapargs 10 }
+
+mtrapargsString03 OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID allows APC traps to be sent with an octet string argument
+ that my not be defined in the APC MIB.
+
+ A get of this OID will return a NULL string."
+ ::= { mtrapargs 11 }
+
+mtrapargsGauge02 OBJECT-TYPE
+ SYNTAX Gauge
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID allows APC traps to be sent with a Gauge argument
+ that my not be defined in the APC MIB.
+
+ A get of this OID will return 0."
+ ::= { mtrapargs 12 }
+
+mtrapargsGauge03 OBJECT-TYPE
+ SYNTAX Gauge
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID allows APC traps to be sent with a Gauge argument
+ that my not be defined in the APC MIB.
+
+ A get of this OID will return 0."
+ ::= { mtrapargs 13 }
+
+mtrapargsTimeTicks02 OBJECT-TYPE
+ SYNTAX TimeTicks
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID allows APC traps to be sent with a TimeTicks argument
+ that my not be defined in the APC MIB.
+
+ A get of this OID will return 0."
+ ::= { mtrapargs 14 }
+
+mtrapargsTimeTicks03 OBJECT-TYPE
+ SYNTAX TimeTicks
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID allows APC traps to be sent with a TimeTicks argument
+ that my not be defined in the APC MIB.
+
+ A get of this OID will return 0."
+ ::= { mtrapargs 15 }
+
+-- the mfiletransfer group
+-- the mfiletransferStatus group
+mfiletransferStatusLastTransferResult OBJECT-TYPE
+ SYNTAX INTEGER {
+ lastFileTransferResultSuccessful (1),
+ lastFileTransferResultNotAvailable (2),
+ lastFileTransferResultFailureUnknown (3),
+ lastFileTransferResultFailureServerInaccessible (4),
+ lastFileTransferResultFailureServerAccessDenied (5),
+ lastFileTransferResultFailureFileNotFound (6),
+ lastFileTransferResultFailureFileTypeUnknown (7),
+ lastFileTransferResultFailureFileCorrupted (8)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Once mfiletransferControlInitiateFileTransfer is set to a value other than doNotInitiateFileTransfer
+ a file transfer of mfiletransferConfigSettingsFilename will be attempted from either a TFTP or FTP
+ server.
+
+ This OID shows the last attempted file transfer result.
+ lastFileTransferResultSuccessful (1) means the file transfer was successful.
+ lastFileTransferResultNotAvailable (2) means that there have been no previous file transfers.
+ lastFileTransferResultFailureUnknown (3) means that the last file transfer failed for an unknown reason.
+ lastFileTransferResultFailureServerInaccessible (4) means that the TFTP or FTP server could not be found on the network.
+ lastFileTransferResultFailureServerAccessDenied (5) means that the TFTP or FTP server denied access.
+ lastFileTransferResultFailureFileNotFound (6) means that the file could not be located.
+ lastFileTransferResultFailureFileTypeUnknown (7) means the file was examined, but the contents were unknown.
+ lastFileTransferResultFailureFileCorrupt (8) means the transferred file was corrupt."
+
+ ::= { mfiletransferStatus 1 }
+
+-- the mfiletransferConfig group
+-- the mfiletransferConfigSettings group
+
+mfiletransferConfigSettingsFilename OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The path and name of the file to transfer using the mfiletransferControlInitiateFileTransfer OID.
+ If the file to transfer exists in the default server directory then the path may be omitted."
+
+ ::= { mfiletransferConfigSettings 1 }
+
+-- the mfiletransferConfigTFTP group
+
+mfiletransferConfigTFTPServerAddress OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The IP Address in dotted decimal notation of the TFTP server involved in the file transfer."
+
+ ::= { mfiletransferConfigTFTP 1 }
+
+-- the mfiletransferConfigFTP group
+
+mfiletransferConfigFTPServerAddress OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The IP Address in dotted decimal notation of the FTP server involved in the file transfer."
+
+ ::= { mfiletransferConfigFTP 1 }
+
+mfiletransferConfigFTPServerUser OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The user identification for logging into the FTP server specified with mfiletransferConfigFTPServerAddress."
+
+ ::= { mfiletransferConfigFTP 2 }
+
+mfiletransferConfigFTPServerPassword OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The password for logging into the FTP server specified with mfiletransferConfigFTPServerAddress."
+
+ ::= { mfiletransferConfigFTP 3 }
+
+-- the mfiletransferControl group
+
+mfiletransferControlInitiateFileTransfer OBJECT-TYPE
+ SYNTAX INTEGER {
+ doNotInitiateFileTransfer (1),
+ initiateFileTransferDownloadViaTFTP (2),
+ initiateFileTransferDownloadViaFTP (3)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this OID to doNotInitiateFileTransfer (1) will do nothing.
+
+ Setting this OID to initiateFileTransferDownloadViaTFTP (2) will attempt to transfer the file named in
+ mfiletransferConfigSettingsFilename from the TFTP Server identified in mfiletransferConfigTFTPAddress.
+
+ Setting this OID to initiateFileTransferDownloadViaFTP (3) will attempt to transfer the file named in
+ mfiletransferConfigSettingsFilename from the FTP Server identified in mfiletransferConfigFTPAddress
+ using mfiletransferConfigFTPUser and mfiletransferConfigFTPPassword for the FTP Server login process."
+
+ ::= { mfiletransferControl 1 }
+
+-- the battManIdent group
+
+battManIdentProductName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the battery manager."
+ ::= { battManIdent 1 }
+
+battManIdentHardwareRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The battery manager network interface hardware revision.
+ This value is set at the factory."
+ ::= { battManIdent 2 }
+
+battManIdentFirmwareRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The battery manager network interface firmware revision.
+ This value is set at the factory and can change with firmware update."
+ ::= { battManIdent 3 }
+
+battManIdentDateOfManufacture OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The date the battery manager was manufactured in mm/dd/yyyy format.
+ This value is set at the factory."
+ ::= { battManIdent 4 }
+
+battManIdentModelNumber OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The battery manager model number character string.
+ This value is set at the factory."
+ ::= { battManIdent 5 }
+
+battManIdentSerialNumber OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The battery manager serial number character string.
+ This value is set at the factory."
+ ::= { battManIdent 6 }
+
+-- the battManCalib group
+-- system calibration
+
+battManOhmicValueCorrectionFactor OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The system ohmic value correction factor in percent."
+ ::= { battManSystemCalib 1 }
+
+-- unit calibration
+
+battManUnitCalibTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of entries in the battManUnitCalibTable."
+ ::= { battManUnitCalib 1 }
+
+battManUnitCalibTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF BattManUnitCalibTableEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for getting calibration information from each unit in the system."
+ ::= { battManUnitCalib 2 }
+
+battManUnitCalibTableEntry OBJECT-TYPE
+ SYNTAX BattManUnitCalibTableEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The unit to get data from."
+ INDEX { battManUnitCalibIndex }
+ ::= { battManUnitCalibTable 1 }
+
+BattManUnitCalibTableEntry ::=
+ SEQUENCE {
+ battManUnitCalibIndex INTEGER,
+ battManUnitSerialNumber DisplayString,
+ battManBatteryVoltageZeroCalib INTEGER,
+ battManBatteryVoltageSpanCalib INTEGER
+ }
+
+battManUnitCalibIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Index of unit calibration entries in the table."
+ ::= { battManUnitCalibTableEntry 1 }
+
+battManUnitSerialNumber OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The serial number of the unit."
+ ::= { battManUnitCalibTableEntry 2 }
+
+battManBatteryVoltageZeroCalib OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The unit battery voltage zero calibration in millivolts."
+ ::= { battManUnitCalibTableEntry 3 }
+
+battManBatteryVoltageSpanCalib OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The unit battery voltage span calibration in percent."
+ ::= { battManUnitCalibTableEntry 4 }
+
+-- string calibration table
+
+battManStringCalibTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of entries in the battManStringCalibTable."
+ ::= { battManStringCalib 1 }
+
+battManStringCalibTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF BattManStringCalibTableEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for getting calibration information from each string in the system."
+ ::= { battManStringCalib 2 }
+
+battManStringCalibTableEntry OBJECT-TYPE
+ SYNTAX BattManStringCalibTableEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The string to get data from."
+ INDEX { battManStringCalibIndex }
+ ::= { battManStringCalibTable 1 }
+
+BattManStringCalibTableEntry ::=
+ SEQUENCE {
+ battManStringCalibIndex INTEGER,
+ battManDCCurrentZeroCalib INTEGER,
+ battManACCurrentZeroCalib INTEGER,
+ battManProbeRange INTEGER
+ }
+
+battManStringCalibIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Index of string calibration entries in the table."
+ ::= { battManStringCalibTableEntry 1 }
+
+battManDCCurrentZeroCalib OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The string DC current zero calibration in tenths of amps."
+ ::= { battManStringCalibTableEntry 2 }
+
+battManACCurrentZeroCalib OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The string AC current zero calibration in tenths of amps."
+ ::= { battManStringCalibTableEntry 3 }
+
+battManProbeRange OBJECT-TYPE
+ SYNTAX INTEGER {
+ amps1000 (1),
+ amps500 (2),
+ amps100 (3)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The string probe range in amps."
+ ::= { battManStringCalibTableEntry 4 }
+
+--string 1 battery calibration table
+
+battManString1BatteryCalibTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of entries in the battManString1BatteryCalibTable."
+ ::= { battManBatteryCalib 1 }
+
+battManString1BatteryCalibTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF BattManString1BatteryCalibTableEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for getting calibration information from each battery in String 1."
+ ::= { battManBatteryCalib 2 }
+
+battManString1BatteryCalibTableEntry OBJECT-TYPE
+ SYNTAX BattManString1BatteryCalibTableEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The string to get data from."
+ INDEX { battManString1BatteryCalibIndex }
+ ::= { battManString1BatteryCalibTable 1 }
+
+BattManString1BatteryCalibTableEntry ::=
+ SEQUENCE {
+ battManString1BatteryCalibIndex INTEGER,
+ battManString1BatteryInterTierOhmicValue INTEGER
+ }
+
+battManString1BatteryCalibIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Index of battery calibration entries in the table."
+ ::= { battManString1BatteryCalibTableEntry 1 }
+
+battManString1BatteryInterTierOhmicValue OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The battery inter-tier ohmic value in ohms. This corresponds to the ohmic
+ value for the positive terminal of the battery."
+ ::= { battManString1BatteryCalibTableEntry 2 }
+
+--string 2 battery calibration table
+
+battManString2BatteryCalibTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of entries in the battManString2BatteryCalibTable."
+ ::= { battManBatteryCalib 3 }
+
+battManString2BatteryCalibTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF BattManString2BatteryCalibTableEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for getting calibration information from each battery in String 2."
+ ::= { battManBatteryCalib 4 }
+
+battManString2BatteryCalibTableEntry OBJECT-TYPE
+ SYNTAX BattManString2BatteryCalibTableEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The string to get data from."
+ INDEX { battManString2BatteryCalibIndex }
+ ::= { battManString2BatteryCalibTable 1 }
+
+BattManString2BatteryCalibTableEntry ::=
+ SEQUENCE {
+ battManString2BatteryCalibIndex INTEGER,
+ battManString2BatteryInterTierOhmicValue INTEGER
+ }
+
+battManString2BatteryCalibIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Index of battery calibration entries in the table."
+ ::= { battManString2BatteryCalibTableEntry 1 }
+
+battManString2BatteryInterTierOhmicValue OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The battery inter-tier ohmic value in ohms."
+ ::= { battManString2BatteryCalibTableEntry 2 }
+
+-- the battManConfig group
+
+battManConfigApplication OBJECT-TYPE
+ SYNTAX INTEGER {
+ silcon (1),
+ other (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The type of application the battery manager is installed on:
+ Silcon(1) Silcon UPS or
+ Other(2) Other UPS/Charger."
+ ::= { battManConfig 1 }
+
+battManConfigBatteryChemistry OBJECT-TYPE
+ SYNTAX INTEGER {
+ leadAcid (1),
+ nickel-Cadmium (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The battery chemistry of the monitored batteries:
+ LeadAcid(1) Lead Acid or
+ Nickel-Cadmium(2) Nickel-Cadmium."
+ ::= { battManConfig 2 }
+
+battManConfigBatteryAHCapacity OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The amp hour capacity of the monitored batteries 5-2000 AH."
+ ::= { battManConfig 3 }
+
+battManConfigNumberofStrings OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The number of strings in the battery manager system (1 - 2 Silcon)/(1 Other)."
+ ::= { battManConfig 4 }
+
+battManConfigBatteriesperString OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The number of batteries per string."
+ ::= { battManConfig 5 }
+
+battManConfigCellsperBattery OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The number of cells per battery (1 - 6 for lead-acid, 1 - 2 for NiCd."
+ ::= { battManConfig 6 }
+
+battManConfigMinCellVoltage OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The minimum battery cell voltage alarm limit in millivolts DC."
+ ::= { battManConfig 7 }
+
+battManConfigMaxCellVoltage OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum battery cell voltage alarm limit in millivolts DC."
+ ::= { battManConfig 8 }
+
+battManConfigMaxPilotTempF OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum pilot battery temperature alarm limit in tenths of degrees Fahrenheit."
+ ::= { battManConfig 9 }
+
+battManConfigMaxPilotTempC OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum pilot battery temperature alarm limit in tenths of degrees Celcius."
+ ::= { battManConfig 10 }
+
+battManConfigMaxAmbientTempF OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum ambient temperature alarm limit in tenths of degrees Fahrenheit."
+ ::= { battManConfig 11 }
+
+battManConfigMaxAmbientTempC OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum ambient temperature alarm limit in tenths of degrees Celcius."
+ ::= { battManConfig 12 }
+
+battManConfigMinAmbientTempF OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The Minimum Ambient Temperature alarm limit in tenths of degrees Fahrenheit."
+ ::= { battManConfig 13 }
+
+battManConfigMinAmbientTempC OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The Minimum Ambient Temperature alarm limit in tenths of degrees Celcius."
+ ::= { battManConfig 14 }
+
+battManConfigMaxRippleCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum ripple current alarm limit for the monitored battery
+ strings in percent of AH capacity."
+ ::= { battManConfig 15 }
+
+battManConfigMaxCurrentAcceptanceDeviation OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum current acceptance deviation alarm limit in percentage."
+ ::= { battManConfig 16 }
+
+battManConfigMonitorWireLength OBJECT-TYPE
+ SYNTAX INTEGER {
+ fiftyFeetOrLess (1),
+ moreThanFiftyFeet (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The monitor wire length:
+ fiftyFeetOrLess (1) indicates that the wire length is less than or equal to 50 feet.
+ moreThanFiftyFeet (2) indicates that the wire length is greater than 50 feet."
+ ::= { battManConfig 17 }
+
+battManConfigDischargeVoltageAlarmLevel OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The discharge voltage alarm level in percent."
+ ::= { battManConfig 18 }
+
+battManConfigAutoAnnunciatorReset OBJECT-TYPE
+ SYNTAX INTEGER {
+ disabled (1),
+ enabled (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The annunciator output signal reset method:
+ disabled(1) means the annunciator signal output will be reset when the reset button is pressed.
+ enabled(2) means the annunciator will stop signalling when all alarm conditions clear."
+ ::= { battManConfig 19 }
+
+-- the battManAlarm group
+
+battManAlarmManagementController OBJECT-TYPE
+ SYNTAX INTEGER {
+ normal (1),
+ alarm (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The Management Controller Alarm is :
+ normal(1) no alarm condtions identified
+ alarm(2) an alarm condition exits."
+ ::= { battManAlarm 1 }
+
+battManAlarmBatteries OBJECT-TYPE
+ SYNTAX INTEGER {
+ normal (1),
+ alarm (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The Batteries Alarm is :
+ normal(1) no alarm condtions identified
+ alarm(2) an alarm condition exits."
+ ::= { battManAlarm 2 }
+
+battManAlarmCharger OBJECT-TYPE
+ SYNTAX INTEGER {
+ normal (1),
+ alarm (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The Charger Alarm is :
+ normal(1) no alarm condtions identified
+ alarm(2) an alarm condition exits."
+ ::= { battManAlarm 3 }
+
+battManAlarmEnvironment OBJECT-TYPE
+ SYNTAX INTEGER {
+ normal (1),
+ alarm (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The Environment Alarm is :
+ normal(1) no alarm condtions identified
+ alarm(2) an alarm condition exits."
+ ::= { battManAlarm 4 }
+
+-- the battManSystemStatus group
+
+-- These are system wide parameters
+
+battManSystemAmbientTempC OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The system ambient temperture in tenths of degrees Celcius."
+ ::= { battManSystemStatus 1 }
+
+battManSystemAmbientTempF OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The system ambient temperture in tenths of degrees Fahrenheit."
+ ::= { battManSystemStatus 2 }
+
+battManSystemPilotTempC OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The system pilot temperature in tenths of degrees Celcius."
+ ::= { battManSystemStatus 3 }
+
+battManSystemPilotTempF OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The system pilot temperature in tenths of degrees Fahrenheit."
+ ::= { battManSystemStatus 4 }
+
+battManSystemAmbientHighTempAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ normal (1),
+ alarm (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "When set to alarm(2), indicates that the system has a high temperature alarm."
+ ::= { battManSystemStatus 5 }
+
+battManSystemAmbientLowTempAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ normal (1),
+ alarm (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "When set to alarm(2), indicates that the system has a low temperature alarm."
+ ::= { battManSystemStatus 6 }
+
+battManSystemPilotBatteryHighTempAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ normal (1),
+ alarm (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "When set to alarm(2), indicates that the system has a pilot battery high temperature alarm."
+ ::= { battManSystemStatus 7 }
+
+battManSystemPilotProbeDisconnected OBJECT-TYPE
+ SYNTAX INTEGER {
+ normal (1),
+ alarm (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "When set to alarm(2), indicates that the system pilot probe is disconnected."
+ ::= { battManSystemStatus 8 }
+
+battManSystemAmbientProbeDisconnected OBJECT-TYPE
+ SYNTAX INTEGER {
+ normal (1),
+ alarm (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "When set to alarm(2), indicates that the system ambient probe is disconnected."
+ ::= { battManSystemStatus 9 }
+
+-- This is a table of input contact parameters
+
+battManInputContactTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of entries in the battManContactTable."
+ ::= { battManInputContactStatus 1 }
+
+battManInputContactTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF BattManInputContactTableEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for getting information from each contact
+ in the system. "
+ ::= { battManInputContactStatus 2 }
+
+battManInputContactTableEntry OBJECT-TYPE
+ SYNTAX BattManInputContactTableEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The contact to get data from."
+ INDEX { battManInputContactIndex }
+ ::= { battManInputContactTable 1 }
+
+BattManInputContactTableEntry ::=
+ SEQUENCE {
+ battManInputContactIndex INTEGER,
+ battManInputContactName DisplayString,
+ battManInputContactAlarmState INTEGER,
+ battManInputContactState INTEGER,
+ battManInputContactNormalState INTEGER,
+ battManInputContactAlarmDelay INTEGER
+ }
+
+battManInputContactIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Index of contact entries in the table."
+ ::= { battManInputContactTableEntry 1 }
+
+battManInputContactName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the input contact."
+ ::= { battManInputContactTableEntry 2 }
+
+battManInputContactAlarmState OBJECT-TYPE
+ SYNTAX INTEGER {
+ normal (1),
+ alarm (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "When set to alarm(2), indicates that the alarm condition is active for this contact."
+ ::= { battManInputContactTableEntry 3 }
+
+battManInputContactState OBJECT-TYPE
+ SYNTAX INTEGER {
+ open (1),
+ closed (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "When set to open(1), the input contact is in the open state.
+ When set to closed(2), the input contact is in the closed state."
+ ::= { battManInputContactTableEntry 4 }
+
+battManInputContactNormalState OBJECT-TYPE
+ SYNTAX INTEGER {
+ open (1),
+ closed (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "When set to open(1), the input contact is normally open.
+ When set to closed(2), the input contact is normally closed."
+ ::= { battManInputContactTableEntry 5 }
+
+battManInputContactAlarmDelay OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The alarm delay time in seconds."
+ ::= { battManInputContactTableEntry 6 }
+
+-- This is a table of battery string parameters
+
+battManStringTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of entries in the battManStringTable."
+ ::= { battManStringStatus 1 }
+
+battManStringTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF BattManStringTableEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for getting information from each string
+ in the system. "
+ ::= { battManStringStatus 2 }
+
+battManStringTableEntry OBJECT-TYPE
+ SYNTAX BattManStringTableEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The string to get data from."
+ INDEX { battManStringIndex }
+ ::= { battManStringTable 1 }
+
+BattManStringTableEntry ::=
+ SEQUENCE {
+ battManStringIndex INTEGER,
+ battManStringCurrent INTEGER,
+ battManStringRippleCurrent INTEGER,
+ battManStringChargerHighVoltageAlarm INTEGER,
+ battManStringChargerLowVoltageAlarm INTEGER,
+ battManStringCurrentProbeDisconnected INTEGER,
+ battManStringOnBattery INTEGER
+ }
+
+battManStringIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Index of string entries in the table."
+ ::= { battManStringTableEntry 1 }
+
+battManStringCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The string current in tenths of Amps."
+ ::= { battManStringTableEntry 2 }
+
+battManStringRippleCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The string ripple current in tenths of Amps."
+ ::= { battManStringTableEntry 3 }
+
+battManStringChargerHighVoltageAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ normal (1),
+ alarm (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "When set to alarm(2), indicates that the string charger has a high voltage alarm."
+ ::= { battManStringTableEntry 4 }
+
+battManStringChargerLowVoltageAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ normal (1),
+ alarm (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "When set to alarm(2), indicates that the string charger has a low voltage alarm."
+ ::= { battManStringTableEntry 5 }
+
+battManStringCurrentProbeDisconnected OBJECT-TYPE
+ SYNTAX INTEGER {
+ normal (1),
+ alarm (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "When set to alarm(2), indicates that the string charger probe is disconnected."
+ ::= { battManStringTableEntry 6 }
+
+battManStringOnBattery OBJECT-TYPE
+ SYNTAX INTEGER {
+ normal (1),
+ alarm (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "When set to alarm(2), indicates that the string is in the on-battery state."
+ ::= { battManStringTableEntry 7 }
+
+-- the battManString1BatteryStatus group
+
+battManString1BatteryTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of entries in the battManString1BatteryStatusTable."
+ ::= { battManBatteryStatus 1 }
+
+battManString1BatteryTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF BattManString1BatteryTableEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for getting information from each string
+ in the system. "
+ ::= { battManBatteryStatus 2 }
+
+battManString1BatteryTableEntry OBJECT-TYPE
+ SYNTAX BattManString1BatteryTableEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The string to get data from."
+ INDEX { battManString1BatteryIndex }
+ ::= { battManString1BatteryTable 1 }
+
+BattManString1BatteryTableEntry ::=
+ SEQUENCE {
+ battManString1BatteryIndex INTEGER,
+ battManString1BatteryVoltage INTEGER,
+ battManString1BatteryLowestVoltage INTEGER,
+ battManString1BatteryCellShorted INTEGER,
+ battManString1BatteryOpenFuseOrConnection INTEGER,
+ battManString1BatteryLowCapacity INTEGER,
+ battManString1BatteryHighOhmicValue INTEGER,
+ battManString1BatteryThermalRunaway INTEGER,
+ battManString1BatteryDryout INTEGER
+ }
+
+battManString1BatteryIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Index of string entries in the table."
+ ::= { battManString1BatteryTableEntry 1 }
+
+battManString1BatteryVoltage OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The battery voltage in milli VDC."
+ ::= { battManString1BatteryTableEntry 2 }
+
+battManString1BatteryLowestVoltage OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The lowest battery discharge voltage during the last power event in milli VDC."
+ ::= { battManString1BatteryTableEntry 3 }
+
+battManString1BatteryCellShorted OBJECT-TYPE
+ SYNTAX INTEGER {
+ normal (1),
+ alarm (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "When set to alarm(2), indicates that a battery cell is shorted."
+ ::= { battManString1BatteryTableEntry 4 }
+
+battManString1BatteryOpenFuseOrConnection OBJECT-TYPE
+ SYNTAX INTEGER {
+ normal (1),
+ alarm (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "When set to alarm(2), indicates that a fuse or connection is open."
+ ::= { battManString1BatteryTableEntry 5 }
+
+battManString1BatteryLowCapacity OBJECT-TYPE
+ SYNTAX INTEGER {
+ normal (1),
+ alarm (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "When set to alarm(2), indicates a battery has low capacity."
+ ::= { battManString1BatteryTableEntry 6 }
+
+battManString1BatteryHighOhmicValue OBJECT-TYPE
+ SYNTAX INTEGER {
+ normal (1),
+ alarm (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "When set to alarm(2), indicates a battery has a high ohmic value."
+ ::= { battManString1BatteryTableEntry 7 }
+
+battManString1BatteryThermalRunaway OBJECT-TYPE
+ SYNTAX INTEGER {
+ normal (1),
+ alarm (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "When set to alarm(2), indicates a battery has a thermal runaway condition."
+ ::= { battManString1BatteryTableEntry 8 }
+
+battManString1BatteryDryout OBJECT-TYPE
+ SYNTAX INTEGER {
+ normal (1),
+ alarm (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "When set to alarm(2), indicates a battery has a dryout condition."
+ ::= { battManString1BatteryTableEntry 9 }
+
+-- the battManString2BatteryStatus group
+
+battManString2BatteryTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of entries in the battManString2BatteryStatusTable."
+ ::= { battManBatteryStatus 3 }
+
+battManString2BatteryTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF BattManString2BatteryTableEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for getting information from each string
+ in the system. "
+ ::= { battManBatteryStatus 4 }
+
+battManString2BatteryTableEntry OBJECT-TYPE
+ SYNTAX BattManString2BatteryTableEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The string to get data from."
+ INDEX { battManString2BatteryIndex }
+ ::= { battManString2BatteryTable 1 }
+
+BattManString2BatteryTableEntry ::=
+ SEQUENCE {
+ battManString2BatteryIndex INTEGER,
+ battManString2BatteryVoltage INTEGER,
+ battManString2BatteryLowestVoltage INTEGER,
+ battManString2BatteryCellShorted INTEGER,
+ battManString2BatteryOpenFuseOrConnection INTEGER,
+ battManString2BatteryLowCapacity INTEGER,
+ battManString2BatteryHighOhmicValue INTEGER,
+ battManString2BatteryThermalRunaway INTEGER,
+ battManString2BatteryDryout INTEGER
+ }
+
+battManString2BatteryIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Index of string entries in the table."
+ ::= { battManString2BatteryTableEntry 1 }
+
+battManString2BatteryVoltage OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The battery voltage in milli VDC."
+ ::= { battManString2BatteryTableEntry 2 }
+
+battManString2BatteryLowestVoltage OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The lowest battery discharge voltage during the last power event in milli VDC."
+ ::= { battManString2BatteryTableEntry 3 }
+
+battManString2BatteryCellShorted OBJECT-TYPE
+ SYNTAX INTEGER {
+ normal (1),
+ alarm (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "When set to alarm(2), indicates that a battery cell is shorted."
+ ::= { battManString2BatteryTableEntry 4 }
+
+battManString2BatteryOpenFuseOrConnection OBJECT-TYPE
+ SYNTAX INTEGER {
+ normal (1),
+ alarm (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "When set to alarm(2), indicates that a fuse or connection is open."
+ ::= { battManString2BatteryTableEntry 5 }
+
+battManString2BatteryLowCapacity OBJECT-TYPE
+ SYNTAX INTEGER {
+ normal (1),
+ alarm (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "When set to alarm(2), indicates a battery has low capacity."
+ ::= { battManString2BatteryTableEntry 6 }
+
+battManString2BatteryHighOhmicValue OBJECT-TYPE
+ SYNTAX INTEGER {
+ normal (1),
+ alarm (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "When set to alarm(2), indicates a battery has a high ohmic value."
+ ::= { battManString2BatteryTableEntry 7 }
+
+battManString2BatteryThermalRunaway OBJECT-TYPE
+ SYNTAX INTEGER {
+ normal (1),
+ alarm (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "When set to alarm(2), indicates a battery has a thermal runaway condition."
+ ::= { battManString2BatteryTableEntry 8 }
+
+battManString2BatteryDryout OBJECT-TYPE
+ SYNTAX INTEGER {
+ normal (1),
+ alarm (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "When set to alarm(2), indicates a battery has a dryout condition."
+ ::= { battManString2BatteryTableEntry 9 }
+
+-- battery manager control group
+battManRemoteAnnunciatorReset OBJECT-TYPE
+ SYNTAX INTEGER {
+ noOperation (1),
+ reset (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this OID to reset(2) will reset the user interface annunciator.
+ Getting this OID will do nothing and return the noOperation(1) value."
+ ::= { battManControl 1 }
+
+battManResetChargeCurrentDeviationBenchmark OBJECT-TYPE
+ SYNTAX INTEGER {
+ noOperation (1),
+ reset (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this OID to reset(2) will reset the charge current deviation benchmark.
+ Getting this OID will do nothing and return the noOperation(1) value."
+ ::= { battManControl 2 }
+
+battManResetLowestDischargeVoltages OBJECT-TYPE
+ SYNTAX INTEGER {
+ noOperation (1),
+ reset (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this OID to reset(2) will reset the lowest discharge voltages.
+ Getting this OID will do nothing and return the noOperation(1) value."
+ ::= { battManControl 3 }
+
+-- the battManTestResults group
+
+--string 1 test results table
+
+battManString1OhmicValueLastDischargeInfo OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Informational text showing the date/time, load, and pilot temperature for the string
+ during the last discharge when ohmic values were recorded."
+ ::= { battManTestResults 1 }
+
+battManString1OhmicValueTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of entries in the battManString1OhmicValueTable."
+ ::= { battManTestResults 2 }
+
+battManString1OhmicValueTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF BattManString1OhmicValueTableEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for getting ohmic value information from each battery in String 1."
+ ::= { battManTestResults 3 }
+
+battManString1OhmicValueTableEntry OBJECT-TYPE
+ SYNTAX BattManString1OhmicValueTableEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The string to get data from."
+ INDEX { battManString1OhmicValueIndex }
+ ::= { battManString1OhmicValueTable 1 }
+
+BattManString1OhmicValueTableEntry ::=
+ SEQUENCE {
+ battManString1OhmicValueIndex INTEGER,
+ battManString1OhmicValueData INTEGER
+ }
+
+battManString1OhmicValueIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The battery number."
+ ::= { battManString1OhmicValueTableEntry 1 }
+
+battManString1OhmicValueData OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The battery inter-tier ohmic value in ohms.
+ Note: Negative values are invalid and may indicate faulty calibration
+ of ohmic value correction factors."
+ ::= { battManString1OhmicValueTableEntry 2 }
+
+battManString1ResponseTestChangeTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of entries in the battManString1ResponseTestChangeTable."
+ ::= { battManTestResults 4 }
+
+battManString1ResponseTestChangeTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF BattManString1ResponseTestChangeTableEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for getting response test change information from each battery in String 1."
+ ::= { battManTestResults 5 }
+
+battManString1ResponseTestChangeTableEntry OBJECT-TYPE
+ SYNTAX BattManString1ResponseTestChangeTableEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The string to get data from."
+ INDEX { battManString1ResponseTestChangeIndex }
+ ::= { battManString1ResponseTestChangeTable 1 }
+
+BattManString1ResponseTestChangeTableEntry ::=
+ SEQUENCE {
+ battManString1ResponseTestChangeIndex INTEGER,
+ battManString1ResponseTestChangeData INTEGER
+ }
+
+battManString1ResponseTestChangeIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Index of the entries in the table."
+ ::= { battManString1ResponseTestChangeTableEntry 1 }
+
+battManString1ResponseTestChangeData OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The battery response test change in percent."
+ ::= { battManString1ResponseTestChangeTableEntry 2 }
+
+battManString2OhmicValueLastDischargeInfo OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Informational text showing the date/time, load, and pilot temperature for the string
+ during the last discharge when ohmic values were recorded."
+ ::= { battManTestResults 6 }
+
+battManString2OhmicValueTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of entries in the battManString2OhmicValueTable."
+ ::= { battManTestResults 7 }
+
+battManString2OhmicValueTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF BattManString2OhmicValueTableEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for getting ohmic value information from each battery in String 1."
+ ::= { battManTestResults 8 }
+
+battManString2OhmicValueTableEntry OBJECT-TYPE
+ SYNTAX BattManString2OhmicValueTableEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The string to get data from."
+ INDEX { battManString2OhmicValueIndex }
+ ::= { battManString2OhmicValueTable 1 }
+
+BattManString2OhmicValueTableEntry ::=
+ SEQUENCE {
+ battManString2OhmicValueIndex INTEGER,
+ battManString2OhmicValueData INTEGER
+ }
+
+battManString2OhmicValueIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Index of battery calibration entries in the table."
+ ::= { battManString2OhmicValueTableEntry 1 }
+
+battManString2OhmicValueData OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The battery inter-tier ohmic value in ohms.
+ Note: Negative values are invalid and may indicate faulty calibration
+ of ohmic value correction factors."
+ ::= { battManString2OhmicValueTableEntry 2 }
+
+battManString2ResponseTestChangeTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of entries in the battManString2ResponseTestChangeTable."
+ ::= { battManTestResults 9 }
+
+battManString2ResponseTestChangeTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF BattManString2ResponseTestChangeTableEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for getting response test change information from each battery in String 1."
+ ::= { battManTestResults 10 }
+
+battManString2ResponseTestChangeTableEntry OBJECT-TYPE
+ SYNTAX BattManString2ResponseTestChangeTableEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The string to get data from."
+ INDEX { battManString2ResponseTestChangeIndex }
+ ::= { battManString2ResponseTestChangeTable 1 }
+
+BattManString2ResponseTestChangeTableEntry ::=
+ SEQUENCE {
+ battManString2ResponseTestChangeIndex INTEGER,
+ battManString2ResponseTestChangeData INTEGER
+ }
+
+battManString2ResponseTestChangeIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Index of the entries in the table."
+ ::= { battManString2ResponseTestChangeTableEntry 1 }
+
+battManString2ResponseTestChangeData OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The battery response test change in percent."
+ ::= { battManString2ResponseTestChangeTableEntry 2 }
+
+-- the xPDUIdent group
+
+xPDUIdentProductName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the PDU."
+ ::= { xPDUIdent 1 }
+
+xPDUIdentHardwareRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The hardware revision of the PDU.
+ This value is set at the factory."
+ ::= { xPDUIdent 2 }
+
+xPDUIdentFirmwareAppRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "An ID string identifying the application firmware revision of the PDU."
+ ::= { xPDUIdent 3 }
+
+xPDUIdentFirmwareAppOSRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "An ID string identifying the application operating system firmware revision of the PDU."
+ ::= { xPDUIdent 4 }
+
+xPDUIdentFirmwareControllerRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "An ID string identifying the PDU controller firmware revision."
+ ::= { xPDUIdent 5 }
+
+xPDUIdentDateOfManufacture OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The date when the PDU was manufactured in mm/dd/yyyy format.
+ This value is set at the factory."
+ ::= { xPDUIdent 6 }
+
+xPDUIdentModelNumber OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A character string identifying the model number of
+ the PDU. This value is set at the factory."
+ ::= { xPDUIdent 7 }
+
+xPDUIdentSerialNumber OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A character string identifying the serial number of
+ the PDU. This value is set at the factory."
+ ::= { xPDUIdent 8 }
+
+-- the xPDUDevice group
+
+xPDUDeviceNominalMainInputVoltage OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The nominal main input voltage to the PDU.
+ Measured in Volts, line-to-line for a delta service or
+ line-to-neutral for a wye service."
+ ::= { xPDUDevice 1 }
+
+xPDUDeviceServiceType OBJECT-TYPE
+ SYNTAX INTEGER {
+ delta (1),
+ wye (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The type of utility input to the PDU. Either 3 wires (delta), or 4 wires (wye)."
+ ::= { xPDUDevice 2 }
+
+xPDUDeviceNominalOutputVoltage OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The nominal line-to-neutral output voltage to the load measured in Volts."
+ ::= { xPDUDevice 3 }
+
+xPDUDeviceMainInputBreakerRating OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The rating of the main input breaker measured in Amps."
+ ::= { xPDUDevice 4 }
+
+xPDUDevicePanelBreakerRating OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The rating of the panel breaker measured in Amps."
+ ::= { xPDUDevice 5 }
+
+xPDUDeviceTransformerPresent OBJECT-TYPE
+ SYNTAX INTEGER {
+ notPresent (1),
+ present (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates whether or not a transformer is installed in the PDU."
+ ::= { xPDUDevice 6 }
+
+xPDUDeviceLoadTieBreakerPresent OBJECT-TYPE
+ SYNTAX INTEGER {
+ notPresent (1),
+ present (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates whether or not a load tie breaker is installed in the PDU."
+ ::= { xPDUDevice 7 }
+
+xPDUDeviceLoadTestPortPresent OBJECT-TYPE
+ SYNTAX INTEGER {
+ notPresent (1),
+ present (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates whether or not a load test port is installed in the PDU."
+ ::= { xPDUDevice 8 }
+
+xPDUDeviceFusesPresent OBJECT-TYPE
+ SYNTAX INTEGER {
+ notPresent (1),
+ present (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates whether or not the UPS feed from the PDU includes fuses."
+ ::= { xPDUDevice 9 }
+
+xPDUDeviceFansPresent OBJECT-TYPE
+ SYNTAX INTEGER {
+ notPresent (1),
+ present (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates whether or not cooling fans are installed in the PDU."
+ ::= { xPDUDevice 10 }
+
+xPDUDeviceBypassInputPresent OBJECT-TYPE
+ SYNTAX INTEGER {
+ notPresent (1),
+ present (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates whether or not the PDU is equipped with a second feed for
+ the UPS's bypass input."
+ ::= { xPDUDevice 11 }
+
+xPDUDeviceCrossTieOutputPresent OBJECT-TYPE
+ SYNTAX INTEGER {
+ notPresent (1),
+ present (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates whether or not the PDU is equipped with a cross-tie output."
+ ::= { xPDUDevice 12 }
+
+xPDUDeviceEarthGroundMonitorPresent OBJECT-TYPE
+ SYNTAX INTEGER {
+ notPresent (1),
+ present (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates whether or not the PDU can provide ground current measurements."
+ ::= { xPDUDevice 13 }
+
+xPDUDeviceInfraXureType OBJECT-TYPE
+ SYNTAX INTEGER {
+ typeB (1),
+ typeC (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates the configuration of this PDU system.
+ Type-B PDU is in a distributed UPS system and has bypass capabilities.
+ Type-C PDU receives power from a larger central UPS."
+ ::= { xPDUDevice 14 }
+
+-- Main Input
+
+xPDUMainInputOverVoltThreshold OBJECT-TYPE
+ SYNTAX INTEGER (0..30)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Threshold above which an input over voltage condition will be generated.
+ Specified as percent deviation from nominal."
+ ::= { xPDUMainInput 1 }
+
+xPDUMainInputUnderVoltThreshold OBJECT-TYPE
+ SYNTAX INTEGER (0..30)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Threshold below which an input under voltage condition will be generated.
+ Specified as percent deviation from nominal."
+ ::= { xPDUMainInput 2 }
+
+-- Main Input Voltage Table
+
+xPDUMainInputVoltageTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of Main input voltage entries."
+ ::= { xPDUMainInput 3 }
+
+xPDUMainInputVoltageTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF XPDUMainInputVoltagePhaseEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of input voltage table entries. The number of
+ entries are the phase entries.
+ The number of entries is contained in the
+ xPDUMainInputVoltageTableSize OID."
+ ::= { xPDUMainInput 4 }
+
+ xPDUMainInputVoltagePhaseEntry OBJECT-TYPE
+ SYNTAX XPDUMainInputVoltagePhaseEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An entry containing information applicable to a
+ particular main input voltage phase."
+ INDEX { xPDUMainInputVoltagePhaseIndex }
+ ::= { xPDUMainInputVoltageTable 1 }
+
+ XPDUMainInputVoltagePhaseEntry ::= SEQUENCE {
+ xPDUMainInputVoltagePhaseIndex INTEGER,
+ xPDUMainInputVoltageLtoL INTEGER,
+ xPDUMainInputVoltageLtoN INTEGER
+ }
+
+ xPDUMainInputVoltagePhaseIndex OBJECT-TYPE
+ SYNTAX INTEGER{
+ phase1(1),
+ phase2(2),
+ phase3(3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Description of each input phase entry in the table."
+ ::= { xPDUMainInputVoltagePhaseEntry 1 }
+
+ xPDUMainInputVoltageLtoL OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Line-to-line PDU input voltage when an isolation transformer is present,
+ or -1 if no transformer present in this PDU. Measured in tenths of Volts."
+ ::= { xPDUMainInputVoltagePhaseEntry 2 }
+
+ xPDUMainInputVoltageLtoN OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Line-to-neutral PDU input voltage when an isolation transformer is not present,
+ or -1 if a transformer is present in this PDU. Measured in tenths of Volts."
+ ::= { xPDUMainInputVoltagePhaseEntry 3 }
+
+
+xPDUBypassInputOverVoltThreshold OBJECT-TYPE
+ SYNTAX INTEGER (0..30)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Threshold above which a bypass input over voltage condition will be generated.
+ Specified as percent deviation from nominal."
+ ::= { xPDUBypassInput 1 }
+
+xPDUBypassInputUnderVoltThreshold OBJECT-TYPE
+ SYNTAX INTEGER (0..30)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Threshold below which an bypass input under voltage condition will be generated.
+ Specified as percent deviation from nominal."
+ ::= { xPDUBypassInput 2 }
+
+-- Bypass Input Voltage Table
+
+xPDUBypassInputVoltageTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of bypass input voltage entries."
+ ::= { xPDUBypassInput 3 }
+
+xPDUBypassInputVoltageTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF XPDUBypassInputVoltagePhaseEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of output table entries. The number of
+ entries are the phase entries.
+ The number of entries is contained in the
+ xPDUBypassInputVoltageTableSize OID."
+ ::= { xPDUBypassInput 4 }
+
+ xPDUBypassInputVoltagePhaseEntry OBJECT-TYPE
+ SYNTAX XPDUBypassInputVoltagePhaseEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An entry containing information applicable to a
+ particular bypass input voltage phase."
+ INDEX { xPDUBypassInputVoltagePhaseIndex }
+ ::= { xPDUBypassInputVoltageTable 1 }
+
+ XPDUBypassInputVoltagePhaseEntry ::= SEQUENCE {
+ xPDUBypassInputVoltagePhaseIndex INTEGER,
+ xPDUBypassInputVoltageLtoL INTEGER,
+ xPDUBypassInputVoltageLtoN INTEGER
+ }
+
+ xPDUBypassInputVoltagePhaseIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Index of each bypass input phase entry in the table."
+ ::= { xPDUBypassInputVoltagePhaseEntry 1 }
+
+ xPDUBypassInputVoltageLtoL OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Line-to-line bypass input voltage, or -1 if no bypass
+ feed is present in this PDU. Measured in tenths of Volts"
+ ::= { xPDUBypassInputVoltagePhaseEntry 2 }
+
+ xPDUBypassInputVoltageLtoN OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Line-to-neutral bypass input voltage, or -1 if no bypass
+ feed is present in this PDU. Measured in tenths of Volts"
+ ::= { xPDUBypassInputVoltagePhaseEntry 3 }
+
+-- UPS Input Table
+
+xPDUUPSInputVoltageTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of UPS input voltage entries."
+ ::= { xPDUUPSInput 1 }
+
+xPDUUPSInputVoltageTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF XPDUUPSInputVoltagePhaseEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of UPS input table entries. The number of
+ entries are the phase entries.
+ The number of entries is contained in the
+ xPDUUPSInputVoltageTableSize OID."
+ ::= { xPDUUPSInput 2 }
+
+ xPDUUPSInputVoltagePhaseEntry OBJECT-TYPE
+ SYNTAX XPDUUPSInputVoltagePhaseEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An entry containing information applicable to a
+ particular UPS input voltage phase."
+ INDEX { xPDUUPSInputVoltagePhaseIndex }
+ ::= { xPDUUPSInputVoltageTable 1 }
+
+ XPDUUPSInputVoltagePhaseEntry ::= SEQUENCE {
+ xPDUUPSInputVoltagePhaseIndex INTEGER,
+ xPDUUPSInputVoltageLtoNPresent INTEGER
+ }
+
+ xPDUUPSInputVoltagePhaseIndex OBJECT-TYPE
+ SYNTAX INTEGER{
+ phase1(1),
+ phase2(2),
+ phase3(3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Description of each UPS input phase entry in the table."
+ ::= { xPDUUPSInputVoltagePhaseEntry 1 }
+
+ xPDUUPSInputVoltageLtoNPresent OBJECT-TYPE
+ SYNTAX INTEGER {
+ notPresent (1),
+ present (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates whether or not voltage is present at the UPS feed."
+ ::= { xPDUUPSInputVoltagePhaseEntry 2 }
+
+-- System Output
+
+xPDUSystemOutputFrequency OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The system output frequency in tenths of Hertz."
+ ::= { xPDUSystemOutput 1 }
+
+xPDUSystemOutputNeutralCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Shows the neutral current measured at the system output in tenths of Amps."
+ ::= { xPDUSystemOutput 2 }
+
+xPDUSystemOutputTotalPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Shows the total system output power in tenths of kW."
+ ::= { xPDUSystemOutput 3 }
+
+xPDUSystemOutputTotalApparentPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Shows the total system output power in tenths of kVA."
+ ::= { xPDUSystemOutput 4 }
+
+xPDUSystemOutputTotalPowerFactor OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates the total power factor of the system output.
+ A value of 100 representing a unity power factor (1.00).
+ Measured in hundredths."
+ ::= { xPDUSystemOutput 5 }
+
+xPDUSystemOutputFrequencyTolerance OBJECT-TYPE
+ SYNTAX INTEGER{
+ freqToleranceOff (1),
+ freqTolerancePointTwo (2),
+ freqTolerancePointFive (3),
+ freqToleranceOne (4),
+ freqToleranceOnePointFive (5),
+ freqToleranceTwo (6),
+ freqToleranceThree (7),
+ freqToleranceFour (8),
+ freqToleranceFive (9),
+ freqToleranceNine (10)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Shows the circuit panel output frequency tolerance in Hertz."
+ ::= { xPDUSystemOutput 6 }
+
+xPDUSystemOutputMaxKWPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Defines 100% load in kW.
+ Purpose is to set to match UPS capabilities."
+ ::= { xPDUSystemOutput 7 }
+
+xPDUSystemOutputOverVoltThreshold OBJECT-TYPE
+ SYNTAX INTEGER (0..30)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Threshold above which an output over voltage condition will be generated.
+ Specified as percent deviation from nominal."
+ ::= { xPDUSystemOutput 8 }
+
+xPDUSystemOutputUnderVoltThreshold OBJECT-TYPE
+ SYNTAX INTEGER (0..30)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Threshold below which an output under voltage condition will be generated.
+ Specified as percent deviation from nominal."
+ ::= { xPDUSystemOutput 9 }
+
+
+xPDUSystemOutputOverCurrentThreshold OBJECT-TYPE
+ SYNTAX INTEGER (0..100)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Threshold above which an over current condition will be generated.
+ Specified as a percent of the panel breaker rating."
+ ::= { xPDUSystemOutput 10 }
+
+xPDUSystemOutputOverCurrentNeutralThreshold OBJECT-TYPE
+ SYNTAX INTEGER (0..100)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Threshold above which an Over current neutral condition will be generated.
+ Specified as a percent of the panel breaker rating."
+ ::= { xPDUSystemOutput 11 }
+
+xPDUSystemOutputUnderCurrentThreshold OBJECT-TYPE
+ SYNTAX INTEGER (0..100)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Threshold below which an under current condition will be generated.
+ Specified as a percent of the panel breaker rating."
+ ::= { xPDUSystemOutput 12 }
+
+xPDUSystemOutputTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of System Output phase entries."
+ ::= { xPDUSystemOutput 13 }
+
+xPDUSystemOutputTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF XPDUSystemOutputPhaseEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of system output table entries.
+ The number of entries is contained in the
+ xPDUSystemOutputTableSize OID."
+ ::= { xPDUSystemOutput 14 }
+
+ xPDUSystemOutputPhaseEntry OBJECT-TYPE
+ SYNTAX XPDUSystemOutputPhaseEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An entry containing information applicable to a
+ particular system output phase."
+ INDEX { xPDUSystemOutputPhaseIndex }
+ ::= { xPDUSystemOutputTable 1 }
+
+ XPDUSystemOutputPhaseEntry ::= SEQUENCE {
+ xPDUSystemOutputPhaseIndex INTEGER,
+ xPDUSystemOutputVoltageLtoL INTEGER,
+ xPDUSystemOutputVoltageLtoN INTEGER,
+ xPDUSystemOutputPhaseCurrent INTEGER,
+ xPDUSystemOutputPower INTEGER,
+ xPDUSystemOutputApparentPower INTEGER,
+ xPDUSystemOutputPowerFactor INTEGER
+ }
+
+ xPDUSystemOutputPhaseIndex OBJECT-TYPE
+ SYNTAX INTEGER{
+ phase1(1),
+ phase2(2),
+ phase3(3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Description of each output phase entry in the table."
+ ::= { xPDUSystemOutputPhaseEntry 1 }
+
+ xPDUSystemOutputVoltageLtoL OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Line-to-line system output voltage available at the cicuit panel.
+ Measured in tenths of Volts."
+ ::= { xPDUSystemOutputPhaseEntry 2 }
+
+ xPDUSystemOutputVoltageLtoN OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Line-to-neutral system output voltage available at the cicuit panel.
+ Measured in tenths of Volts."
+ ::= { xPDUSystemOutputPhaseEntry 3 }
+
+
+ xPDUSystemOutputPhaseCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "System load current per phase. Measured in tenths of Amps."
+ ::= { xPDUSystemOutputPhaseEntry 4 }
+
+ xPDUSystemOutputPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "System output power per phase. Measured in tenths of kW."
+ ::= { xPDUSystemOutputPhaseEntry 5 }
+
+ xPDUSystemOutputApparentPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "System output power per phase. Measured in tenths of kVA."
+ ::= { xPDUSystemOutputPhaseEntry 6 }
+
+ xPDUSystemOutputPowerFactor OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates the Power Factor of the system output per phase.
+ A value of 100 representing a unity Power Factor (1.00).
+ Measured in hundredths."
+ ::= { xPDUSystemOutputPhaseEntry 7 }
+
+xPDUGroundCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Shows the current measured in the earth ground conductor in tenths of Amps."
+ ::= { xPDUGroundMonitorPoint 1 }
+
+xPDUGroundCurrentThreshold OBJECT-TYPE
+ SYNTAX INTEGER (0..50)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Threshold above which a ground current over current
+ condition will be generated. Measured in tenths of Amps."
+ ::= { xPDUGroundMonitorPoint 2 }
+
+-- System Breakers
+
+xPDUSystemBreakerTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of system breaker entries."
+ ::= { xPDUSystemBreakers 1 }
+
+xPDUSystemBreakerTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF XPDUSystemBreakerTableEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of system breaker entries.
+ The number of entries is contained in the
+ xPDUSystemBreakerTableSize OID."
+ ::= { xPDUSystemBreakers 2 }
+
+ xPDUSystemBreakerTableEntry OBJECT-TYPE
+ SYNTAX XPDUSystemBreakerTableEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An entry containing information applicable to a
+ particular system breaker."
+ INDEX { xPDUSystemBreakerTableIndex }
+ ::= { xPDUSystemBreakerTable 1 }
+
+ XPDUSystemBreakerTableEntry ::= SEQUENCE {
+ xPDUSystemBreakerTableIndex INTEGER,
+ xPDUSystemBreakerDescription DisplayString,
+ xPDUSystemBreakerPosition INTEGER
+ }
+
+ xPDUSystemBreakerTableIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Index of system breaker entries in the table."
+ ::= { xPDUSystemBreakerTableEntry 1 }
+
+xPDUSystemBreakerDescription OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..79))
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A brief description of the system breakers."
+ ::= { xPDUSystemBreakerTableEntry 2 }
+
+ xPDUSystemBreakerPosition OBJECT-TYPE
+ SYNTAX INTEGER {
+ open (1),
+ closed (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates whether this breaker is open(1) or closed(2)."
+ ::= { xPDUSystemBreakerTableEntry 3 }
+
+-- Branch Breakers (Breaker Panel)
+
+xPDUNumOfBranchBreakers OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of branch breakers in the Panel."
+ ::= { xPDUBranchBreakers 1 }
+
+-- Branch Breakers Table
+
+xPDUBranchBreakerTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of branch breaker entries."
+ ::= { xPDUBranchBreakers 2 }
+
+xPDUBranchBreakerTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF XPDUBranchBreakerEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of branch breaker table entries. The
+ number of entries is given by the value of xPDUBranchBreakerTableSize
+ The number of entries is contained in the
+ xPDUBranchBreakerTableSize OID."
+ ::= { xPDUBranchBreakers 3 }
+
+ xPDUBranchBreakerEntry OBJECT-TYPE
+ SYNTAX XPDUBranchBreakerEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An entry containing information applicable to a
+ particular branch breaker."
+ INDEX { xPDUBranchBreakerTableIndex }
+ ::= { xPDUBranchBreakerTable 1 }
+
+ XPDUBranchBreakerEntry ::= SEQUENCE {
+ xPDUBranchBreakerTableIndex INTEGER,
+ xPDUBranchBreakerRating INTEGER,
+ xPDUBranchBreakerRDPFeed INTEGER,
+ xPDUBranchBreakerTieIndicator INTEGER,
+ xPDUBranchBreakerCurrent INTEGER,
+ xPDUBranchBreakerOverCurrentThreshold INTEGER,
+ xPDUBranchBreakerUnderCurrentThreshold INTEGER
+ }
+
+ xPDUBranchBreakerTableIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Index of branch breaker entries in the table."
+ ::= { xPDUBranchBreakerEntry 1 }
+
+ xPDUBranchBreakerRating OBJECT-TYPE
+ SYNTAX INTEGER (0..100)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates current rating of this breaker.
+ 0=Breaker is not present.
+ 1=Earth leakage connection.
+ 2=Neutral connection.
+ A value greater than 2 indicates breaker current rating in Amps."
+ ::= { xPDUBranchBreakerEntry 2 }
+
+ xPDUBranchBreakerRDPFeed OBJECT-TYPE
+ SYNTAX INTEGER {
+ remoteDistribution (1),
+ noRemoteDistribution (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates that a breaker position is feeding a remote
+ distribution panel."
+ ::= { xPDUBranchBreakerEntry 3 }
+
+ xPDUBranchBreakerTieIndicator OBJECT-TYPE
+ SYNTAX INTEGER {
+ breakerTied (1),
+ breakerUntied (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates whether or not the breaker pole is physically
+ connected to the breaker immediately below."
+ ::= { xPDUBranchBreakerEntry 4 }
+
+ xPDUBranchBreakerCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates the branch current in tenths of Amps or -1 when not available."
+ ::= { xPDUBranchBreakerEntry 5 }
+
+ xPDUBranchBreakerOverCurrentThreshold OBJECT-TYPE
+ SYNTAX INTEGER (0..100)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Threshold above which a branch circuit over current
+ condition will be generated.
+ Specified as a percent of the branch breaker rating."
+ ::= { xPDUBranchBreakerEntry 6 }
+
+ xPDUBranchBreakerUnderCurrentThreshold OBJECT-TYPE
+ SYNTAX INTEGER (0..100)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Threshold below which a branch circuit under current
+ condition will be generated.
+ Specified as a percent of the branch breaker rating."
+ ::= { xPDUBranchBreakerEntry 7 }
+
+-- the xPDUInputContacts group
+
+xPDUInputContactNumContacts OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of contacts supported by the PDU."
+ ::= { xPDUInputContacts 1 }
+
+xPDUInputContactTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of input contact entries."
+ ::= { xPDUInputContacts 2 }
+
+xPDUInputContactTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF XPDUInputContactEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of contacts supported by the PDU.
+ The number of entries is contained in the
+ xPDUInputContactTableSize OID."
+ ::= { xPDUInputContacts 3 }
+
+xPDUInputContactEntry OBJECT-TYPE
+ SYNTAX XPDUInputContactEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A contact entry containing information for a given contact."
+ INDEX { xPDUInputContactNumber }
+ ::= { xPDUInputContactTable 1 }
+
+XPDUInputContactEntry ::=
+ SEQUENCE {
+ xPDUInputContactNumber INTEGER,
+ xPDUInputContactName DisplayString,
+ xPDUInputContactNormalState INTEGER,
+ xPDUInputContactCurrentState INTEGER
+ }
+
+xPDUInputContactNumber OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "An index identifying the contact on the PDU."
+ ::= { xPDUInputContactEntry 1 }
+
+xPDUInputContactName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The description of the purpose/use of the contact."
+ ::= { xPDUInputContactEntry 2 }
+
+xPDUInputContactNormalState OBJECT-TYPE
+ SYNTAX INTEGER {
+ open (1),
+ closed (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The normal operating position of the contact."
+ ::= { xPDUInputContactEntry 3 }
+
+xPDUInputContactCurrentState OBJECT-TYPE
+ SYNTAX INTEGER {
+ open (1),
+ closed (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This value indicates the current state of the contact."
+ ::= { xPDUInputContactEntry 4 }
+
+-- the xPDUOutputRelays group
+
+xPDUOutputRelaysNumRelays OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of output relays supported by the PDU."
+ ::= { xPDUOutputRelays 1 }
+
+xPDUOutputRelaysTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of output relay entries."
+ ::= { xPDUOutputRelays 2 }
+
+xPDUOutputRelayTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF XPDUOutputRelayEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of output relays supported by the PDU.
+ The number of entries is contained in the
+ xPDUOutputRelayTableSize OID."
+ ::= { xPDUOutputRelays 3 }
+
+xPDUOutputRelayEntry OBJECT-TYPE
+ SYNTAX XPDUOutputRelayEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A output relay entry containing information for a given contact."
+ INDEX { xPDUOutputRelayNumber }
+ ::= { xPDUOutputRelayTable 1 }
+
+XPDUOutputRelayEntry ::=
+ SEQUENCE {
+ xPDUOutputRelayNumber INTEGER,
+ xPDUOutputRelayName DisplayString,
+ xPDUOutputRelayNormalState INTEGER,
+ xPDUOutputRelayCurrentState INTEGER
+ }
+
+xPDUOutputRelayNumber OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "An index identifying the output relay on the PDU."
+ ::= { xPDUOutputRelayEntry 1 }
+
+xPDUOutputRelayName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The description of the purpose/use of the output relay."
+ ::= { xPDUOutputRelayEntry 2 }
+
+xPDUOutputRelayNormalState OBJECT-TYPE
+ SYNTAX INTEGER {
+ open (1),
+ closed (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The normal operating position of the output relay."
+ ::= { xPDUOutputRelayEntry 3 }
+
+xPDUOutputRelayCurrentState OBJECT-TYPE
+ SYNTAX INTEGER {
+ open (1),
+ closed (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This value indicates the current state of the output relay."
+ ::= { xPDUOutputRelayEntry 4 }
+
+-- the xPDUMiscGroup
+
+xPDUEPOMode OBJECT-TYPE
+ SYNTAX INTEGER {
+ armed (1),
+ disarmed (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates whether the EPO System is armed(1) or disarmed(2)."
+ ::= { xPDUMiscGroup 1 }
+
+xPDUTransformTempStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ normal (1),
+ overtemp (2),
+ noTransformerPresent (3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates if the PDU's isolation transformer is over temperature."
+ ::= { xPDUMiscGroup 2 }
+
+xPDUCoolingFanStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ normal (1),
+ failed (2),
+ noCoolingFansPresent (3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates if one or more of the PDU's cooling fans have failed."
+ ::= { xPDUMiscGroup 3 }
+
+-- The xATSIdent group
+
+xATSIdentProductName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the transfer switch unit."
+ ::= { xATSIdent 1 }
+
+xATSIdentHardwareRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The hardware revision of the transfer switch.
+ This value is set at the factory."
+ ::= { xATSIdent 2 }
+
+xATSIdentFirmwareAppRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "An ID string identifying the application firmware revision of the transfer switch."
+ ::= { xATSIdent 3 }
+
+xATSIdentFirmwareAppOSRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "An ID string identifying the application operating system firmware revision of the transfer switch."
+ ::= { xATSIdent 4 }
+
+xATSIdentFirmwareControllerRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "An ID string identifying the transfer switch controller firmware revision."
+ ::= { xATSIdent 5 }
+
+xATSIdentDateOfManufacture OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The date when the transfer switch was manufactured in mm/dd/yyyy format.
+ This value is set at the factory."
+ ::= { xATSIdent 6 }
+
+xATSIdentModelNumber OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A character string identifying the model number of the transfer switch.
+ This value is set at the factory."
+ ::= { xATSIdent 7 }
+
+xATSIdentSerialNumber OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A character string identifying the serial number of the transfer switch.
+ This value is set at the factory."
+ ::= { xATSIdent 8 }
+
+-- The xATSDevice group
+
+xATSDeviceServiceType OBJECT-TYPE
+ SYNTAX INTEGER {
+ threeWire (1),
+ fourWire (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The type of utility input to the transfer switch.
+ Either 3 wires (delta), or 4 wires (wye)."
+ ::= { xATSDevice 1 }
+
+xATSDeviceNominalVoltage OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The nominal line-to-neutral system voltage.
+ Measured in Volts, line-to-line for a 3-wire service or
+ line-to-neutral for a 4-wire service. -1 if not available."
+ ::= { xATSDevice 2 }
+
+xATSDeviceNominalFrequency OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The nominal system frequency. Measured in tenths of Hertz.
+ -1 if not available."
+ ::= { xATSDevice 3 }
+
+xATSDeviceTransferSwitchRating OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The rating of the transfer switch.
+ Measured in Amps."
+ ::= { xATSDevice 4 }
+
+xATSDeviceDCBackUpPresent OBJECT-TYPE
+ SYNTAX INTEGER{
+ yes (1),
+ no (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates if a DC backup is present or not."
+ ::= { xATSDevice 5 }
+
+-- The xATS Switch Status group
+
+xATSSwitchStatusSelectedSource OBJECT-TYPE
+ SYNTAX INTEGER{
+ none (1),
+ source1 (2),
+ source2 (3),
+ fault (4),
+ unknown (5)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The source which is currently selected, i.e. supplying power to the load."
+ ::= { xATSSwitchStatus 1 }
+
+xATSSwitchStatusOperationalMode OBJECT-TYPE
+ SYNTAX INTEGER{
+ automatic (1),
+ notInAutoAbnormal (2),
+ notInAuto (3),
+ unknown (4)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The current operating mode of the transfer switch. When the ATS is in
+ automatic mode, generator starting and ATS transferring is all done automatically
+ as needed based on the state of source 1. Automatic operation is halted when the
+ ATS is in either of the notInAuto modes.
+ A mode of notInAuto indicates that the automatic operation switch is in the
+ disabled position, as indicated by the xATSSwitchStatusAutomaticOperationSwitch OID.
+ The notInAutoAbnormal condition indicates that an abnormal
+ condition has caused the transfer switch to halt automatic operation.
+ In this case, traps can indicate the exact problem. In the case of
+ notInAutoAbnormal, refer to the operation manual for details
+ on how debug the condition and restore automatic operation."
+ ::= { xATSSwitchStatus 2 }
+
+xATSSwitchStatusAutomaticOperationSwitch OBJECT-TYPE
+ SYNTAX INTEGER{
+ disabled (1),
+ enabled (2),
+ unknown (3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The position of the automatic operation switch on the front of the transfer switch."
+ ::= { xATSSwitchStatus 3 }
+
+xATSSwitchStatusEngineStartSignal OBJECT-TYPE
+ SYNTAX INTEGER{
+ run (1),
+ stop (2),
+ unknown (3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The position of the Start/Stop contact which signals the generator
+ engine to start/run. When the ATS is in automatic mode,
+ generator starting/stopping is under ATS control."
+ ::= { xATSSwitchStatus 4 }
+
+-- The xATS Switch Setting group
+
+xATSSwitchSettingsLowVoltageTransferPoint OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The lowest acceptable voltage condition at source 1.
+ When any phase of source 1 is lower than this voltage,
+ source quality is considered bad and the generator run signal
+ is asserted to begin generator operation.
+ Specified in volts, line-to-line for a 3-wire service or
+ line-to-neutral for a 4-wire service.
+ -1 if not available."
+ ::= { xATSSwitchSettings 1 }
+
+xATSSwitchSettingsHighVoltageTransferPoint OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The highest acceptable voltage condition at source 1.
+ When any phase of source 1 is greater than this voltage,
+ source quality is considered bad and the generator run signal
+ is asserted to begin generator operation.
+ Specified in volts, line-to-line for a 3-wire service or
+ line-to-neutral for a 4-wire service.
+ -1 if not available."
+ ::= { xATSSwitchSettings 2 }
+
+xATSSwitchSettingsMaxFrequencyDeviation OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum acceptable frequency deviation condition from nominal at source 1.
+ When source 1 frequency is outside the specified range,
+ source quality is considered bad and the generator run signal
+ is asserted to begin generator operation.
+ Specified in tenths of Hertz above or below nominal.
+ A value of zero indicates that frequency is ignored when
+ determining source quality.
+ -1 if not available."
+ ::= { xATSSwitchSettings 3 }
+
+xATSSwitchSettingsMinPhaseBalance OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The minimum required phase balance at source 1.
+ When the percentage difference between the minimum and maximum
+ phase voltage measurements at source 1 is greater than this value,
+ source quality is considered bad and the generator run signal
+ is asserted to begin generator operation.
+ Specified as a percentage. A value of zero indicates that phase balance
+ is ignored when determining source quality.
+ -1 if not available."
+ ::= { xATSSwitchSettings 4 }
+
+xATSSwitchSettingsNominalRotation OBJECT-TYPE
+ SYNTAX INTEGER{
+ abc (1),
+ cba (2),
+ any (3),
+ unknown (4)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The nominal phase rotation (or phase sequence) required by the load.
+ For certain types of equipment, such as rotating machinery, phase rotation
+ is critical for proper operation as it determines the direction which motors
+ will rotate (clockwise or counterclockwise).
+ Source quality will be seen as bad if the rotation measured at that
+ ATS input does not match this setting.
+ If this setting is set to any, phase rotation is ignored."
+ ::= { xATSSwitchSettings 5 }
+
+xATSSwitchSettingsAllowClosedTransfer OBJECT-TYPE
+ SYNTAX INTEGER{
+ yes (1),
+ no (2),
+ unknown (3)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "This setting enables seemless (closed) transfers between sources.
+ When possible, both source 1 and source 2 are closed to the output
+ for a brief time. If closed transfer is not possible within the amount
+ of time specified by the xATSSwitchSettingsMaxSyncTime OID,
+ an open transfer will be executed."
+ ::= { xATSSwitchSettings 6 }
+
+xATSSwitchSettingsMaxSyncTime OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "When attempting/seeking to perform a closed transfer, this setting defines
+ the maximum time allowed before the transfer switch will give up and perform
+ an open transfer. Specified in seconds.
+ -1 if not available."
+ ::= { xATSSwitchSettings 7 }
+
+xATSSwitchSettingsNeutralTransferTime OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "This setting defines how long both source 1 and source 2 will be
+ disconnected from the output, during an open transfer.
+ Specified in seconds.
+ -1 if not available."
+ ::= { xATSSwitchSettings 8 }
+
+xATSSwitchSettingsClearLatchedAlarms OBJECT-TYPE
+ SYNTAX INTEGER{
+ yes (1),
+ no (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Clears any latched alarm conditions."
+ ::= { xATSSwitchSettings 9 }
+
+xATSSwitchSettingsSetToFactoryDefaults OBJECT-TYPE
+ SYNTAX INTEGER{
+ yes (1),
+ no (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Sets all transfer switch settings to factory default values."
+ ::= { xATSSwitchSettings 10 }
+
+
+-- The xATSSwitchTimers group
+
+ xATSSwitchTimersTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of transfer switch timer entries."
+ ::= { xATSSwitchTimers 1 }
+
+ xATSSwitchTimersTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF XATSSwitchTimersEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of timers supported by ATS.
+ The number of entries is contained in the xATSSwitchTimersTableSize OID."
+ ::= { xATSSwitchTimers 2 }
+
+ xATSSwitchTimersEntry OBJECT-TYPE
+ SYNTAX XATSSwitchTimersEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An entry containing information about an individual ATS timer."
+ INDEX { xATSSwitchTimersIndex }
+ ::= { xATSSwitchTimersTable 1 }
+
+ XATSSwitchTimersEntry ::=
+ SEQUENCE {
+ xATSSwitchTimersIndex INTEGER,
+ xATSSwitchTimersName DisplayString,
+ xATSSwitchTimersAbort INTEGER,
+ xATSSwitchTimersStatus INTEGER,
+ xATSSwitchTimersRemainingTime INTEGER,
+ xATSSwitchTimersDelaySetting INTEGER
+ }
+
+xATSSwitchTimersIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Index of timer entries in the table."
+ ::= { xATSSwitchTimersEntry 1 }
+
+xATSSwitchTimersName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Name of the individual timer.Refer to ATS operation manual,
+ or on-line help, for detailed descriptions of ATS timers."
+ ::= { xATSSwitchTimersEntry 2 }
+
+xATSSwitchTimersAbort OBJECT-TYPE
+ SYNTAX INTEGER{
+ yes (1),
+ no (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "This aborts the individual timer."
+ ::= { xATSSwitchTimersEntry 3 }
+
+xATSSwitchTimersStatus OBJECT-TYPE
+ SYNTAX INTEGER{
+ inactive (1),
+ active (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the individual timer. Designates whether this timer
+ entry is currently running or inactive."
+ ::= { xATSSwitchTimersEntry 4 }
+
+xATSSwitchTimersRemainingTime OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The time remaining for this timer entry.
+ Specified in seconds."
+ ::= { xATSSwitchTimersEntry 5 }
+
+xATSSwitchTimersDelaySetting OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The delay settings associated with this timer entry.
+ When this timer entry is active, the timer value must exceed this setting
+ before the ATS behavior associated with this timer is executed.
+ Refer to ATS operation manual, or on-line help, for detailed
+ descriptions of ATS timers."
+ ::= { xATSSwitchTimersEntry 6 }
+
+-- The xATSSwitchBlockMap group
+
+ xATSSwitchBlockMapTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of blocking map entries, or how many ATS actions can be blocked."
+ ::= { xATSSwitchBlockMap 1 }
+
+ xATSSwitchBlockMapTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF XATSSwitchBlockMapEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of blocking maps supported by the ATS.
+ The number of entries is contained in the xATSSwitchBlockMapTableSize OID."
+ ::= { xATSSwitchBlockMap 2 }
+
+ xATSSwitchBlockMapEntry OBJECT-TYPE
+ SYNTAX XATSSwitchBlockMapEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An entry containing information about a specific ATS blocking map."
+ INDEX { xATSSwitchBlockMapIndex }
+ ::= { xATSSwitchBlockMapTable 1 }
+
+ XATSSwitchBlockMapEntry ::=
+ SEQUENCE {
+ xATSSwitchBlockMapIndex INTEGER,
+ xATSSwitchBlockMapName DisplayString,
+ xATSSwitchBlockMapStatus INTEGER,
+ xATSSwitchBlockMapSetting INTEGER
+ }
+
+ xATSSwitchBlockMapIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Index of blocking map entries in the table."
+ ::= { xATSSwitchBlockMapEntry 1 }
+
+ xATSSwitchBlockMapName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A string describing the ATS action to be blocked."
+ ::= { xATSSwitchBlockMapEntry 2 }
+
+ xATSSwitchBlockMapStatus OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Represents the status of this blocking map entry, in bit-mapped format.
+ A non-zero value indicates that this entry's ATS action is currently being blocked.
+ The bit(s) set indicate which input(s) are causing the blocking (bit0, bit1, etc).
+
+ bit 0 - Contact 1
+ bit 1 - Contact 2
+ bit 2 - Contact 3
+ bit 3 - Contact 4."
+ ::= { xATSSwitchBlockMapEntry 3 }
+
+ xATSSwitchBlockMapSetting OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "This setting designates the inputs that block the ATS action
+ The mapping is specified as a bit-field, where each bit set indicates
+ the input that blocks the ATS action associated with the entry.
+
+ bit 0 - Contact 1
+ bit 1 - Contact 2
+ bit 2 - Contact 3
+ bit 3 - Contact 4."
+ ::= { xATSSwitchBlockMapEntry 4 }
+
+-- The xATSSwitchStatistics group
+
+ xATSSwitchStatisticsTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of transfer switch statistics entries."
+ ::= { xATSSwitchStatistics 1 }
+
+ xATSSwitchStatisticsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF XATSSwitchStatisticsEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of statistics supported by ATS.
+ The number of entries is contained in the xATSSwitchStatisticsTableSize OID."
+ ::= { xATSSwitchStatistics 2 }
+
+ xATSSwitchStatisticsEntry OBJECT-TYPE
+ SYNTAX XATSSwitchStatisticsEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An entry containing information about an individual ATS statistic."
+ INDEX { xATSSwitchStatisticsIndex }
+ ::= { xATSSwitchStatisticsTable 1 }
+
+ XATSSwitchStatisticsEntry ::=
+ SEQUENCE {
+ xATSSwitchStatisticsIndex INTEGER,
+ xATSSwitchStatisticsName DisplayString,
+ xATSSwitchStatisticsValue DisplayString,
+ xATSSwitchStatisticsReset INTEGER
+ }
+
+ xATSSwitchStatisticsIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Index of ATS statistics entries in the table."
+ ::= { xATSSwitchStatisticsEntry 1 }
+
+ xATSSwitchStatisticsName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This is the name of the ATS statistic associated with this entry."
+ ::= { xATSSwitchStatisticsEntry 2 }
+
+ xATSSwitchStatisticsValue OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This is the value of the ATS statistic associated with this entry."
+ ::= { xATSSwitchStatisticsEntry 3 }
+
+ xATSSwitchStatisticsReset OBJECT-TYPE
+ SYNTAX INTEGER{
+ yes (1),
+ no (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "This will reset the individual ATS statistic associated with this entry."
+ ::= { xATSSwitchStatisticsEntry 4 }
+
+-- The xATS Source 1 group
+
+xATSSource1Name OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "String used to identify source 1."
+ ::= { xATSSource1 1 }
+
+xATSSource1Position OBJECT-TYPE
+ SYNTAX INTEGER{
+ open (1),
+ closed (2),
+ tripped (3),
+ unknown (4)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The current position of the switch at source 1."
+ ::= { xATSSource1 2 }
+
+xATSSource1Frequency OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The frequency at source 1 in tenths of Hertz.
+ -1 if unavailable."
+ ::= { xATSSource1 3 }
+
+xATSSource1Quality OBJECT-TYPE
+ SYNTAX INTEGER{
+ sourceGood (1),
+ lowVoltage (2),
+ highVoltage (3),
+ phaseImbalance (4),
+ freqOutOfRange (5),
+ badRotation (6),
+ unknown (7)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The current line quality of source 1."
+ ::= { xATSSource1 4 }
+
+xATSSource1Rotation OBJECT-TYPE
+ SYNTAX INTEGER{
+ abc (1),
+ cba (2),
+ unknown (3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The phase rotation measured at the source 1 input of the ATS.
+ The sequence is a reference to the order in which the three phases
+ pass the zero-crossing boundary in time."
+ ::= { xATSSource1 5 }
+
+xATSSource1TableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of input voltage entries at the source 1 input of the ATS."
+ ::= { xATSSource1 6 }
+
+ xATSSource1Table OBJECT-TYPE
+ SYNTAX SEQUENCE OF XATSSource1PhaseEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of voltage table entries for source 1. The number of
+ entries are the phase entries. The number of entries is contained in the
+ xATSSource1TableSize OID."
+ ::= { xATSSource1 7 }
+
+ xATSSource1PhaseEntry OBJECT-TYPE
+ SYNTAX XATSSource1PhaseEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An entry containing information applicable to a
+ particular input voltage phase at the source 1 input of the ATS."
+ INDEX { xATSSource1Index }
+ ::= { xATSSource1Table 1 }
+
+ XATSSource1PhaseEntry ::= SEQUENCE {
+ xATSSource1Index INTEGER,
+ xATSSource1VoltageLtoL INTEGER,
+ xATSSource1VoltageLtoN INTEGER
+ }
+
+ xATSSource1Index OBJECT-TYPE
+ SYNTAX INTEGER{
+ phase1(1),
+ phase2(2),
+ phase3(3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Description of each phase utilized at source 1."
+ ::= { xATSSource1PhaseEntry 1 }
+
+ xATSSource1VoltageLtoL OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Source 1 line-to-line input voltage.
+ Measured in tenths of Volts."
+ ::= { xATSSource1PhaseEntry 2 }
+
+ xATSSource1VoltageLtoN OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Source 1 line-to-neutral input voltage.
+ Measured in tenths of Volts. -1 for a 3-wire service type."
+ ::= { xATSSource1PhaseEntry 3 }
+
+-- The xATS Source 2 group
+
+xATSSource2Name OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "String used to identify source 2."
+ ::= { xATSSource2 1 }
+
+xATSSource2Position OBJECT-TYPE
+ SYNTAX INTEGER{
+ open (1),
+ closed (2),
+ tripped (3),
+ unknown (4)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The current position of the switch at source 2."
+ ::= { xATSSource2 2 }
+
+xATSSource2Frequency OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The frequency at source 2 in tenths of Hertz.
+ -1 if not available."
+ ::= { xATSSource2 3 }
+
+xATSSource2Quality OBJECT-TYPE
+ SYNTAX INTEGER{
+ sourceGood (1),
+ lowVoltage (2),
+ highVoltage (3),
+ phaseImbalance (4),
+ freqOutOfRange (5),
+ badRotation (6),
+ unknown (7)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The current line quality of source 2."
+ ::= { xATSSource2 4 }
+
+xATSSource2Rotation OBJECT-TYPE
+ SYNTAX INTEGER{
+ abc (1),
+ cba (2),
+ unknown (3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The phase rotation measured at the source 2 input of the ATS.
+ -1 if not available."
+ ::= { xATSSource2 5 }
+
+xATSSource2TableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of input voltage entries at the source 2 input of the ATS."
+ ::= { xATSSource2 6 }
+
+ xATSSource2Table OBJECT-TYPE
+ SYNTAX SEQUENCE OF XATSSource2PhaseEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of voltage table entries for the source 2. The number of
+ entries are the phase entries. The number of entries is contained in the
+ xATSSource2TableSize OID."
+ ::= { xATSSource2 7 }
+
+ xATSSource2PhaseEntry OBJECT-TYPE
+ SYNTAX XATSSource2PhaseEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An entry containing information applicable to a
+ particular input voltage phase at the source 2 input of the ATS."
+ INDEX { xATSSource2Index }
+ ::= { xATSSource2Table 1 }
+
+ XATSSource2PhaseEntry ::= SEQUENCE {
+ xATSSource2Index INTEGER,
+ xATSSource2VoltageLtoL INTEGER,
+ xATSSource2VoltageLtoN INTEGER
+ }
+
+ xATSSource2Index OBJECT-TYPE
+ SYNTAX INTEGER{
+ phase1(1),
+ phase2(2),
+ phase3(3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Description of each phase utilized at the source 2."
+ ::= { xATSSource2PhaseEntry 1 }
+
+ xATSSource2VoltageLtoL OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Source 2 line-to-line input voltage.
+ Measured in tenths of Volts."
+ ::= { xATSSource2PhaseEntry 2 }
+
+ xATSSource2VoltageLtoN OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Source 2 line-to-neutral input voltage.
+ Measured in tenths of Volts. -1 for a 3-wire service type."
+ ::= { xATSSource2PhaseEntry 3 }
+
+-- The xATSSystemOutput
+
+xATSSystemOutputFrequency OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The system output frequency in tenths of Hertz."
+ ::= { xATSSystemOutput 1 }
+
+xATSSystemOutputTotalPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Shows the total system output power in tenths of kW."
+ ::= { xATSSystemOutput 2 }
+
+xATSSystemOutputTotalApparentPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Shows the total system output power in tenths of kVA."
+ ::= { xATSSystemOutput 3 }
+
+xATSSystemOutputTotalPowerFactor OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates the total power factor of the system output.
+ A value of 100 representing a unity power factor (1.00)
+ Specified in hundredths."
+ ::= { xATSSystemOutput 4 }
+
+xATSSystemOutputFrequencyTolerance OBJECT-TYPE
+ SYNTAX INTEGER{
+ freqToleranceOff (1),
+ freqTolerancePointTwo (2),
+ freqTolerancePointFive (3),
+ freqToleranceOne (4),
+ freqToleranceOnePointFive (5),
+ freqToleranceTwo (6),
+ freqToleranceThree (7),
+ freqToleranceFour (8),
+ freqToleranceFive (9),
+ freqToleranceNine (10)
+
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Shows the panel output frequency tolerance in +/- Hertz."
+ ::= { xATSSystemOutput 5 }
+
+xATSSystemOutputOverVoltThreshold OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Threshold above which an output over voltage condition will be generated.
+ Specified as tenths of percent deviation from nominal.
+ A value of zero indicates that the threshold is disabled."
+ ::= { xATSSystemOutput 6 }
+
+xATSSystemOutputUnderVoltThreshold OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Threshold below which an output under voltage condition will be generated.
+ Specified as tenths of percent deviation from nominal.
+ A value of zero indicates that the threshold is disabled."
+ ::= { xATSSystemOutput 7 }
+
+xATSSystemOutputOverCurrentThreshold OBJECT-TYPE
+ SYNTAX INTEGER (0..100)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Threshold above which an over current condition will be generated.
+ Specified as a percent of the transfer switch rating (xATSDeviceTransferSwitchRating OID).
+ A value of zero indicates that the threshold is disabled."
+ ::= { xATSSystemOutput 8 }
+
+xATSSystemOutputUnderCurrentThreshold OBJECT-TYPE
+ SYNTAX INTEGER (0..100)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Threshold below which an under current condition will be generated.
+ Specified as a percent of the transfer switch rating (xATSDeviceTransferSwitchRating OID).
+ A value of zero indicates that the threshold is disabled."
+ ::= { xATSSystemOutput 9 }
+
+xATSSystemOutputAlarmDelayThreshold OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Delay the generation of an output alarm.
+ Specified in seconds."
+ ::= { xATSSystemOutput 10 }
+
+xATSSystemOutputTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of system output phase entries."
+ ::= { xATSSystemOutput 11 }
+
+xATSSystemOutputTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF XATSSystemOutputPhaseEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of system output table entries.
+ The number of entries is contained in the xATSSystemOutputTableSize OID."
+ ::= { xATSSystemOutput 12 }
+
+ xATSSystemOutputPhaseEntry OBJECT-TYPE
+ SYNTAX XATSSystemOutputPhaseEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An entry containing information applicable to a
+ particular system output phase."
+ INDEX { xATSSystemOutputPhaseIndex }
+ ::= { xATSSystemOutputTable 1 }
+
+ XATSSystemOutputPhaseEntry ::= SEQUENCE {
+ xATSSystemOutputPhaseIndex INTEGER,
+ xATSSystemOutputVoltageLtoL INTEGER,
+ xATSSystemOutputVoltageLtoN INTEGER,
+ xATSSystemOutputPhaseCurrent INTEGER,
+ xATSSystemOutputPower INTEGER,
+ xATSSystemOutputApparentPower INTEGER,
+ xATSSystemOutputPowerFactor INTEGER
+ }
+
+ xATSSystemOutputPhaseIndex OBJECT-TYPE
+ SYNTAX INTEGER{
+ phase1(1),
+ phase2(2),
+ phase3(3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Description of each system output phase utilized in this device."
+ ::= { xATSSystemOutputPhaseEntry 1 }
+
+ xATSSystemOutputVoltageLtoL OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Line-to-line system output voltage, measured in tenths of Volts, available at the circuit panel.
+ -1 if not available."
+ ::= { xATSSystemOutputPhaseEntry 2 }
+
+ xATSSystemOutputVoltageLtoN OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Line-to-neutral system output voltage, measured in tenths of Volts, available at the circuit panel.
+ -1 for a 3-wire service type or if not available."
+ ::= { xATSSystemOutputPhaseEntry 3 }
+
+ xATSSystemOutputPhaseCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "System load current per phase. Measured in Amps.
+ -1 if not available."
+ ::= { xATSSystemOutputPhaseEntry 4 }
+
+ xATSSystemOutputPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "System output power per phase. Measured in tenths of kW."
+ ::= { xATSSystemOutputPhaseEntry 5 }
+
+ xATSSystemOutputApparentPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "system output power per phase. Measured in tenths of kVA."
+ ::= { xATSSystemOutputPhaseEntry 6 }
+
+ xATSSystemOutputPowerFactor OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "indicates the power factor of the system output per phase.
+ A value of 100 representing a unity power factor (1.00).
+ Measured in hundredths."
+ ::= { xATSSystemOutputPhaseEntry 7 }
+
+-- xATS TestingStatus group
+
+xATSTestingStatusSelectTestProcess OBJECT-TYPE
+ SYNTAX INTEGER {
+ engineStartTest (1),
+ systemLoadTest (2),
+ generatorHoldTest (3),
+ cancelTest (4)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Type of tests that can be selected when no test has been scheduled.
+ engineStartTest and systemLoadTest may be selected when no tests
+ are running. Tests that are selected may be cancelled manually."
+ ::= { xATSTestingStatus 1 }
+
+xATSTestingStatusTestStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ noTestInProcess (1),
+ testPending (2),
+ startingEngine (3),
+ engineWarmingUp (4),
+ awaitingTransferToS2 (5),
+ testingWithLoad (6),
+ awaitingRetransferToS1 (7),
+ testingWithoutLoad (8),
+ stoppingEngine (9),
+ holdingOnGenerator (10)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The present system test status/state."
+ ::= { xATSTestingStatus 2 }
+
+xATSTestingStatusProfileWarmupTime OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The amount of time that the generator will warm up during a test.
+ This is portion of the test when the xATSTestingStatusTestStatus
+ OID returns the value engineWarmingUp.
+ Specified in seconds."
+ ::= { xATSTestingStatus 3 }
+
+xATSTestingStatusProfileLoadedTime OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The amount of time that ATS will apply the system load to the generator
+ during a system load test.
+ This is portion of the test when the xATSTestingStatusTestStatus
+ OID returns the value testingWithLoad.
+ Specified in minutes."
+ ::= { xATSTestingStatus 4 }
+
+xATSTestingStatusProfileUnloadedTime OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The amount of time that the generator will run following the warm up
+ portion of a start test, or the loaded portion of a load test.
+ This is portion of the test when the xATSTestingStatusTestStatus
+ OID returns the value testingWithoutLoad.
+ Specified in seconds."
+ ::= { xATSTestingStatus 5 }
+
+-- xATS TestingResults group
+
+xATSTestingResultsLastDateOfTest OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Date of the last test that was performed, either scheduled or manual.
+ Test results are available in the xATSTestingResultsLastResult OID.
+ Specified in the dd/mm/yyyy format, or 'none' if not available."
+ ::= { xATSTestingResults 1 }
+
+xATSTestingResultsLastResult OBJECT-TYPE
+ SYNTAX INTEGER {
+ startTestPassed (1),
+ loadTestPassed (2),
+ startSignalFailure (3),
+ failedGenNotInAuto (4),
+ failedGenEmerStop (5),
+ failedGenShutdown (6),
+ failedGenDidNotStart (7),
+ failedS2NeverGood (8),
+ genFailedDuringWarmup (9),
+ failureOnXferToS1 (10),
+ genFailedLoaded (11),
+ failureOnRexferToS2 (12),
+ genFailedToStop (13),
+ failedAtsInternalFault (14),
+ failedAtsNotInAuto (15),
+ cancelledManualTest (16),
+ cancelledScheduledTest (17)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The result of the last ATS/generator system test."
+ ::= { xATSTestingResults 2 }
+
+xATSTestingResultsTestLastTestTime OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Time of day at which the last test was performed, either scheduled or manual.
+ Test results are available in the xATSTestingResultsLastResult OID.
+ Specified in the hh:mm:ss format, or 'none' if not available."
+ ::= { xATSTestingResults 3 }
+
+xATSTestingResultsLastCrankDuration OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The time spent cranking the generator before it started during the last test.
+ Specified in seconds, or -1 if not available."
+ ::= { xATSTestingResults 4 }
+
+xATSTestingResultsLastWarmupDuration OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The time spent in the engineWarmingUp state during the last system test.
+ Specified in seconds, or -1 if not available."
+ ::= { xATSTestingResults 5 }
+
+xATSTestingResultsLastLoadedDuration OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The time spent in the testingWithLoad state during the last system test.
+ Specified in seconds, or -1 if not available."
+ ::= { xATSTestingResults 6 }
+
+xATSTestingResultsLastUnloadedDuration OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The time spent in the testingWithoutLoad state during the last system test.
+ Specified in seconds, or -1 if not available."
+ ::= { xATSTestingResults 7 }
+
+-- xATS TestingSchedule group
+
+xATSTestingScheduleFrequency OBJECT-TYPE
+ SYNTAX INTEGER {
+ never (1),
+ daily (2),
+ weekly (3),
+ monthly (4)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The frequency of running scheduled tests."
+ ::= { xATSTestingSchedule 1 }
+
+xATSTestingScheduleTestDay OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The desired day for the scheduled test. This object applies only
+ when the xATSTestingScheduleFrequency OID is set to weekly or monthly.
+ For weekly test frequency, the string is the day the test will be run.
+ For monthly test frequency, the string indicates the day,
+ and the instance within the month.
+ For example, for monthly frequency: 2nd sunday, 3rd monday, 4th tuesday,
+ for weekly frequency: sunday, monday, tuesday."
+ ::= { xATSTestingSchedule 2 }
+
+xATSTestingScheduleTestTime OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The time of day that the scheduled test will occur.
+ Specified in the format hh:mm."
+ ::= { xATSTestingSchedule 3 }
+
+xATSTestingScheduleTestWithLoadInterval OBJECT-TYPE
+ SYNTAX INTEGER {
+ applyLoadEveryTest (1),
+ neverApplyLoad (2),
+ applyLoadMonthly (3),
+ applyLoadMonthlyDetailed (4)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "This setting specifies which system tests should include applying the
+ load to the generator. The applyLoadMonthlyDetailed entry
+ in the list will apply load once, for each month represented in the
+ xATSTestingScheduleTestWithLoadSelectMonth OID."
+ ::= { xATSTestingSchedule 4 }
+
+xATSTestingScheduleTestWithLoadSelectMonth OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The detailed selection for testing with load on a month-by-month basis.
+ This object is applicable when the xATSTestingScheduleTestWithLoadInterval
+ is set to applyLoadMonthlyDetailed. Otherwise this selection will be ignored.
+ Format for this string is a comma-separated entry of months.
+ For example: Jan,Mar,Dec.
+ The string will return 'No Months Scheduled' if no months have been selected."
+ ::= { xATSTestingSchedule 5 }
+
+xATSTestingScheduleNextTestDate OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The date of the next scheduled test, in the format dd-mmm-yyyy."
+ ::= { xATSTestingSchedule 6 }
+
+-- xATSTestingSimulatePowerFail group
+
+xATSTestingSimulatePowerFailTest OBJECT-TYPE
+ SYNTAX INTEGER{
+ cancelSimulation (1),
+ fiveSecondsSimulation (2),
+ tenSecondsSimulation (3),
+ thirtySecondsSimulation (4),
+ oneMinuteSimulation (5),
+ threeMinutesSimulation (6),
+ fiveMinutesSimulation (7),
+ tenMinutesSimulation (8)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "This object executes a simulated power failure for the duration indicated.
+ Simulation can be aborted by selecting cancelSimulation."
+ ::= { xATSTestingSimulatePowerFail 1 }
+
+xATSTestingSimulatePowerFailTimeRemaining OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates the time remaining in seconds, for a simulated power failure.
+ a value of zero indicates that simulated power failure is not active."
+ ::= { xATSTestingSimulatePowerFail 2 }
+
+-- The xATS Input Contact group
+
+xATSInputContactNumContacts OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of contacts supported by the ATS."
+ ::= { xATSInputContacts 1 }
+
+xATSInputContactTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of input contact entries."
+ ::= { xATSInputContacts 2 }
+
+xATSInputContactTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF XATSContactEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of contacts supported by the ATS.
+ The number of entries is contained in the
+ xATSInputContactTableSize OID."
+ ::= { xATSInputContacts 3 }
+
+ xATSInputContactEntry OBJECT-TYPE
+ SYNTAX XATSContactEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A contact entry containing information for a given contact."
+ INDEX { xATSInputContactNumber }
+ ::= { xATSInputContactTable 1 }
+
+ XATSContactEntry ::=
+ SEQUENCE {
+ xATSInputContactNumber INTEGER,
+ xATSInputContactName DisplayString,
+ xATSInputContactNormalState INTEGER,
+ xATSInputContactCurrentState INTEGER
+ }
+
+ xATSInputContactNumber OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "An index identifying the contact on the ATS."
+ ::= { xATSInputContactEntry 1 }
+
+ xATSInputContactName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The description of the purpose/use of the contact."
+ ::= { xATSInputContactEntry 2 }
+
+ xATSInputContactNormalState OBJECT-TYPE
+ SYNTAX INTEGER {
+ open (1),
+ closed (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The normal operating position of the contact."
+ ::= { xATSInputContactEntry 3 }
+
+ xATSInputContactCurrentState OBJECT-TYPE
+ SYNTAX INTEGER {
+ open (1),
+ closed (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This value indicates the current state of the contact."
+ ::= { xATSInputContactEntry 4 }
+
+-- the xATS OutputRelays group
+
+ xATSOutputRelayNumRelays OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of output relays supported by the ATS."
+ ::= { xATSOutputRelays 1 }
+
+ xATSOutputRelayTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of output relay entries."
+ ::= { xATSOutputRelays 2 }
+
+ xATSOutputRelayTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF XATSOutputRelayEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of output relays supported by the ATS.
+ The number of entries is contained in the
+ xATSOutputRelayTableSize OID."
+ ::= { xATSOutputRelays 3 }
+
+ xATSOutputRelayEntry OBJECT-TYPE
+ SYNTAX XATSOutputRelayEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A output relay entry containing information for a given contact."
+ INDEX { xATSOutputRelayNumber }
+ ::= { xATSOutputRelayTable 1 }
+
+ XATSOutputRelayEntry ::=
+ SEQUENCE {
+ xATSOutputRelayNumber INTEGER,
+ xATSOutputRelayName DisplayString,
+ xATSOutputRelayNormalState INTEGER,
+ xATSOutputRelayCurrentState INTEGER
+ }
+
+ xATSOutputRelayNumber OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "An index identifying the output relay on the ATS."
+ ::= { xATSOutputRelayEntry 1 }
+
+ xATSOutputRelayName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The description of the purpose/use of the output relay."
+ ::= { xATSOutputRelayEntry 2 }
+
+ xATSOutputRelayNormalState OBJECT-TYPE
+ SYNTAX INTEGER {
+ open (1),
+ closed (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The normal operating position of the output relay."
+ ::= { xATSOutputRelayEntry 3 }
+
+ xATSOutputRelayCurrentState OBJECT-TYPE
+ SYNTAX INTEGER {
+ open (1),
+ closed (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This value indicates the current state of the output relay."
+ ::= { xATSOutputRelayEntry 4 }
+
+-- The xATS Generator Ident group
+
+xATSGeneratorIdentModelNumber OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A character string identifying the model number of the generator.
+ This value is set at the factory."
+ ::= { xATSGeneratorIdent 1 }
+
+xATSGeneratorIdentSerialNumber OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A character string identifying the serial number of the generator.
+ This value is set at the factory."
+ ::= { xATSGeneratorIdent 2 }
+
+xATSGeneratorIdentDateofManufacture OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A character string identifying when the generator was manufactured in mm/dd/yyyy format.
+ This value is set at the factory."
+ ::= { xATSGeneratorIdent 3 }
+
+xATSGeneratorIdentVoltageConfiguration OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The voltage for which the generator's alternator is designed.
+ Specified in Volts line-to-line."
+ ::= { xATSGeneratorIdent 4 }
+
+xATSGeneratorIdentMaxPowerRating OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The max power rating of the generator. Specified in kW."
+ ::= { xATSGeneratorIdent 5 }
+
+xATSGeneratorIdentAlternatorFrequency OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The frequency for which the generator's alternator is designed.
+ Specified in Hertz."
+ ::= { xATSGeneratorIdent 6 }
+
+-- The xATS Generator Status group
+
+xATSGeneratorStatusGeneratorName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The name or label for the generator connected to the source 2 of the ATS."
+ ::= { xATSGeneratorStatus 1 }
+
+xATSGeneratorStatusOperational OBJECT-TYPE
+ SYNTAX INTEGER{
+ nocomm (1),
+ off (2),
+ ready (3),
+ starting (4),
+ idle (5),
+ running (6),
+ normalStop (7),
+ emergencyStop (8),
+ notInAuto (9),
+ shutdown (10),
+ unknown (11)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The operational status of the generator. unavailable when unrecognized status is received."
+ ::= { xATSGeneratorStatus 2 }
+
+xATSGeneratorStatusModeSwitchPosition OBJECT-TYPE
+ SYNTAX INTEGER{
+ off (1),
+ manual (2),
+ automatic (3),
+ unknown (4)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The position of the generator's auto-mode switch.
+ In automatic mode, the generator is started and stopped via the
+ remote start contact, which has state indicated in the
+ xATSGeneratorStatusRemoteStart OID.
+ In manual mode generator start/stop control is via local command only.
+ Off prevents the generator from running."
+ ::= { xATSGeneratorStatus 3 }
+
+xATSGeneratorStatusRemoteStart OBJECT-TYPE
+ SYNTAX INTEGER{
+ stop (1),
+ run (2),
+ unknown (3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the generator's remote start contact, which is
+ provided as an output from the transfer switch to start/stop the
+ generator when in automatic mode."
+ ::= { xATSGeneratorStatus 4 }
+
+-- The xATS Generator Advanced Status group
+
+xATSGeneratorAdvStatusBatteryVoltage OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The voltage of the generator's starting battery.
+ Measured in tenths of VDC, or -1 if not available."
+ ::= { xATSGeneratorAdvStatus 1 }
+
+xATSGeneratorAdvStatusOilPressure OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The generator's engine oil pressure.
+ Measured in tenths of Psi or kPa, based on the
+ value of the xATSGeneratorSettingsMetricUnit OID,
+ or -1 if not available."
+ ::= { xATSGeneratorAdvStatus 2 }
+
+xATSGeneratorAdvStatusCoolantTemperature OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Current coolant temperature in the generator.
+ Measured in degrees Celsius or Fahrenheit, based on the
+ value of the xATSGeneratorSettingsMetricUnit OID,
+ or -1 if not available."
+ ::= { xATSGeneratorAdvStatus 3 }
+
+xATSGeneratorAdvStatusEngineRPM OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Current engine speed of the generator.
+ Measured in RPM, or -1 if not available."
+ ::= { xATSGeneratorAdvStatus 4 }
+
+xATSGeneratorAdvStatusOilLevel OBJECT-TYPE
+ SYNTAX INTEGER{
+ ok (1),
+ low (2),
+ unknown (3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates adequate oil level in the generator."
+ ::= { xATSGeneratorAdvStatus 5 }
+
+xATSGeneratorAdvStatusCoolantLevel OBJECT-TYPE
+ SYNTAX INTEGER{
+ ok (1),
+ low (2),
+ unknown (3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates adequate coolant level in the generator."
+ ::= { xATSGeneratorAdvStatus 6 }
+
+-- The xATS Generator Output group
+
+xATSGeneratorOutputFrequency OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The output frequency of the generator.
+ Measured in tenths of Hertz, or -1 if not avaialble."
+ ::= { xATSGeneratorOutput 1 }
+
+xATSGeneratorOutputTotalPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total output power of the generator.
+ Measured in tenths of tenths of kW, or -1 if not avaialble."
+ ::= { xATSGeneratorOutput 2 }
+
+xATSGeneratorOutputTotalApparentPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total output power of the generator.
+ Measured in tenths of kVA, or -1 if not avaialble."
+ ::= { xATSGeneratorOutput 3 }
+
+xATSGeneratorOutputTotalPowerFactor OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates the total load power factor of the generator.
+ A value of 100 representing a unity power factor (1.00),
+ or -1 when if not avaialble."
+ ::= { xATSGeneratorOutput 4 }
+
+xATSGeneratorOutputTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of generator output phase entries."
+ ::= { xATSGeneratorOutput 5 }
+
+ xATSGeneratorOutputTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF XATSGeneratorOutputPhaseEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of generator output table entries.
+ The number of entries is contained in the xATSGeneratorOutputTableSize OID."
+ ::= { xATSGeneratorOutput 6 }
+
+ xATSGeneratorOutputPhaseEntry OBJECT-TYPE
+ SYNTAX XATSGeneratorOutputPhaseEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An entry containing information applicable to a
+ particular generator output phase."
+ INDEX { xATSGeneratorOutputPhaseIndex }
+ ::= { xATSGeneratorOutputTable 1 }
+
+ XATSGeneratorOutputPhaseEntry ::= SEQUENCE {
+ xATSGeneratorOutputPhaseIndex INTEGER,
+ xATSGeneratorOutputVoltageLtoL INTEGER,
+ xATSGeneratorOutputVoltageLtoN INTEGER,
+ xATSGeneratorOutputPhaseCurrent INTEGER,
+ xATSGeneratorOutputPower INTEGER,
+ xATSGeneratorOutputApparentPower INTEGER,
+ xATSGeneratorOutputPowerFactor INTEGER
+ }
+
+ xATSGeneratorOutputPhaseIndex OBJECT-TYPE
+ SYNTAX INTEGER{
+ phase1(1),
+ phase2(2),
+ phase3(3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Description of each generator output phase utilized in this device."
+ ::= { xATSGeneratorOutputPhaseEntry 1 }
+
+ xATSGeneratorOutputVoltageLtoL OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Line-to-line generator output voltage.
+ Measured in Volts, or -1 if not available."
+ ::= { xATSGeneratorOutputPhaseEntry 2 }
+
+ xATSGeneratorOutputVoltageLtoN OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Line-to-neutral generator output voltage.
+ Measured in volts, or -1 if not avaialble."
+ ::= { xATSGeneratorOutputPhaseEntry 3 }
+
+ xATSGeneratorOutputPhaseCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Generator load current per phase.
+ Measured in Amps, or -1 if not avaialble."
+ ::= { xATSGeneratorOutputPhaseEntry 4 }
+
+ xATSGeneratorOutputPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Generator output power per phase.
+ Measured in tenths of kW, or -1 if not avaialble."
+ ::= { xATSGeneratorOutputPhaseEntry 5 }
+
+ xATSGeneratorOutputApparentPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Generator output power per phase.
+ Measured in tenths of kVA, or -1 if not available."
+ ::= { xATSGeneratorOutputPhaseEntry 6 }
+
+ xATSGeneratorOutputPowerFactor OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates the load power factor of the generator output per phase.
+ A value of 100 representing a unity power factor (1.00),
+ or -1 if not avaialble."
+ ::= { xATSGeneratorOutputPhaseEntry 7 }
+
+-- xATS Generator Settings group
+
+xATSGeneratorSettingsVoltageAdjust OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The voltage adjust of the generator.
+ Specified in volts line-to-line,
+ or -1 if not available."
+ ::= { xATSGeneratorSettings 1 }
+
+xATSGeneratorSettingsFrequencyAdjust OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The frequency adjust of the generator.
+ Specified in tenths of Hertz."
+ ::= { xATSGeneratorSettings 2 }
+
+xATSGeneratorSettingsStartDelay OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The delay, in seconds, after the remote run signal is activated
+ before the generator's engine will be cranked to start,
+ or -1 if not available."
+ ::= { xATSGeneratorSettings 3 }
+
+xATSGeneratorSettingsStopDelay OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The delay, in seconds, before the generator will stop
+ after the remote run signal is deactivated,
+ or -1 if not available."
+ ::= { xATSGeneratorSettings 4 }
+
+xATSGeneratorSettingsCrankCycleEnable OBJECT-TYPE
+ SYNTAX INTEGER{
+ disabled (1),
+ enabled (2),
+ unknown (3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "When Crank Cycle is enabled, the engine will be cranked up to the time
+ specified by the xATSGeneratorSettingsCrankTime OID.
+ If the generator's engine does not start, there will be a pause as
+ specified by the xATSGeneratorSettingsCrankRestTime OID before the
+ engine will be cranked again. This cycle is repeated as specified by
+ the xATSGeneratorSettingsNumberCrank OID.
+ When crank cycle is disabled, the generator's engine will be
+ cranked continuously until it starts."
+ ::= { xATSGeneratorSettings 5 }
+
+xATSGeneratorSettingsCrankTime OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The duration of engine cranking, in seconds, when starting the generator.
+ Applicable when the xATSGeneratorSettingsCrankCycleEnable OID is enabled.
+ -1 if not available."
+ ::= { xATSGeneratorSettings 6 }
+
+xATSGeneratorSettingsCrankRestTime OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The pause duration, in seconds, following an unsuccessful attempt to start the generator.
+ Applicable when the xATSGeneratorSettingsCrankCycleEnable OID is enabled.
+ -1 if not available."
+ ::= { xATSGeneratorSettings 7 }
+
+xATSGeneratorSettingsNumberCrank OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of failed crank attempts before giving up on starting the generator.
+ Applicable when the xATSGeneratorSettingsCrankCycleEnable OID is enabled.
+ -1 if not available."
+ ::= { xATSGeneratorSettings 8 }
+
+xATSGeneratorSettingsMetricUnit OBJECT-TYPE
+ SYNTAX INTEGER{
+ disabled (1),
+ enabled (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Specifies the use of metric units in generator related OIDs, as well
+ as on all other interfaces including the generator's local interface."
+ ::= { xATSGeneratorSettings 9 }
+
+-- xATS generator service group
+
+xATSGeneratorServiceTotalRunHoursLifetime OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Total time that the generator engine has been run,
+ over the life of the generator. Measured in hours.
+ -1 if not available."
+ ::= { xATSGeneratorService 1 }
+
+xATSGeneratorServiceEngineStartsLifetime OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Number of engine starts over the life of the generator.
+ -1 if not available."
+ ::= { xATSGeneratorService 2 }
+
+xATSGeneratorServiceTotalkWhLifetime OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Total kWh of operation over the life of the generator.
+ -1 if not available."
+ ::= { xATSGeneratorService 3 }
+
+xATSGeneratorServiceTotalRunHoursSinceMaintanence OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Total time that the generator engine has been run,
+ since last service maintenance. Measured in tenths of hours.
+ -1 if not available."
+ ::= { xATSGeneratorService 4 }
+
+xATSGeneratorServiceEngineStartsSinceMaintanence OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Number of engine starts since last service maintenance.
+ -1 if not available."
+ ::= { xATSGeneratorService 5 }
+
+xATSGeneratorServiceTotalkWhMaintanence OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Total kWh of operation since last service maintenance.
+ -1 if not available."
+ ::= { xATSGeneratorService 6 }
+
+xATSGeneratorServiceResetRecord OBJECT-TYPE
+ SYNTAX INTEGER{
+ yes (1),
+ no (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Resets the engine start counter, engine run-hours, and kWh values that have
+ accumulated in the generator since last maintenance.
+ Also, the last service date will be reset to the current system date, and
+ any service alarms will be cleared."
+ ::= { xATSGeneratorService 7 }
+
+xATSGeneratorServiceRecordResetDate OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Date at which the generator's service record was reset, in dd-mmm-yyyy format."
+ ::= { xATSGeneratorService 8 }
+
+xATSGeneratorServiceNextServiceDate OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Date at which the next generator service is due in dd-mmm-yyyy format.
+ Based on the xATSGeneratorServiceCalendarIntervalThreshold OID
+ or '' if the calander-based threshold is set to off."
+ ::= { xATSGeneratorService 9 }
+
+xATSGeneratorServiceRunHoursUntilServiceDate OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Runhours until the next generator service is due, in hours.
+ Based on the xATSGeneratorServiceRunHoursThreshold OID
+ or -1 if the runhour-based threshold is set to off."
+ ::= { xATSGeneratorService 10 }
+
+xATSGeneratorServiceRunHoursThreshold OBJECT-TYPE
+ SYNTAX INTEGER{
+ disabled (1),
+ runThreshold100Hours (2),
+ runThreshold150Hours (3),
+ runThreshold200Hours (4),
+ runThreshold250Hours (5),
+ runThreshold300Hours (6),
+ runThreshold400Hours (7),
+ runThreshold500Hours (8)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Runhour-based service interval. When the run-hours since
+ service surpasses this threshold, generator service is due."
+ ::= { xATSGeneratorService 11 }
+
+xATSGeneratorServiceCalendarIntervalThreshold OBJECT-TYPE
+ SYNTAX INTEGER{
+ disabled (1),
+ interval1month (2),
+ interval2month (3),
+ interval3month (4),
+ interval6month (5),
+ intervalyearly (6)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Calander-based service interval. When the next service date,
+ as indicated by the xATSGeneratorServiceNextServiceDate OID
+ is in the past, generator is due for service."
+ ::= { xATSGeneratorService 12 }
+
+-- The xATS Generator Fuel system group
+
+xATSGeneratorFuelSystemType OBJECT-TYPE
+ SYNTAX INTEGER{
+ diesel (1),
+ propane (2),
+ naturalGas (3),
+ unknown (4)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The type of fuel used by the generator."
+ ::= { xATSGeneratorFuelSystem 1 }
+
+xATSGeneratorFuelSystemTankSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Size of the generator's fuel tank.
+ Specified in gallons or liters, based on the value of the
+ xATSGeneratorSettingsMetricUnit OID, or -1 if not available."
+ ::= { xATSGeneratorFuelSystem 2 }
+
+xATSGeneratorFuelSystemFuelLevel OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Fuel remaining in the generator tank.
+ Measured in percent of tank fill, or -1 if if not available."
+ ::= { xATSGeneratorFuelSystem 3 }
+
+xATSGeneratorFuelSystemRuntimePower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The power value used in the runtime remaining calculation.
+ Measured in tenths of kW, or -1 if not available."
+ ::= { xATSGeneratorFuelSystem 4 }
+
+xATSGeneratorFuelSystemEstimatedRunTime OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "An estimate of available runtime for the generator, based on
+ available fuel as specified in the xATSGeneratorFuelSystemFuelLevel OID
+ and kW load as specified in the xATSGeneratorFuelSystemRuntimePower OID.
+ Measured in tenths of hours, or -1 if not available."
+ ::= { xATSGeneratorFuelSystem 5 }
+
+xATSGeneratorFuelSystemLowRunTimeThreshold OBJECT-TYPE
+ SYNTAX INTEGER{
+ disabled (1),
+ oneHour (2),
+ twoHours (3),
+ threeHours (4),
+ fourHours (5),
+ fiveHours (6),
+ sixHours (7),
+ twelveHours (8),
+ oneDay (9),
+ twoDays (10),
+ threeDays (11),
+ fourDays (12),
+ fiveDays (13),
+ sixDays (14),
+ sevenDays (15)
+
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Threshold below which a low runtime alarm will exist."
+ ::= { xATSGeneratorFuelSystem 6 }
+
+xATSGeneratorFuelSystemVeryLowRunTimeThreshold OBJECT-TYPE
+ SYNTAX INTEGER{
+ disabled (1),
+ oneHour (2),
+ twoHours (3),
+ threeHours (4),
+ fourHours (5),
+ fiveHours (6),
+ sixHours (7),
+ twelveHours (8),
+ oneDay (9),
+ twoDays (10),
+ threeDays (11),
+ fourDays (12),
+ fiveDays (13),
+ sixDays (14),
+ sevenDays (15)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Threshold below which a very low runtime alarm will exist."
+ ::= { xATSGeneratorFuelSystem 7 }
+
+xATSGeneratorFuelSystemLowFuelLevelThreshold OBJECT-TYPE
+ SYNTAX INTEGER (0..100)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Threshold below which a low fuel alarm will exist, with a value of 0 indicating disabled.
+ Specified as percent of tank fill."
+ ::= { xATSGeneratorFuelSystem 8 }
+
+xATSGeneratorFuelSystemVeryLowFuelLevelThreshold OBJECT-TYPE
+ SYNTAX INTEGER (0..100)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Threshold below which a very low fuel alarm will exist, with a value of 0 indicating disabled.
+ Specified as percent of tank fill."
+ ::= { xATSGeneratorFuelSystem 9 }
+
+-- the software group
+-- the powerNetSubAgent group
+-- the powerNetSoftwareSystem group
+
+powerNetSoftwareSystemDescription OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..79))
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A brief description of the PowerNet sub-agent."
+ ::= { powerNetSoftwareSystem 1 }
+
+powerNetSoftwareOid OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The object identifier of the PowerNet sub-agent."
+ ::= { powerNetSoftwareSystem 2 }
+
+-- powerNetSmuxPeer OBJECT IDENTIFIER ::= { powerNetSoftwareOid 1 }
+-- powerNetDPIPeer OBJECT IDENTIFIER ::= { powerNetSoftwareOid 2 }
+
+powerNetSoftwareSystemUpTime OBJECT-TYPE
+ SYNTAX TimeTicks
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The time that the sub-agent has been running."
+ ::= { powerNetSoftwareSystem 3 }
+
+
+-- powerNetSoftwareConfig group
+
+powerNetSoftwareTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of software modules supporting the UPS."
+ ::= { powerNetSoftwareConfig 1 }
+
+powerNetSoftwareTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SoftwareEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of the software monitoring the UPS."
+ ::= { powerNetSoftwareConfig 2 }
+
+powerNetSoftwareEntry OBJECT-TYPE
+ SYNTAX SoftwareEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An entry containing information on a software module."
+ INDEX { moduleNumber }
+ ::= { powerNetSoftwareTable 1 }
+
+SoftwareEntry ::=
+ SEQUENCE {
+ moduleNumber
+ INTEGER,
+ moduleName
+ DisplayString,
+ moduleVersion
+ DisplayString,
+ moduleDate
+ DisplayString
+ }
+
+moduleNumber OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index into the Software Entry Table"
+ ::= { powerNetSoftwareEntry 1 }
+
+moduleName OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..79))
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the software module."
+ ::= { powerNetSoftwareEntry 2 }
+
+moduleVersion OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..8))
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The version of the software module."
+ ::= { powerNetSoftwareEntry 3 }
+
+moduleDate OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..9))
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The date of the software module represented as mm-dd-yy."
+ ::= { powerNetSoftwareEntry 4 }
+
+
+-- the ups group
+-- the upsIdent group
+-- the upsBasicIdent
+
+upsBasicIdentModel OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The UPS model name (e.g. 'APC Smart-UPS 600')."
+ ::= { upsBasicIdent 1 }
+
+upsBasicIdentName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "An 8 byte ID string identifying the UPS. This object
+ can be set by the administrator."
+ ::= { upsBasicIdent 2 }
+
+
+-- the upsAdvIdent group
+
+upsAdvIdentFirmwareRevision OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The firmware revision of the UPS system's microprocessor."
+ ::= { upsAdvIdent 1 }
+
+upsAdvIdentDateOfManufacture OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The date when the UPS was manufactured in mm/dd/yy format."
+ ::= { upsAdvIdent 2 }
+
+upsAdvIdentSerialNumber OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "An 8-character string identifying the serial number of
+ the UPS internal microprocessor. This number is set at
+ the factory. NOTE: This number does NOT correspond to
+ the serial number on the rear of the UPS."
+ ::= { upsAdvIdent 3 }
+
+
+
+-- the upsBattery group
+-- the upsBasicBattery group
+
+upsBasicBatteryStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown(1),
+ batteryNormal(2),
+ batteryLow(3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the UPS batteries. A batteryLow(3)
+ value indicates the UPS will be unable to sustain the
+ current load, and its services will be lost if power is
+ not restored. The amount of run time in reserve at the
+ time of low battery can be configured by the
+ upsAdvConfigLowBatteryRunTime."
+ ::= { upsBasicBattery 1 }
+
+upsBasicBatteryTimeOnBattery OBJECT-TYPE
+ SYNTAX TimeTicks
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The elapsed time since the UPS has switched to battery
+ power."
+ ::= { upsBasicBattery 2 }
+
+upsBasicBatteryLastReplaceDate OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The date when the UPS system's batteries were last replaced
+ in mm/dd/yy format. For Smart-UPS models, this value
+ is originally set in the factory. When the UPS batteries
+ are replaced, this value should be reset by the administrator."
+ ::= { upsBasicBattery 3 }
+
+
+
+-- the upsAdvBattery group
+
+upsAdvBatteryCapacity OBJECT-TYPE
+ SYNTAX Gauge
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The remaining battery capacity expressed in
+ percent of full capacity."
+ ::= { upsAdvBattery 1 }
+
+upsAdvBatteryTemperature OBJECT-TYPE
+ SYNTAX Gauge
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The current internal UPS temperature expressed in
+ Celsius."
+ ::= { upsAdvBattery 2 }
+
+upsAdvBatteryRunTimeRemaining OBJECT-TYPE
+ SYNTAX TimeTicks
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The UPS battery run time remaining before battery
+ exhaustion."
+ ::= { upsAdvBattery 3 }
+
+upsAdvBatteryReplaceIndicator OBJECT-TYPE
+ SYNTAX INTEGER {
+ noBatteryNeedsReplacing(1),
+ batteryNeedsReplacing(2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Indicates whether the UPS batteries need replacing."
+ ::= { upsAdvBattery 4 }
+
+upsAdvBatteryNumOfBattPacks OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of external battery packs connected to the UPS. If
+ the UPS does not use smart cells then the agent reports
+ ERROR_NO_SUCH_NAME."
+ ::= { upsAdvBattery 5 }
+
+upsAdvBatteryNumOfBadBattPacks OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of external battery packs connected to the UPS that
+ are defective. If the UPS does not use smart cells then the
+ agent reports ERROR_NO_SUCH_NAME."
+ ::= { upsAdvBattery 6 }
+
+upsAdvBatteryNominalVoltage OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The nominal battery voltage in Volts."
+ ::= { upsAdvBattery 7 }
+
+upsAdvBatteryActualVoltage OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The actual battery bus voltage in Volts."
+ ::= { upsAdvBattery 8 }
+
+upsAdvBatteryCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The battery current in Amps."
+ ::= { upsAdvBattery 9 }
+
+upsAdvTotalDCCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total DC current in Amps."
+ ::= { upsAdvBattery 10 }
+
+
+-- the upsBasicInput group
+
+upsBasicInputPhase OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The current AC input phase."
+ ::= { upsBasicInput 1 }
+
+
+-- the upsAdvInput group
+
+upsAdvInputLineVoltage OBJECT-TYPE
+ SYNTAX Gauge
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The current utility line voltage in VAC."
+ ::= { upsAdvInput 1 }
+
+upsAdvInputMaxLineVoltage OBJECT-TYPE
+ SYNTAX Gauge
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum utility line voltage in VAC over the
+ previous 1 minute period."
+ ::= { upsAdvInput 2 }
+
+upsAdvInputMinLineVoltage OBJECT-TYPE
+ SYNTAX Gauge
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The minimum utility line voltage in VAC over the
+ previous 1 minute period."
+ ::= { upsAdvInput 3 }
+
+upsAdvInputFrequency OBJECT-TYPE
+ SYNTAX Gauge
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The current input frequency to the UPS system in Hz."
+ ::= { upsAdvInput 4 }
+
+
+upsAdvInputLineFailCause OBJECT-TYPE
+ SYNTAX INTEGER {
+ noTransfer(1),
+ highLineVoltage(2),
+ brownout(3),
+ blackout(4),
+ smallMomentarySag(5),
+ deepMomentarySag(6),
+ smallMomentarySpike(7),
+ largeMomentarySpike(8),
+ selfTest(9),
+ rateOfVoltageChnage(10)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The reason for the occurrence of the last transfer to UPS
+ battery power. The variable is set to:
+ - noTransfer(1) -- if there is no transfer yet.
+ - highLineVoltage(2) -- if the transfer to battery is caused
+ by an over voltage greater than the high transfer voltage.
+ - brownout(3) -- if the duration of the outage is greater than
+ five seconds and the line voltage is between 40% of the
+ rated output voltage and the low transfer voltage.
+ - blackout(4) -- if the duration of the outage is greater than five
+ seconds and the line voltage is between 40% of the rated
+ output voltage and ground.
+ - smallMomentarySag(5) -- if the duration of the outage is less
+ than five seconds and the line voltage is between 40% of the
+ rated output voltage and the low transfer voltage.
+ - deepMomentarySag(6) -- if the duration of the outage is less
+ than five seconds and the line voltage is between 40% of the
+ rated output voltage and ground. The variable is set to
+ - smallMomentarySpike(7) -- if the line failure is caused by a
+ rate of change of input voltage less than ten volts per cycle.
+ - largeMomentarySpike(8) -- if the line failure is caused by
+ a rate of change of input voltage greater than ten volts per cycle.
+ - selfTest(9) -- if the UPS was commanded to do a self test.
+ - rateOfVoltageChange(10) -- if the failure is due to the rate of change of
+ the line voltage."
+ ::= { upsAdvInput 5 }
+
+
+-- the upsBasicOutput group
+
+upsBasicOutputStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown(1),
+ onLine(2),
+ onBattery(3),
+ onSmartBoost(4),
+ timedSleeping(5),
+ softwareBypass(6),
+ off(7),
+ rebooting(8),
+ switchedBypass(9),
+ hardwareFailureBypass(10),
+ sleepingUntilPowerReturn(11),
+ onSmartTrim(12)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The current state of the UPS. If the UPS is unable
+ to determine the state of the UPS this variable is set
+ to unknown(1)."
+ ::= { upsBasicOutput 1 }
+
+upsBasicOutputPhase OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The current output phase."
+ ::= { upsBasicOutput 2 }
+
+
+-- the upsAdvOutput group
+
+upsAdvOutputVoltage OBJECT-TYPE
+ SYNTAX Gauge
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The output voltage of the UPS system in VAC."
+ ::= { upsAdvOutput 1 }
+
+upsAdvOutputFrequency OBJECT-TYPE
+ SYNTAX Gauge
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The current output frequency of the UPS system in Hz."
+ ::= { upsAdvOutput 2 }
+
+upsAdvOutputLoad OBJECT-TYPE
+ SYNTAX Gauge
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The current UPS load expressed in percent
+ of rated capacity."
+ ::= { upsAdvOutput 3 }
+
+upsAdvOutputCurrent OBJECT-TYPE
+ SYNTAX Gauge
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The current in amperes drawn by the load on the UPS."
+ ::= { upsAdvOutput 4 }
+
+
+-- the upsBasicConfig group
+
+upsBasicConfigNumDevices OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of devices that are plugged into the UPS."
+ ::= { upsBasicConfig 1 }
+
+upsBasicConfigDeviceTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF UpsBasicConfigDeviceEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of devices that are plugged into the UPS.
+ The number of entries is given by the value of
+ upsBasicConfigNumDevices."
+ ::= { upsBasicConfig 2 }
+
+upsBasicConfigDeviceEntry OBJECT-TYPE
+ SYNTAX UpsBasicConfigDeviceEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The devices plugged in to the UPS."
+ INDEX { deviceIndex }
+ ::= { upsBasicConfigDeviceTable 1 }
+
+UpsBasicConfigDeviceEntry ::=
+ SEQUENCE {
+ deviceIndex
+ INTEGER,
+ deviceName
+ DisplayString,
+ vaRating
+ INTEGER,
+ acceptThisDevice
+ INTEGER
+ }
+
+deviceIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index of the device that is plugged into the UPS."
+ ::= { upsBasicConfigDeviceEntry 1 }
+
+deviceName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The name/description of the device plugged into the UPS."
+ ::= { upsBasicConfigDeviceEntry 2 }
+
+vaRating OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The volt-amp rating of the device plugged into the UPS."
+ ::= { upsBasicConfigDeviceEntry 3 }
+
+acceptThisDevice OBJECT-TYPE
+ SYNTAX INTEGER {
+ yes(1),
+ no(2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "An entry is added if yes, the entry is deleted if no."
+ ::= { upsBasicConfigDeviceEntry 4 }
+
+
+
+
+-- the upsAdvConfig group
+
+upsAdvConfigRatedOutputVoltage OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The nominal output voltage from the UPS in VAC.
+
+ For a list of allowed values supported by your UPS model,
+ see the UPS User's Manual.
+
+ If a value other than a supported value is provided in a
+ set request, the UPS interprets it as the next lower
+ acceptable value. If the provided value is lower than
+ the lowest acceptable value, the lowest acceptable
+ value is used."
+ ::= { upsAdvConfig 1 }
+
+upsAdvConfigHighTransferVolt OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum line voltage in VAC allowed before the
+ UPS system transfers to battery backup.
+
+ For a list of allowed values supported by your UPS model,
+ see the UPS User's Manual.
+
+ If a value other than a supported value is provided in a
+ set request, the UPS interprets it as a the next higher
+ acceptable value. If the provided value is higher than
+ the highest acceptable value, the highest acceptable
+ value is used."
+ ::= { upsAdvConfig 2 }
+
+upsAdvConfigLowTransferVolt OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The minimum line voltage in VAC allowed before the
+ UPS system transfers to battery backup.
+
+ For a list of allowed values supported by your UPS model,
+ see the UPS User's Manual.
+
+ If a value other than a supported value is provided in a
+ set request, the UPS interprets it as the next lower
+ acceptable value. If the provided value is lower than
+ the lowest acceptable value, the lowest acceptable
+ value is used."
+ ::= { upsAdvConfig 3 }
+
+upsAdvConfigAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ timed(1),
+ atLowBattery(2),
+ never(3),
+ mute(4)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "A flag indicating how the UPS should handle audible
+ line fail alarms:
+ timed(1): UPS alarm will sound after a preset timed duration starting
+ from the line fail condition (see OID upsAdvConfigAlarmTimer for the
+ alarm timer value)
+ atLowBattery(2): UPS alarm will sound when the UPS has reached a Low
+ Battery condition during a line fail
+ never(3): Disables the UPS audible alarm
+ mute(4): Mutes the current alarm for some UPSs only when it is in an
+ alarm state and will return to the previously configured option when
+ the UPS recovers from the alarm condition"
+ ::= { upsAdvConfig 4 }
+
+upsAdvConfigAlarmTimer OBJECT-TYPE
+ SYNTAX TimeTicks
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The time after initial line failure at which the UPS
+ begins emitting audible alarms (beeping). This timer is
+ observed only if the value of extControlAlarm is timed(2).
+ Allowed values are 0 or 30 seconds.
+
+ If a value other than a supported value is provided in a
+ set request, the UPS interprets it as a the next lower
+ acceptable value. If the provided value is lower than
+ the lowest acceptable value, the lowest acceptable
+ value is used."
+ ::= { upsAdvConfig 5 }
+
+upsAdvConfigMinReturnCapacity OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The minimum battery capacity required before the UPS will
+ return from a low battery shutdown condition. The capacity is
+ measured from 0% battery capacity (or Low Battery) as a percent
+ of full capacity (100%). In other words, the UPS will not re-energize
+ the output until the battery has charged so that its' capacity is equal
+ to this value.
+
+ For a list of allowed values supported by your UPS model,
+ see the UPS User's Manual.
+
+ If a value other than a supported value is provided in a
+ set request, the UPS interprets it as a the next higher
+ acceptable value. If the provided value is higher than
+ the highest acceptable value, the highest acceptable
+ value is used."
+ ::= { upsAdvConfig 6 }
+
+upsAdvConfigSensitivity OBJECT-TYPE
+ SYNTAX INTEGER {
+ auto(1),
+ low(2),
+ medium(3),
+ high(4)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The sensitivity of the UPS to utility line abnormalities
+ or noises."
+ ::= { upsAdvConfig 7 }
+
+upsAdvConfigLowBatteryRunTime OBJECT-TYPE
+ SYNTAX TimeTicks
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The desired run time of the UPS, in seconds, once the
+ low battery condition is reached. During this time the UPS will
+ produce a constant warning tone which can not be disabled.
+
+ For a list of allowed values supported by your UPS model,
+ see the UPS User's Manual.
+
+ If a value other than a supported value is provided in a set
+ request, the UPS interprets the value as the next higher
+ acceptable value. If the provided value is higher than the
+ highest acceptable value, the highest acceptable value is used."
+ ::= { upsAdvConfig 8 }
+
+upsAdvConfigReturnDelay OBJECT-TYPE
+ SYNTAX TimeTicks
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The delay in seconds after utility line power returns
+ before the UPS will turn on. This value is also used
+ when the UPS comes out of a reboot and before the UPS
+ wakes up from 'sleep' mode.
+
+ For a list of allowed values supported by your UPS model,
+ see the UPS User's Manual.
+
+ If a value other than a supported value is provided in a
+ set request, the UPS interprets it as a the next higher
+ acceptable value. If the provided value is higher than
+ the highest acceptable value, the highest acceptable
+ value is used."
+ ::= { upsAdvConfig 9 }
+
+upsAdvConfigShutoffDelay OBJECT-TYPE
+ SYNTAX TimeTicks
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The delay in seconds the UPS remains on after being told
+ to turn off.
+
+ For a list of allowed values supported by your UPS model,
+ see the UPS User's Manual.
+
+ If a value other than a supported value is provided in a
+ set request, the UPS interprets it as a the next higher
+ acceptable value. If the provided value is higher than
+ the highest acceptable value, the highest acceptable
+ value is used."
+ ::= { upsAdvConfig 10 }
+
+upsAdvConfigUpsSleepTime OBJECT-TYPE
+ SYNTAX TimeTicks
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The time in seconds for the UPS to go to 'sleep' when
+ instructed. When in sleep mode, the UPS will not provide
+ output power regardless of the input line state. Once the
+ specified time has elapsed, output power will be restored.
+
+ This is a configuration setting. The UPS will not go to
+ sleep until told to do so by the manager from a management
+ station.
+
+ Any input value is allowed, however the UPS only recognizes
+ 1/10 of an hour increments. The provided value will be
+ rounded to the closest 1/10 of an hour with one exception:
+ Any value entered between 1 and 540 seconds will be rounded
+ to 360 seconds (or 6 minutes)."
+ ::= { upsAdvConfig 11 }
+
+
+upsAdvConfigSetEEPROMDefaults OBJECT-TYPE
+ SYNTAX INTEGER {
+ noSetEEPROMDefaults(1),
+ setEEPROMDefaults(2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "WRITE: Resets the UPS EEPROM variables to default values.
+ READ: returns 0"
+ ::= { upsAdvConfig 12 }
+
+upsAdvConfigDipSwitchSetting OBJECT-TYPE
+ SYNTAX SEQUENCE OF UpsAdvConfigDipSwitchEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Current settings of UPS dip switches."
+ ::= { upsAdvConfig 13 }
+
+upsAdvConfigDipSwitchEntry OBJECT-TYPE
+ SYNTAX UpsAdvConfigDipSwitchEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The current setting of one dip switch."
+ INDEX { dipSwitchIndex }
+ ::= { upsAdvConfigDipSwitchSetting 1 }
+
+UpsAdvConfigDipSwitchEntry ::=
+ SEQUENCE {
+ dipSwitchIndex
+ INTEGER,
+ dipSwitchStatus
+ INTEGER
+ }
+
+dipSwitchIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index of a UPS dip switch."
+ ::= { upsAdvConfigDipSwitchEntry 1 }
+
+dipSwitchStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ on(1),
+ off(2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The setting of a UPS dip switch."
+ ::= { upsAdvConfigDipSwitchEntry 2 }
+
+upsAdvConfigBattExhaustThresh OBJECT-TYPE
+ SYNTAX TimeTicks
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The number of seconds prior to battery exhaustion when the
+ UPS will switch off power to its load."
+ ::= { upsAdvConfig 14 }
+
+upsAdvConfigPassword OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The password entered at the UPS front panel to enable local
+ configuration of the EEProm. If the password is disabled or
+ is not supported, then the agent returns a null string."
+ ::= { upsAdvConfig 15 }
+
+upsAdvConfigAllowedSetTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ApcUpsConfigEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The table listing the allowed values for all discrete
+ configurable UPS variables."
+ ::= { upsAdvConfig 16 }
+
+apcUpsConfigEntry OBJECT-TYPE
+ SYNTAX ApcUpsConfigEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The table entry for a configurable UPS variable."
+ INDEX { apcUpsConfigFieldIndex }
+ ::= { upsAdvConfigAllowedSetTable 1 }
+
+ApcUpsConfigEntry ::= SEQUENCE {
+ apcUpsConfigFieldIndex INTEGER,
+ apcUpsConfigFieldOID OBJECT IDENTIFIER,
+ apcUpsConfigFieldValueRange DisplayString
+ }
+
+apcUpsConfigFieldIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to an eeprom field entry."
+ ::= { apcUpsConfigEntry 1 }
+
+apcUpsConfigFieldOID OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The OID of the current configurable value."
+ ::= { apcUpsConfigEntry 2 }
+
+apcUpsConfigFieldValueRange OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The discrete set of allowed values of a configurable
+ register. Individual values are delimited by a comma."
+ ::= { apcUpsConfigEntry 3 }
+
+upsAdvConfigBattCabAmpHour OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Configure settings of UPS battery cabinet amp hour setting."
+ ::= { upsAdvConfig 17 }
+
+upsAdvConfigPositionSelector OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown (1),
+ rack (2),
+ tower (3)
+ }
+
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Configure UPS position selector. If the UPS doesn't
+ support this configuration it will report unknown (1).
+ The positions are either rack (2) for rack mounted or
+ tower (3) for tower unit."
+ ::= { upsAdvConfig 18 }
+
+upsAdvConfigOutputFreqRange OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown (1),
+ freqRangeAUTO (2),
+ freqRange60Var1 (3),
+ freqRange60Var3 (4),
+ freqRange50Var1 (5),
+ freqRange50Var3 (6),
+ freqRange60Var10 (7),
+ freqRange50Var10 (8)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Configure the output frequency tolerance range.
+ unknown(1) indicates the output frequency is unknown.
+ freqRangeAUTO(2) configure the output frequency range for automatic.
+ freqRange60Var1(3) configure the output frequency range for 60 +/- 0.1 Hz
+ freqRange60Var3(4) configure the output frequency range for 60 +/- 3.0 Hz
+ freqRange50Var1(5) configure the output frequency range for 50 +/- 0.1 Hz
+ freqRange50Var3(6) configure the output frequency range for 50 +/- 3.0 Hz
+ freqRange60Var10(7) configure the output frequency range for 60 +/- 10 Hz
+ freqRange50Var10(8) configure the output frequency range for 50 +/- 10 Hz"
+ ::= { upsAdvConfig 19 }
+
+upsAdvConfigUPSFail OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown (1),
+ gotoBypass (2),
+ dropLoad (3)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Configure the UPS fail action. If UPS fails,
+ and frequency or voltage is out of range it will either
+ GotoBypass (2) or DropLoad (3). This OID will report
+ unknown (1) if it is not supported feature or option."
+ ::= { upsAdvConfig 20 }
+
+upsAdvConfigAlarmRedundancy OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Configure settings of UPS alarm if the redundancy is
+ under the current redundancy. Use -1 for never."
+ ::= { upsAdvConfig 21 }
+
+upsAdvConfigAlarmLoadOver OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Configure settings of UPS alarm if the load is
+ over the current load in kVA. Use -1 for never."
+ ::= { upsAdvConfig 22 }
+
+upsAdvConfigAlarmRuntimeUnder OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Configure settings of UPS alarm if the runtime is
+ under the current time of minutes. Use -1 for never."
+ ::= { upsAdvConfig 23 }
+
+upsAdvConfigVoutReporting OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown (1),
+ voutAUTO (2),
+ vout208 (3),
+ vout240 (4)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Configure the way the UPS scales its output voltage readings.
+ unknown(1) indicates the Vout Reporting is unknown.
+ voutAUTO(2) configure the Vout Reporting for automatic scalling.
+ vout208(3) configure the Vout Reporting for 208 Volts.
+ vout240(4) configure the Vout Reporting for 240 Volts."
+ ::= { upsAdvConfig 24 }
+
+upsAdvConfigNumExternalBatteries OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Configure the number of external batteries connected to the UPS."
+ ::= { upsAdvConfig 25 }
+
+upsAdvConfigSimpleSignalShutdowns OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown (1),
+ disabled (2),
+ enabled (3)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Configure Simple Signal shutdown commands from the Simple Signal
+ port to be issued to the UPS.
+ unknown(1) indicates the Simple Signal Shutdown setting is unknown.
+ disabled(2) configure to disable Simple Signal Shutdowns.
+ enabled(3) configure to enable Simple Signal Shutdowns."
+ ::= { upsAdvConfig 26 }
+
+
+-- the upsSyncCtrlGroupConfig group
+
+upsSCGMembershipGroupNumber OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The SCG Membership Group number (MGN) is a 16-bit number allowing
+ up to 65534 separate groups that can be identified and distinguished
+ per IP subnet. Zero and 65535 are not used. The MGN is used in all
+ communication between members of the SCG and a Network Management Card
+ (NMC) will listen and only respond to commands sent to it using its
+ configured SCG ID."
+ ::= { upsSyncCtrlGroupConfig 1 }
+
+upsSCGActiveMembershipStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ enabledSCG (1),
+ disabledSCG (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Membership in the configured SCG can be enabled and
+ disabled. If an NMC is configured for an SCG, but
+ has its membership disabled, all synchronized control commands
+ received will be ignored."
+ ::= { upsSyncCtrlGroupConfig 2 }
+
+upsSCGPowerSynchronizationDelayTime OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The Power Synchronization Delay Time (PSD) setting is the maximum
+ number of seconds an SCG Initiator will wait for all SCG members to
+ recover utility power before completing the reboot sequence of a
+ reboot or sleep command. If all SCG members are ready to proceed,
+ no additional delay is introduced."
+ ::= { upsSyncCtrlGroupConfig 3 }
+
+upsSCGReturnBatteryCapacityOffset OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "A reboot command uses the Initiator�s Return battery Capacity (RBC) to control
+ when the SCG completes this operation. In a Normal Control Operation (NCC) the
+ UPS will only complete the reboot if RBC is reached. Due to normal battery
+ charge rate variations it may be desirable for the Followers to complete the
+ reboot if they are within some range of the Initiator�s RBC when the Initiator
+ is prepared (charged to RBC) to complete the reboot. The Return Battery
+ Capacity Offset (RBCO) defines a percent battery capacity subtracted from an
+ RBC above which a Follower�s battery must be charged for it to complete a
+ reboot. For example, if the Initiator�s RBC is 50% and the Initiator�s RBCO is
+ 5% then a Follower�s battery capacity is within range if it is greater or equal
+ to 45% (50% - 5%) at the time when the Initiator tries to complete the reboot
+ command. The default RBCO is 10%. "
+ ::= { upsSyncCtrlGroupConfig 4 }
+
+upsSCGMultiCastIP OBJECT-TYPE
+ SYNTAX IpAddress
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The MultiCast IP address of the SCG Group."
+ ::= { upsSyncCtrlGroupConfig 5 }
+
+-- the upsSyncCtrlGroupStatus group
+
+upsSCGNumOfGroupMembers OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of active, communicating members in the Sync Control Group (SCG).
+ This variable indicates the number of rows in the SCG Status Table."
+ ::= { upsSyncCtrlGroupStatus 1 }
+
+-- Sync Control Group Status Table
+
+upsSCGStatusTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF UpsSCGStatusEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of SCG status table entries. The number of entries
+ is given by the value of upsSCGNumOfGroupMembers."
+ ::= { upsSyncCtrlGroupStatus 2 }
+
+ upsSCGStatusEntry OBJECT-TYPE
+ SYNTAX UpsSCGStatusEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An entry containing information applicable to a
+ particular SCG Member."
+ INDEX { upsSCGStatusTableIndex }
+ ::= { upsSCGStatusTable 1 }
+
+ UpsSCGStatusEntry ::= SEQUENCE {
+ upsSCGStatusTableIndex INTEGER,
+ upsSCGMemberIP IpAddress,
+ upsSCGACInputStatus INTEGER,
+ upsSCGACOutputStatus INTEGER
+ }
+
+ upsSCGStatusTableIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index of a status entry for an active, communicating SCG member."
+ ::= { upsSCGStatusEntry 1 }
+
+ upsSCGMemberIP OBJECT-TYPE
+ SYNTAX IpAddress
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The IP address of an active, communicating SCG Member."
+ ::= { upsSCGStatusEntry 2 }
+
+ upsSCGACInputStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ acInGood(1),
+ acInBad(2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID indicates the AC Input Status of the SCG Member.
+ acInGood(1) indicates the AC Input is within tolerance.
+ acInBad(2) indicates the AC Input is not within tolerance."
+ ::= { upsSCGStatusEntry 3 }
+
+ upsSCGACOutputStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ acOutOn(1),
+ acOutOff(2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID indicates the AC Output Status of the SCG Member.
+ acOutOn(1) indicates the UPS output is providing power to the load.
+ acOutOff(2) indicates the UPS output is not providing power to the load. "
+ ::= { upsSCGStatusEntry 4 }
+
+-- the upsBasicState group
+
+upsBasicStateOutputState OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "An ASCII string containing the 64 flags representing
+ the current state(s) of the UPS. If the Network Card
+ is unable to determine the state of the UPS, this
+ variable is set to �UNKNOWN�.
+
+ The flags are numbered 1 to 64, read from left to
+ right. The flags are defined as follows:
+
+ Flag 1: Abnormal Condition Present
+ Flag 2: On Battery
+ Flag 3: Low Battery
+ Flag 4: On Line
+
+ Flag 5: Replace Battery
+ Flag 6: Serial Communication Established
+ Flag 7: AVR Boost Active*
+ Flag 8: AVR Trim Active*
+
+ Flag 9: Overload
+ Flag 10: Runtime Calibration
+ Flag 11: Batteries Discharged
+ Flag 12: Manual Bypass
+
+ Flag 13: Software Bypass
+ Flag 14: In Bypass due to Internal Fault
+ Flag 15: In Bypass due to Supply Failure*
+ Flag 16: In Bypass due to Fan Failure*
+
+ Flag 17: Sleeping on a Timer
+ Flag 18: Sleeping until Utility Power Returns
+ Flag 19: On
+ Flag 20: Rebooting
+
+ Flag 21: Battery Communication Lost*
+ Flag 22: Graceful Shutdown Initiated
+ Flag 23: Smart Boost or Smart Trim Fault*
+ Flag 24: Bad Output Voltage*
+
+ Flag 25: Battery Charger Failure*
+ Flag 26: High Battery Temperature
+ Flag 27: Self Test In Progress
+ Flag 28: Low Battery / On Battery
+
+ Flag 29: Graceful Shutdown Issued by Upstream Device
+ Flag 30: Graceful Shutdown Issued by Downstream Device
+ Flag 31: No Batteries Attached*
+ Flag 32: Synchronized command is in progress
+
+ Flag 33: <Not Used>
+ Flag 34: <Not Used>
+ Flag 35: <Not Used>
+ Flag 36: <Not Used>
+
+ Flag 37: <Not Used>
+ Flag 38: <Not Used>
+ Flag 39: <Not Used>
+ Flag 40: <Not Used>
+
+ Flag 41: <Not Used>
+ Flag 42: <Not Used>
+ Flag 43: <Not Used>
+ Flag 44: <Not Used>
+
+ Flag 45: <Not Used>
+ Flag 46: <Not Used>
+ Flag 47: <Not Used>
+ Flag 48: <Not Used>
+
+ Flag 49: <Not Used>
+ Flag 50: <Not Used>
+ Flag 51: <Not Used>
+ Flag 52: <Not Used>
+
+ Flag 53: <Not Used>
+ Flag 54: <Not Used>
+ Flag 55: <Not Used>
+ Flag 56: <Not Used>
+
+ Flag 57: <Not Used>
+ Flag 58: <Not Used>
+ Flag 59: <Not Used>
+ Flag 60: <Not Used>
+
+ Flag 61: <Not Used>
+ Flag 62: <Not Used>
+ Flag 63: <Not Used>
+ Flag 64: <Not Used>"
+
+ ::= { upsBasicState 1 }
+
+-- the upsAdvState group
+
+upsAdvStateAbnormalConditions OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "An ASCII string containing the 32 flags representing
+ the current active UPS faults. If the Network Card
+ is unable to determine the values of the flags, this
+ variable is set to �UNKNOWN�. If this variable is not
+ supported by the connected UPS, this variable is set to
+ �NOT SUPPORTED�.
+
+ The flags are numbered from 1 to 32, and read from left to
+ right. The flags are defined as follows:
+
+ Flag 1: Power Module Failure
+ Flag 2: Main Intelligence Module Failure
+ Flag 3: Redundant Intelligence Module Failure
+ Flag 4: Battery Failure
+
+ Flag 5: Load(kVA) Alarm Threshold Violation
+ Flag 6: Redundancy Lost
+ Flag 7: Redundancy Below Alarm Threshold
+ Flag 8: Bypass notin Range; Either Frequency or Voltage
+
+ Flag 9: Bypass Contactor Stuck in Bypass Condition
+ Flag 10: Bypass Contactor Stuck in On-Line Condition
+ Flag 11: In Bypass due to an Internal Fault
+ Flag 12: In Bypass due to an Overload
+
+ Flag 13: In Maintanence Bypass
+ Flag 14: Input Circuit Braker Tripped Open
+ Flag 15: System Level Fan Failure
+ Flag 16: Redundant Intelligent Module in Control
+
+ Flag 17: IIC Inter-Module Communication Failure
+ Flag 18: No Working Power Modules
+ Flag 19: Load Shutdown From Bypass; Input Frequency
+ Flag 20: Runtime Below Alarm Threshold
+
+ Flag 21: Extended Run Frame Fault
+ Flag 22: Output Voltage out of Range
+ Flag 23: UPS Not Synchronized
+ Flag 24: No Batteries Installed
+
+ Flag 25: Battery Voltage High
+ Flag 26: UPS Specific Fault Detected
+ Flag 27: Site Wiring Fault
+ Flag 28: Backfeed Protection Relay Opened
+
+ Flag 29: <Not Used>
+ Flag 30: <Not Used>
+ Flag 31: <Not Used>
+ Flag 32: <Not Used>"
+ ::= { upsAdvState 1 }
+
+upsAdvStateSymmetra3PhaseSpecificFaults OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "An ASCII string containing the 64 flags representing
+ the current active UPS specific faults for the Symmetra
+ 3-Phase UPS models. If the Network Card is unable to
+ determine the values of the flags, this variable is set
+ to �UNKNOWN�. If the connected UPS does not use this
+ variable, it is set to �NOT SUPPORTED�.
+
+ The flags are numbered from 1 to 64, and read from left
+ to right. The bits are defined as follows:
+
+ Flag 1: External Switch Gear Failure
+ Flag 2: External Transformer Over Temperature
+ Flag 3: External DC Circuit Breaker Tripped
+ Flag 4: System Power Supply Failure
+
+ Flag 5: Battery Monitor Card Failure
+ Flag 6: Battery Monitor Card Removed
+ Flag 7: XR Communication Card Failure
+ Flag 8: XR Communication Card Removed
+
+ Flag 9: External Switch Gear Monitoring Card Failure
+ Flag 10: External Switch Gear Monitoring Card Removed
+ Flag 11: Internal DC Circiut Breaker Tripped
+ Flag 12: Static Bypass Switch Failure
+
+ Flag 13: System EEPROM Removed
+ Flag 14: System EEPROM Failure
+ Flag 15: UPS in Forced Bypass
+ Flag 16: <Not Used>
+
+ Flag 17: <Not Used>
+ Flag 18: <Not Used>
+ Flag 19: <Not Used>
+ Flag 20: <Not Used>
+
+ Flag 21: <Not Used>
+ Flag 22: <Not Used>
+ Flag 23: <Not Used>
+ Flag 24: <Not Used>
+
+ Flag 25: <Not Used>
+ Flag 26: <Not Used>
+ Flag 27: <Not Used>
+ Flag 28: <Not Used>
+
+ Flag 29: <Not Used>
+ Flag 30: <Not Used>
+ Flag 31: <Not Used>
+ Flag 32: <Not Used>
+
+ Flag 33: <Not Used>
+ Flag 34: <Not Used>
+ Flag 35: <Not Used>
+ Flag 36: <Not Used>
+
+ Flag 37: <Not Used>
+ Flag 38: <Not Used>
+ Flag 39: <Not Used>
+ Flag 40: <Not Used>
+
+ Flag 41: <Not Used>
+ Flag 42: <Not Used>
+ Flag 43: <Not Used>
+ Flag 44: <Not Used>
+
+ Flag 45: <Not Used>
+ Flag 46: <Not Used>
+ Flag 47: <Not Used>
+ Flag 48: <Not Used>
+
+ Flag 49: <Not Used>
+ Flag 50: <Not Used>
+ Flag 51: <Not Used>
+ Flag 52: <Not Used>
+
+ Flag 53: <Not Used>
+ Flag 54: <Not Used>
+ Flag 55: <Not Used>
+ Flag 56: <Not Used>
+
+ Flag 57: <Not Used>
+ Flag 58: <Not Used>
+ Flag 59: <Not Used>
+ Flag 60: <Not Used>
+
+ Flag 61: <Not Used>
+ Flag 62: <Not Used>
+ Flag 63: <Not Used>
+ Flag 64: <Not Used>"
+ ::= { upsAdvState 2 }
+
+upsAdvStateDP300ESpecificFaults OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "An ASCII string containing the 64 flags representing
+ the current active UPS specific faults for the Silcon
+ DP300E UPS models. If the Network Card is unable to
+ determine the values of the flags, this variable is set
+ to �UNKNOWN�. If the connected UPS does not use this
+ variable, it is set to �NOT SUPPORTED�.
+
+ The flags are numbered from 1 to 64, and read from left
+ to right. The bits are defined as follows:
+
+ Flag 1: Peak Current Limiter Avtive
+ Flag 2: Bypass Power Supply Fault
+ Flag 3: Delta Current LImiter Active
+ Flag 4: Fan Fault
+
+ Flag 5: High DC warning
+ Flag 6: Inverter Voltage Error
+ Flag 7: Parallel Synchronization Error
+ Flag 8: Second Power Supply Fault
+
+ Flag 9: Internal Power Supply Fault
+ Flag 10: <Not Used>
+ Flag 11: <Not Used>
+ Flag 12: <Not Used>
+
+ Flag 13: <Not Used>
+ Flag 14: Bypass Static Switch High Temperature
+ Flag 15: High Battery Temperature
+ Flag 16: Battery Weak
+
+ Flag 17: <Not Used>
+ Flag 18: System Locked in Operation Mode
+ Flag 19: RAM1 Memory Write Error
+ Flag 20: Memory Write Error
+
+ Flag 21: Communication to VQ Bypass Lost
+ Flag 22: Communication to VQ Output Lost
+ Flag 23: Communication to DMU Lost
+ Flag 24: Communication to Controller Lost
+
+ Flag 25: Communication to Parallel IF Lost
+ Flag 26: External Shutdown Accepted
+ Flag 27: DC Capacitor Charge Error
+ Flag 28: Communication to VQ Mains Lost
+
+ Flag 29: Bypass Synchronization Error
+ Flag 30: Charge Error
+ Flag 31: <Not Used>
+ Flag 32: <Not Used>
+
+ Flag 33: <Not Used>
+ Flag 34: <Not Used>
+ Flag 35: <Not Used>
+ Flag 36: <Not Used>
+
+ Flag 37: <Not Used>
+ Flag 38: <Not Used>
+ Flag 39: <Not Used>
+ Flag 40: <Not Used>
+
+ Flag 41: <Not Used>
+ Flag 42: <Not Used>
+ Flag 43: <Not Used>
+ Flag 44: <Not Used>
+
+ Flag 45: <Not Used>
+ Flag 46: <Not Used>
+ Flag 47: <Not Used>
+ Flag 48: <Not Used>
+
+ Flag 49: <Not Used>
+ Flag 50: <Not Used>
+ Flag 51: <Not Used>
+ Flag 52: <Not Used>
+
+ Flag 53: <Not Used>
+ Flag 54: <Not Used>
+ Flag 55: <Not Used>
+ Flag 56: <Not Used>
+
+ Flag 57: <Not Used>
+ Flag 58: <Not Used>
+ Flag 59: <Not Used>
+ Flag 60: <Not Used>
+
+ Flag 61: <Not Used>
+ Flag 62: <Not Used>
+ Flag 63: <Not Used>
+ Flag 64: <Not Used>"
+ ::= { upsAdvState 3 }
+
+
+-- the upsBasicControl group
+
+upsBasicControlConserveBattery OBJECT-TYPE
+ SYNTAX INTEGER {
+ noTurnOffUps(1),
+ turnOffUpsToConserveBattery(2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this variable to turnUpsOffToConserveBattery(2)
+ causes a UPS on battery to be put into 'sleep' mode. The
+ UPS will turn back on when utility power is restored.
+ Attempting to turn off a UPS that is not on battery will
+ result in a badValue error.
+
+ Setting this value to noTurnOffUps(1) has no
+ effect.
+
+ The value noTurnOffUps(1) will always be returned
+ when the variable is read."
+::= { upsBasicControl 1 }
+
+
+
+-- the upsAdvControl group
+
+upsAdvControlUpsOff OBJECT-TYPE
+ SYNTAX INTEGER {
+ noTurnUpsOff(1),
+ turnUpsOff(2),
+ turnUpsOffGracefully(3),
+ turnUpsSyncGroupOff(4),
+ turnUpsSyncGroupOffAfterDelay(5),
+ turnUpsSyncGroupOffGracefully(6)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this variable to turnUpsOff(2) causes
+ the UPS to shut off. When in this state, the UPS
+ will not provide output power regardless of the input
+ line state.
+
+ Setting this variable to turnUpsOffGracefully(3) causes
+ the UPS to shut off after a delay period. This allows the
+ host to shut down in a graceful manner. When in this state,
+ the UPS will not provide output power regardless of the
+ input line state.
+
+ If this UPS is an active member of a Synchronized
+ Control Group (SCG) the turnUpsSyncGroupOff(4) command
+ will perform a Synchronized Turn Off of all active Group
+ members regardless of their current AC output status.
+
+ If this UPS is an active member of a Synchronized
+ Control Group (SCG) the turnUpsSyncGroupOffAfterDelay(5)
+ command will perform a Synchronized Turn Off After Delay
+ of all active Group members regardless of their current
+ AC output status. This unit's Shutdown Delay will be used
+ to execute the Turn Off After Delay command.
+
+ If this UPS is an active member of an SCG, the
+ turnUpsSyncGroupOffGracefully(6) command will perform a
+ Synchronized Turn Off Gracefully of all active Group
+ members regardless of their current AC output status.
+ This unit's Maximum Shutdown Time and Shutdown Delay will
+ be used to execute the Turn Off Gracefully command.
+
+ Setting this value to noTurnUpsOff(1) has no
+ effect.
+
+ The value noTurnUpsOff(1) will always be returned
+ when the variable is read."
+ ::= { upsAdvControl 1 }
+
+upsAdvControlRebootUps OBJECT-TYPE
+ SYNTAX INTEGER {
+ noRebootUps(1),
+ rebootUps(2),
+ rebootUpsGracefully(3),
+ rebootSyncGroupUps(4),
+ rebootSyncGroupUpsGracefully(5)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this variable to rebootUps(2) causes the
+ UPS to shut off and turn back on.
+
+ Setting this variable to rebootUpsGracefully(3) causes the
+ UPS to shut off and turn back on after a delay period.
+ This allows the host to shut down in a graceful manner.
+
+ If this UPS is an active member of a Synchronized Control
+ Group (SCG) the rebootSyncGroupUps(4) command will perform
+ a Synchronized Reboot of all active Group members regardless
+ of their current AC output status. This unit's Power
+ Synchronization Delay, Shutdown Delay, Return Delay,
+ Return Battery Capacity, and Return Battery Capacity Offset
+ will be used to execute the Reboot command.
+
+ If this UPS is an active member of a SCG the
+ rebootSyncGroupUpsGracefully(5) command will perform a
+ Synchronized Reboot of all active Group members regardless
+ of their current AC output status. This unit's Power
+ Synchronization Delay, Maximum Shutdown Time,
+ Shutdown Delay, Return Delay, Return Battery Capacity, and
+ Return Battery Capacity Offset will be used
+ to execute the Reboot command.
+
+ Setting this value to noRebootUps(1) has no effect.
+
+ The value noRebootUps(1) will always be returned
+ when the variable is read."
+ ::= { upsAdvControl 2 }
+
+upsAdvControlUpsSleep OBJECT-TYPE
+ SYNTAX INTEGER {
+ noPutUpsToSleep(1),
+ putUpsToSleep(2),
+ putUpsToSleepGracefully(3),
+ putUpsSyncGroupToSleep(4),
+ putUpsSyncGroupToSleepGracefully(5)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this variable to putUpsToSleep(2) causes
+ the UPS to go to sleep for the time specified by
+ upsAdvConfigUpsSleepTime.
+
+ Setting this variable to putUpsToSleepGracefully(3)
+ causes the UPS to go to sleep for the time specified
+ by upsAdvConfigUpsSleepTime after a delay period.
+ This allows the host to shut down in a graceful manner.
+
+ If this UPS is an active member of a Synchronized Control
+ Group (SCG), the putUpsSyncGroupToSleep(4) command will perform
+ a Synchronized Sleep of all active Group members regardless
+ of their current AC output status. This unit's Power
+ Synchronization Delay, Shutdown Delay, Sleep Time,
+ and Return Delay will be used to execute the sleep command.
+
+ If this UPS is an active member of a SCG the
+ putUpsSyncGroupToSleepGracefully(5) command will perform a
+ Synchronized Sleep Gracefully of all active Group members
+ regardless of their current AC output status. This unit's
+ Power Synchronization Delay, Maximum Shutdown Time, Shutdown
+ Delay, Sleep Time, and Return Delay to execute the sleep
+ command.
+
+ When in sleep mode, the UPS will not provide output
+ power regardless of the input line state. Once the
+ specified time has elapsed, output power will be
+ restored.
+
+ Setting this value to noPutUpsToSleep(1) has no
+ effect.
+
+ The value noPutUpsToSleep(1) will always be returned
+ when the variable is read."
+ ::= { upsAdvControl 3 }
+
+
+upsAdvControlSimulatePowerFail OBJECT-TYPE
+ SYNTAX INTEGER {
+ noSimulatePowerFailure(1),
+ simulatePowerFailure(2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this variable to simulatePowerFailure(2) causes
+ the UPS switch to battery power.
+
+ Setting this value to noSimulatePowerFailure(1) has no
+ effect.
+
+ The value noSimulatePowerFailure(1) will always be returned
+ when the variable is read."
+ ::= { upsAdvControl 4 }
+
+
+upsAdvControlFlashAndBeep OBJECT-TYPE
+ SYNTAX INTEGER {
+ noFlashAndBeep(1),
+ flashAndBeep(2),
+ flashAndBeepSyncGroup(3)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this variable to flashAndBeep(2) causes the
+ UPS to beep and simultaneously turn on the UPS front
+ panel lights (Smart-UPS only).
+
+ If this UPS is an active member of a Synchronized Control
+ Group (SCG), the flashAndBeepSyncGroup(3) command will
+ Flash and Beep all active Group members regardless of
+ current AC output status.
+
+ Setting this value to noFlashAndBeep(1) has no
+ effect.
+
+ The value noFlashAndBeep(1) will always be returned
+ when the variable is read."
+ ::= { upsAdvControl 5 }
+
+
+upsAdvControlTurnOnUPS OBJECT-TYPE
+ SYNTAX INTEGER {
+ noTurnOnUPS(1),
+ turnOnUPS(2),
+ turnOnUPSSyncGroup(3)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this variable to turnOnUPS(2) causes the
+ UPS to be turned on immediately.
+
+ If this UPS is an active member of a Synchronized Control
+ Group (SCG), the turnOnUPSSyncGroup(3) command will perform
+ a Synchronized Turn On of all active Group members
+ regardless of their current AC output status.
+
+ Setting this value to noTurnOnUPS(1) has no
+ effect.
+
+ The value noTurnOnUPS(1) will always be returned
+ when the variable is read."
+ ::= { upsAdvControl 6 }
+
+upsAdvControlBypassSwitch OBJECT-TYPE
+ SYNTAX INTEGER {
+ noBypassSwitch (1),
+ switchToBypass (2),
+ switchOutOfBypass(3)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "This switch puts the UPS in or out of bypass mode."
+ ::= { upsAdvControl 7 }
+
+
+-- the upsTest group
+
+-- the upsBasicTest group
+
+-- the upsAdvTest group
+
+upsAdvTestDiagnosticSchedule OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown(1),
+ biweekly(2),
+ weekly(3),
+ atTurnOn(4),
+ never(5)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The UPS system's automatic battery test schedule."
+ ::= { upsAdvTest 1 }
+
+
+upsAdvTestDiagnostics OBJECT-TYPE
+ SYNTAX INTEGER {
+ noTestDiagnostics(1),
+ testDiagnostics(2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this variable to testDiagnostics(2) causes
+ the UPS to perform a diagnostic self test.
+
+ Setting this value to noTestDiagnostics(1) has no
+ effect.
+
+ The value noTestDiagnostics(1) will always be returned
+ when the variable is read."
+ ::= { upsAdvTest 2 }
+
+upsAdvTestDiagnosticsResults OBJECT-TYPE
+ SYNTAX INTEGER {
+ ok(1),
+ failed(2),
+ invalidTest(3),
+ testInProgress(4)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The results of the last UPS diagnostics test performed."
+ ::= { upsAdvTest 3 }
+
+upsAdvTestLastDiagnosticsDate OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The date the last UPS diagnostics test was performed in
+ mm/dd/yy format."
+ ::= { upsAdvTest 4 }
+
+upsAdvTestRuntimeCalibration OBJECT-TYPE
+ SYNTAX INTEGER {
+ noPerformCalibration(1),
+ performCalibration(2),
+ cancelCurrentCalibration(3)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this variable to performCalibration(2) causes
+ the UPS to discharge to calibrate the UPS.
+ The test will only start if the battery capacity is 100%.
+ The test runs until capacity is less than 25%.
+
+ Setting this variable to cancelCurrentCalibration(3)
+ after setting performCalibration(2) will cancel the
+ current discharge.
+
+ Setting this variable to noPerformCalibration(1)
+ will have no effect.
+
+ The value noPerformCalibration(1) will always be returned
+ when the variable is read.
+
+ The result of the calibration will be saved in
+ upsAdvTestCalibrationResult."
+ ::= { upsAdvTest 5 }
+
+upsAdvTestCalibrationResults OBJECT-TYPE
+ SYNTAX INTEGER {
+ ok(1),
+ invalidCalibration(2),
+ calibrationInProgress(3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The results of the last runtime calibration.
+
+ Value ok(1) means a successful runtime calibration.
+
+ Value invalidCalibration(2) indicates last calibration did
+ not take place since the battery capacity was below
+ 100%.
+
+ Value calibrationInProgress(3) means a calibration
+ is occurring now. "
+ ::= { upsAdvTest 6 }
+
+upsAdvTestCalibrationDate OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The date the last UPS runtime calibration was
+ performed in mm/dd/yy format."
+ ::= { upsAdvTest 7 }
+
+-- the upsComm group
+
+upsCommStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ ok(1),
+ noComm(2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of agent's communication with UPS. "
+ ::= { upsComm 1 }
+
+
+-- the measureUps group
+-- the Environ group
+
+mUpsEnvironAmbientTemperature OBJECT-TYPE
+ SYNTAX Gauge
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The ambient temperature in Celsius for Probe 1."
+ ::= { mUpsEnviron 1 }
+
+mUpsEnvironRelativeHumidity OBJECT-TYPE
+ SYNTAX Gauge
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The relative humidity as a percentage for Probe 1."
+ ::= { mUpsEnviron 2 }
+
+
+mUpsEnvironAmbientTemperature2 OBJECT-TYPE
+ SYNTAX Gauge
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The ambient temperature in Celsius for Probe 2."
+ ::= { mUpsEnviron 3 }
+
+mUpsEnvironRelativeHumidity2 OBJECT-TYPE
+ SYNTAX Gauge
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The relative humidity as a percentage for Probe 2."
+ ::= { mUpsEnviron 4 }
+
+-- the mUpsContact group
+
+mUpsContactNumContacts OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of contacts supported by the Measure-UPS."
+ ::= { mUpsContact 1 }
+
+mUpsContactTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ContactEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of contacts supported by the Measure-UPS."
+ ::= { mUpsContact 2 }
+
+mUpsContactEntry OBJECT-TYPE
+ SYNTAX ContactEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A contact entry containing information for a given contact."
+ INDEX { contactNumber }
+ ::= { mUpsContactTable 1 }
+
+ContactEntry ::=
+ SEQUENCE {
+ contactNumber
+ INTEGER,
+ normalState
+ INTEGER,
+ description
+ DisplayString,
+ monitoringStatus
+ INTEGER,
+ currentStatus
+ INTEGER
+ }
+
+contactNumber OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "An index identifying the contact on the Measure-UPS."
+ ::= { mUpsContactEntry 1 }
+
+normalState OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown(1),
+ open(2),
+ closed(3)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The normal operating position of the contact. If the normal
+ operating position cannot be set then it is controlled via the
+ dip switch on the Measure-UPS and is therefore read-only."
+ ::= { mUpsContactEntry 2 }
+
+description OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The description of the purpose/use of the contact."
+ ::= { mUpsContactEntry 3 }
+
+monitoringStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown(1),
+ enabled(2),
+ disabled(3)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "A flag indicating whether this contact is
+ monitored, or not."
+ ::= { mUpsContactEntry 4 }
+
+currentStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown(1),
+ noFault(2),
+ fault(3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This value indicates the current state of the contact.
+ If the contact is not in its normal state. This value
+ is set to fault(2)."
+ ::= { mUpsContactEntry 5 }
+
+-- Three Phase Group
+
+--
+-- Reset Max/Min Values Group
+--
+
+ upsPhaseResetMaxMinValues OBJECT-TYPE
+ SYNTAX INTEGER {
+ none (1),
+ reset (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Reset the maximum and minimum UPS values:
+ upsPhaseInputMaxVoltage, upsPhaseInputMinVoltage,
+ upsPhaseInputMaxCurrent, upsPhaseInputMinCurrent,
+ upsPhaseInputMaxPower, upsPhaseInputMinPower,
+ upsPhaseOutputMaxCurrent, upsPhaseOutputMinCurrent,
+ upsPhaseOutputMaxLoad, upsPhaseOutputMinLoad,
+ upsPhaseOutputMaxPercentLoad, upsPhaseOutputMinPercentLoad,
+ upsPhaseOutputMaxPower, upsPhaseOutputMinPower,
+ upsPhaseOutputMaxPercentPower, upsPhaseOutputMinPercentPower."
+ ::= { upsPhaseResetValues 1 }
+
+--
+-- Input Group
+--
+
+-- Number of Inputs
+
+ upsPhaseNumInputs OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of input feeds to this device.
+ This variable indicates the number of rows in the
+ input table."
+ ::= { upsPhaseInput 1 }
+
+-- Input Table
+
+ upsPhaseInputTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF UpsPhaseInputEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of input table entries. The number of entries
+ is given by the value of upsPhaseNumInputs."
+ ::= { upsPhaseInput 2 }
+
+ upsPhaseInputEntry OBJECT-TYPE
+ SYNTAX UpsPhaseInputEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An entry containing information applicable to a
+ particular input."
+ INDEX { upsPhaseInputTableIndex }
+ ::= { upsPhaseInputTable 1 }
+
+ UpsPhaseInputEntry ::= SEQUENCE {
+ upsPhaseInputTableIndex INTEGER,
+ upsPhaseNumInputPhases INTEGER,
+ upsPhaseInputVoltageOrientation INTEGER,
+ upsPhaseInputFrequency INTEGER,
+ upsPhaseInputType INTEGER,
+ upsPhaseInputName DisplayString
+ }
+
+ upsPhaseInputTableIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The input identifier."
+ ::= { upsPhaseInputEntry 1 }
+
+ upsPhaseNumInputPhases OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of input phases utilized in this
+ device. The sum of all the upsPhaseNumInputPhases
+ variable indicates the number of rows in the
+ input phase table."
+ ::= { upsPhaseInputEntry 2 }
+
+ upsPhaseInputVoltageOrientation OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown(1),
+ singlePhase(2),
+ splitPhase(3),
+ threePhasePhaseToNeutral(4),
+ threePhasePhaseToPhase(5)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The input voltage orientation:
+ 1: unknown for this UPS
+ 2: singlePhase - phase 1 voltage is between Phase 1
+ and Neutral.
+ 3: splitPhase - phase 1 voltage is between Phase 1 and
+ Neutral; phase 2 voltage is between Phase 2 and Neutral;
+ phase 3 voltage is between Phase 1 and Phase2.
+ 4: threePhasePhaseToNeutral - phase 1 voltage is between
+ Phase 1 and Neutral; phase 2 voltage is between Phase 2
+ and Neutral; phase 3 voltage is between Phase3 and
+ Neutral.
+ 5: threePhasePhaseToPhase - phase 1 voltage is between
+ Phase 1 and Phase 2; phase 2 voltage is between Phase 2
+ and Phase 3; phase 3 voltage is between Phase 3 and
+ Phase 1."
+ ::= { upsPhaseInputEntry 3 }
+
+ upsPhaseInputFrequency OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The input frequency in 0.1 Hertz, or -1 if it's unsupported
+ by this UPS."
+ ::= { upsPhaseInputEntry 4 }
+
+ upsPhaseInputType OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown(1),
+ main(2),
+ bypass(3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The input type."
+ ::= { upsPhaseInputEntry 5 }
+
+ upsPhaseInputName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "A name given to a particular input."
+ ::= { upsPhaseInputEntry 6 }
+
+-- Input Phase Table
+
+ upsPhaseInputPhaseTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF UpsPhaseInputPhaseEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of input table entries. The number of entries
+ is given by the sum of the upsPhaseNumInputPhases."
+ ::= { upsPhaseInput 3 }
+
+ upsPhaseInputPhaseEntry OBJECT-TYPE
+ SYNTAX UpsPhaseInputPhaseEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An entry containing information applicable to a
+ particular input phase."
+ INDEX { upsPhaseInputPhaseTableIndex, upsPhaseInputPhaseIndex }
+ ::= { upsPhaseInputPhaseTable 1 }
+
+ UpsPhaseInputPhaseEntry ::= SEQUENCE {
+ upsPhaseInputPhaseTableIndex INTEGER,
+ upsPhaseInputPhaseIndex INTEGER,
+ upsPhaseInputVoltage INTEGER,
+ upsPhaseInputMaxVoltage INTEGER,
+ upsPhaseInputMinVoltage INTEGER,
+ upsPhaseInputCurrent INTEGER,
+ upsPhaseInputMaxCurrent INTEGER,
+ upsPhaseInputMinCurrent INTEGER,
+ upsPhaseInputPower INTEGER,
+ upsPhaseInputMaxPower INTEGER,
+ upsPhaseInputMinPower INTEGER
+ }
+
+ upsPhaseInputPhaseTableIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The input identifier."
+ ::= { upsPhaseInputPhaseEntry 1 }
+
+ upsPhaseInputPhaseIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The input phase identifier."
+ ::= { upsPhaseInputPhaseEntry 2 }
+
+ upsPhaseInputVoltage OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The input voltage in VAC, or -1 if it's unsupported
+ by this UPS."
+ ::= { upsPhaseInputPhaseEntry 3 }
+
+ upsPhaseInputMaxVoltage OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum input voltage in VAC measured
+ since the last reset (upsPhaseResetMaxMinValues), or
+ -1 if it's unsupported by this UPS.
+ Sampled every 30 seconds."
+ ::= { upsPhaseInputPhaseEntry 4 }
+
+ upsPhaseInputMinVoltage OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The minimum input voltage in VAC measured
+ since the last reset (upsPhaseResetMaxMinValues), or
+ -1 if it's unsupported by this UPS.
+ Sampled every 30 seconds."
+ ::= { upsPhaseInputPhaseEntry 5 }
+
+ upsPhaseInputCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The input current in 0.1 amperes, or -1 if it's
+ unsupported by this UPS."
+ ::= { upsPhaseInputPhaseEntry 6 }
+
+ upsPhaseInputMaxCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum input current in 0.1 amperes measured
+ since the last reset (upsPhaseResetMaxMinValues), or
+ -1 if it's unsupported by this UPS.
+ Sampled every 30 seconds."
+ ::= { upsPhaseInputPhaseEntry 7 }
+
+ upsPhaseInputMinCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The minimum input current in 0.1 amperes measured
+ since the last reset (upsPhaseResetMaxMinValues), or
+ -1 if it's unsupported by this UPS.
+ Sampled every 30 seconds."
+ ::= { upsPhaseInputPhaseEntry 8 }
+
+ upsPhaseInputPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The input power in Watts, or -1 if it's unsupported
+ by this UPS."
+ ::= { upsPhaseInputPhaseEntry 9 }
+
+ upsPhaseInputMaxPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum input power in Watts measured
+ since the last reset (upsPhaseResetMaxMinValues), or
+ -1 if it's unsupported by this UPS.
+ Sampled every 30 seconds."
+ ::= { upsPhaseInputPhaseEntry 10 }
+
+ upsPhaseInputMinPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The minimum input power in Watts measured
+ since the last reset (upsPhaseResetMaxMinValues), or
+ -1 if it's unsupported by this UPS.
+ Sampled every 30 seconds."
+ ::= { upsPhaseInputPhaseEntry 11 }
+
+ --
+ -- The Output group.
+ --
+
+ -- Number of Outputs
+
+ upsPhaseNumOutputs OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of output feeds to this device.
+ This variable indicates the number of rows in the
+ output table."
+ ::= { upsPhaseOutput 1 }
+
+ -- Output Table
+
+ upsPhaseOutputTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF UpsPhaseOutputEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of output table entries. The number of entries
+ is given by the value of upsOutputNumPhases."
+ ::= { upsPhaseOutput 2 }
+
+ upsPhaseOutputEntry OBJECT-TYPE
+ SYNTAX UpsPhaseOutputEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An entry containing information applicable to a
+ particular output."
+ INDEX { upsPhaseOutputTableIndex }
+ ::= { upsPhaseOutputTable 1 }
+
+ UpsPhaseOutputEntry ::= SEQUENCE {
+ upsPhaseOutputTableIndex INTEGER,
+ upsPhaseNumOutputPhases INTEGER,
+ upsPhaseOutputVoltageOrientation INTEGER,
+ upsPhaseOutputFrequency INTEGER
+ }
+
+ upsPhaseOutputTableIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The output identifier."
+ ::= { upsPhaseOutputEntry 1 }
+
+ upsPhaseNumOutputPhases OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of output phases utilized in this
+ device. The sum of all the upsPhaseNumOutputPhases
+ variable indicates the number of rows in the
+ output phase table."
+ ::= { upsPhaseOutputEntry 2 }
+
+ upsPhaseOutputVoltageOrientation OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown(1),
+ singlePhase(2),
+ splitPhase(3),
+ threePhasePhaseToNeutral(4),
+ threePhasePhaseToPhase(5)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The output voltage orientation:
+ 1: unknown for this UPS
+ 2: singlePhase - phase 1 voltage is between Phase 1
+ and Neutral.
+ 3: splitPhase - phase 1 voltage is between Phase 1 and
+ Neutral; phase 2 voltage is between Phase 2 and Neutral;
+ phase 3 voltage is between Phase 1 and Phase2.
+ 4: threePhasePhaseToNeutral - phase 1 voltage is between
+ Phase 1 and Neutral; phase 2 voltage is between Phase 2
+ and Neutral; phase 3 voltage is between Phase3 and
+ Neutral.
+ 5: threePhasePhaseToPhase - phase 1 voltage is between
+ Phase 1 and Phase 2; phase 2 voltage is between Phase 2
+ and Phase 3; phase 3 voltage is between Phase 3 and
+ Phase 1."
+ ::= { upsPhaseOutputEntry 3 }
+
+ upsPhaseOutputFrequency OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The output frequency in 0.1 Hertz, or -1 if it's
+ unsupported by this UPS."
+ ::= { upsPhaseOutputEntry 4 }
+
+ -- Output Phase Table
+
+ upsPhaseOutputPhaseTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF UpsPhaseOutputPhaseEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of output table entries. The number of
+ entries is given by the sum of the upsPhaseNumOutputPhases."
+ ::= { upsPhaseOutput 3 }
+
+ upsPhaseOutputPhaseEntry OBJECT-TYPE
+ SYNTAX UpsPhaseOutputPhaseEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An entry containing information applicable to a
+ particular output phase."
+ INDEX { upsPhaseOutputPhaseTableIndex, upsPhaseOutputPhaseIndex }
+ ::= { upsPhaseOutputPhaseTable 1 }
+
+ UpsPhaseOutputPhaseEntry ::= SEQUENCE {
+ upsPhaseOutputPhaseTableIndex INTEGER,
+ upsPhaseOutputPhaseIndex INTEGER,
+ upsPhaseOutputVoltage INTEGER,
+ upsPhaseOutputCurrent INTEGER,
+ upsPhaseOutputMaxCurrent INTEGER,
+ upsPhaseOutputMinCurrent INTEGER,
+ upsPhaseOutputLoad INTEGER,
+ upsPhaseOutputMaxLoad INTEGER,
+ upsPhaseOutputMinLoad INTEGER,
+ upsPhaseOutputPercentLoad INTEGER,
+ upsPhaseOutputMaxPercentLoad INTEGER,
+ upsPhaseOutputMinPercentLoad INTEGER,
+ upsPhaseOutputPower INTEGER,
+ upsPhaseOutputMaxPower INTEGER,
+ upsPhaseOutputMinPower INTEGER,
+ upsPhaseOutputPercentPower INTEGER,
+ upsPhaseOutputMaxPercentPower INTEGER,
+ upsPhaseOutputMinPercentPower INTEGER
+ }
+
+ upsPhaseOutputPhaseTableIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The output identifier."
+ ::= { upsPhaseOutputPhaseEntry 1 }
+
+ upsPhaseOutputPhaseIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The output phase identifier."
+ ::= { upsPhaseOutputPhaseEntry 2 }
+
+ upsPhaseOutputVoltage OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The output voltage in VAC, or -1 if it's unsupported
+ by this UPS."
+ ::= { upsPhaseOutputPhaseEntry 3 }
+
+ upsPhaseOutputCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The output current in 0.1 amperes drawn
+ by the load on the UPS, or -1 if it's unsupported
+ by this UPS."
+ ::= { upsPhaseOutputPhaseEntry 4 }
+
+ upsPhaseOutputMaxCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum output current in 0.1 amperes measured
+ since the last reset (upsPhaseResetMaxMinValues), or
+ -1 if it's unsupported by this UPS.
+ Sampled every 30 seconds."
+ ::= { upsPhaseOutputPhaseEntry 5 }
+
+ upsPhaseOutputMinCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The minimum output current in 0.1 amperes measured
+ since the last reset (upsPhaseResetMaxMinValues), or
+ -1 if it's unsupported by this UPS.
+ Sampled every 30 seconds."
+ ::= { upsPhaseOutputPhaseEntry 6 }
+
+ upsPhaseOutputLoad OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The output load in VA, or -1 if it's unsupported
+ by this UPS."
+ ::= { upsPhaseOutputPhaseEntry 7 }
+
+ upsPhaseOutputMaxLoad OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum output load in VA measured
+ since the last reset (upsPhaseResetMaxMinValues), or
+ -1 if it's unsupported by this UPS.
+ Sampled every 30 seconds."
+ ::= { upsPhaseOutputPhaseEntry 8 }
+
+ upsPhaseOutputMinLoad OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The minimum output load in VA measured
+ since the last reset (upsPhaseResetMaxMinValues), or
+ -1 if it's unsupported by this UPS.
+ Sampled every 30 seconds."
+ ::= { upsPhaseOutputPhaseEntry 9 }
+
+ upsPhaseOutputPercentLoad OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The percentage of the UPS load capacity in VA at
+ redundancy @ (n + x) presently being used on this
+ output phase, or -1 if it's unsupported by this UPS."
+ ::= { upsPhaseOutputPhaseEntry 10 }
+
+ upsPhaseOutputMaxPercentLoad OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum percentage of the UPS load capacity in
+ VA measured at redundancy @ (n + x) presently
+ being used on this output phase since the last reset
+ (upsPhaseResetMaxMinValues), or -1 if it's unsupported
+ by this UPS. Sampled every 30 seconds."
+ ::= { upsPhaseOutputPhaseEntry 11 }
+
+ upsPhaseOutputMinPercentLoad OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The minimum percentage of the UPS load capacity in
+ VA measured at redundancy @ (n + x) presently
+ being used on this output phase since the last reset
+ (upsPhaseResetMaxMinValues), or -1 if it's unsupported
+ by this UPS. Sampled every 30 seconds."
+ ::= { upsPhaseOutputPhaseEntry 12 }
+
+ upsPhaseOutputPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The output power in Watts, or -1 if it's
+ unsupported by this UPS."
+ ::= { upsPhaseOutputPhaseEntry 13 }
+
+ upsPhaseOutputMaxPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum output power in Watts measured
+ since the last reset (upsPhaseResetMaxMinValues), or
+ -1 if it's unsupported by this UPS.
+ Sampled every 30 seconds."
+ ::= { upsPhaseOutputPhaseEntry 14 }
+
+ upsPhaseOutputMinPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The minimum output power in Watts measured
+ since the last reset (upsPhaseResetMaxMinValues), or
+ -1 if it's unsupported by this UPS.
+ Sampled every 30 seconds."
+ ::= { upsPhaseOutputPhaseEntry 15 }
+
+ upsPhaseOutputPercentPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The percentage of the UPS power capacity in Watts at
+ redundancy @ (n + x) presently being used on this
+ output phase, or -1 if it's unsupported by this UPS."
+ ::= { upsPhaseOutputPhaseEntry 16 }
+
+ upsPhaseOutputMaxPercentPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum percentage of the UPS power capacity
+ in Watts measured at redundancy @ (n + x) presently
+ being used on this output phase since the last
+ reset (upsPhaseResetMaxMinValues), or -1 if it's
+ unsupported by this UPS. Sampled every 30 seconds."
+ ::= { upsPhaseOutputPhaseEntry 17 }
+
+ upsPhaseOutputMinPercentPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum percentage of the UPS power capacity
+ in Watts measured at redundancy @ (n + x) presently
+ being used on this output phase since the last
+ reset (upsPhaseResetMaxMinValues), or -1 if it's
+ unsupported by this UPS. Sampled every 30 seconds."
+ ::= { upsPhaseOutputPhaseEntry 18 }
+
+-- the upsOutletGroupStatus group
+
+upsOutletGroupStatusTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of outlet groups for the UPS."
+ ::= { upsOutletGroupStatus 1 }
+
+upsOutletGroupStatusTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF UpsOutletGroupStatusEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for getting status of the outlet groups. The number of
+ entries is contained in the upsOutletGroupStatusTableSize OID."
+ ::= { upsOutletGroupStatus 2 }
+
+upsOutletGroupStatusEntry OBJECT-TYPE
+ SYNTAX UpsOutletGroupStatusEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The outlet group status to get."
+ INDEX { upsOutletGroupStatusIndex}
+ ::= { upsOutletGroupStatusTable 1 }
+
+UpsOutletGroupStatusEntry ::=
+ SEQUENCE {
+ upsOutletGroupStatusIndex INTEGER,
+ upsOutletGroupStatusName DisplayString,
+ upsOutletGroupStatusGroupState INTEGER,
+ upsOutletGroupStatusCommandPending INTEGER
+ }
+
+upsOutletGroupStatusIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the outlet group entry."
+ ::= { upsOutletGroupStatusEntry 1 }
+
+upsOutletGroupStatusName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the outlet group. This OID is provided
+ for informational purposes only. This value is set
+ by the upsOutletGroupConfigName OID."
+ ::= { upsOutletGroupStatusEntry 2 }
+
+upsOutletGroupStatusGroupState OBJECT-TYPE
+ SYNTAX INTEGER {
+ upsOutletGroupStatusOn (1),
+ upsOutletGroupStatusOff (2),
+ upsOutletGroupStatusUnknown (3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this variable will return the outlet group state. If the outlet
+ group is on, the upsOutletGroupStatusOn (1) value will be returned. If
+ the outlet group is off, the upsOutletGroupStatusOff (2) value will be
+ returned. If the state of the outlet group cannot be determined, the
+ upsOutletGroupStatusUnknown (3) value will be returned."
+
+ ::= { upsOutletGroupStatusEntry 3 }
+
+upsOutletGroupStatusCommandPending OBJECT-TYPE
+ SYNTAX INTEGER {
+ upsOutletGroupCommandPending (1),
+ upsOutletGroupNoCommandPending (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this variable will return the command pending
+ state of the outlet group. If a command is pending on the
+ outlet group, the upsOutletGroupCommandPending (1) value
+ will be returned. If there is not a command pending
+ on the outlet group, the upsOutletGroupNoCommandPending (2)
+ will be returned."
+ ::= { upsOutletGroupStatusEntry 4 }
+
+-- the upsOutletGroupConfig group
+
+upsOutletGroupConfigTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of outlet groups for the UPS."
+ ::= { upsOutletGroupConfig 1 }
+
+upsOutletGroupConfigTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF UpsOutletGroupConfigEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The list of outlet groups to configure. The number of entries
+ is defined by the upsOutletGroupConfigTableSize OID."
+ ::= { upsOutletGroupConfig 2 }
+
+upsOutletGroupConfigEntry OBJECT-TYPE
+ SYNTAX UpsOutletGroupConfigEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The outlet groups to configure."
+ INDEX { upsOutletGroupConfigIndex}
+ ::= { upsOutletGroupConfigTable 1 }
+
+UpsOutletGroupConfigEntry ::=
+ SEQUENCE {
+ upsOutletGroupConfigIndex INTEGER,
+ upsOutletGroupConfigName DisplayString,
+ upsOutletGroupConfigPowerOnDelay INTEGER,
+ upsOutletGroupConfigPowerOffDelay INTEGER,
+ upsOutletGroupConfigRebootDuration INTEGER
+ }
+
+upsOutletGroupConfigIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the outlet group entry."
+ ::= { upsOutletGroupConfigEntry 1 }
+
+upsOutletGroupConfigName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the outlet group."
+ ::= { upsOutletGroupConfigEntry 2 }
+
+upsOutletGroupConfigPowerOnDelay OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The amount of time (in seconds) the outlet group will delay
+ powering on when the delayed on or reboot command is applied.
+ Allowed values are -1 (for Never) or 0 to 600 seconds."
+ ::= { upsOutletGroupConfigEntry 3 }
+
+upsOutletGroupConfigPowerOffDelay OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The amount of time (in seconds) the outlet group will delay
+ powering off when the delayed off command is applied.
+ Allowed values are 0 to 600 seconds."
+ ::= { upsOutletGroupConfigEntry 4 }
+
+upsOutletGroupConfigRebootDuration OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "During a reboot sequence, power is turned off and then
+ back on. This OID defines the amount of time to wait,
+ in seconds, after turning the power off, at the start
+ of the sequence, before initiating the power on sequence.
+ Allowed values are 0 to 600 seconds."
+ ::= { upsOutletGroupConfigEntry 5 }
+
+-- the upsOutletGroupControl group
+
+upsOutletGroupControlTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of outlet groups for the UPS."
+ ::= { upsOutletGroupControl 1 }
+
+upsOutletGroupControlTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF UpsOutletGroupControlEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for control of individual outlet groups. The number of
+ entries is contained in the upsOutletGroupControlTableSize OID."
+ ::= { upsOutletGroupControl 2 }
+
+upsOutletGroupControlEntry OBJECT-TYPE
+ SYNTAX UpsOutletGroupControlEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The outlet group to control."
+ INDEX { upsOutletGroupControlIndex}
+ ::= { upsOutletGroupControlTable 1 }
+
+UpsOutletGroupControlEntry ::=
+ SEQUENCE {
+ upsOutletGroupControlIndex INTEGER,
+ upsOutletGroupControlName DisplayString,
+ upsOutletGroupControlCommand INTEGER
+ }
+
+upsOutletGroupControlIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the outlet group entry."
+ ::= { upsOutletGroupControlEntry 1 }
+
+upsOutletGroupControlName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the outlet group. This OID is provided
+ for informational purposes only. This value is set
+ by the upsOutletGroupConfigName OID."
+ ::= { upsOutletGroupControlEntry 2 }
+
+upsOutletGroupControlCommand OBJECT-TYPE
+ SYNTAX INTEGER {
+ upsOutletGroupImmediateOn (1),
+ upsOutletGroupImmediateOff (2),
+ upsOutletGroupImmediateReboot (3),
+ upsOutletGroupDelayedOn (4),
+ upsOutletGroupDelayedOff (5),
+ upsOutletGroupDelayedReboot (6),
+ upsOutletGroupCancelPendingCommand (7),
+ upsOutletGroupControlUnknown (8)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this variable will return the outlet group state. If the outlet
+ group is on, the upsOutletGroupImmediateOn (1) value will be returned. If
+ the outlet group is off, the upsOutletGroupImmediateOff (2) value will be
+ returned.
+
+ If the state of the outlet group cannot be determined, the
+ upsOutletGroupControlUnknown (8) value will be returned.
+
+ Setting this variable to upsOutletGroupImmediateOn (1) will turn the
+ outlet group on.
+
+ Setting this variable to upsOutletGroupImmediateOff (2) will turn the
+ outlet group off.
+
+ Setting this variable to upsOutletGroupImmediateReboot (3) will turn the outlet
+ group off, wait the upsOutletGroupConfigRebootDuration OID time, wait the
+ upsOutletGroupConfigPowerOnDelay OID, and then turn the outlet group on.
+
+ Setting this variable to upsOutletGroupDelayedOn (4) will turn the outlet
+ group on after the upsOutletGroupConfigPowerOnDelay OID has elapsed.
+
+ Setting this variable to upsOutletGroupDelayedOff (5) will turn the outlet
+ group off after the upsOutletGroupConfigPowerOffDelay OID has elapsed.
+
+ Setting this variable to upsOutletGroupDelayedReboot (6) will turn the outlet
+ group off after the upsOutletGroupConfigPowerOffDelay OID has elapsed, wait the
+ upsOutletGroupConfigRebootDuration OID time, wait the
+ upsOutletGroupConfigPowerOnDelay OID, and then turn the outlet group on.
+
+ Setting this variable to upsOutletGroupCancelPendingCommand (7) will
+ cause any pending command to this outlet group to be canceled."
+ ::= { upsOutletGroupControlEntry 3 }
+
+-- the upsDiagnosticIM group
+
+upsDiagIMTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of Intelligence Modules in or attached to the UPS."
+ ::= { upsDiagnosticIM 1 }
+
+upsDiagIMTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF UpsDiagIMEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for diagnostics of individual Intelligence Modules. The number of
+ entries is contained in the upsDiagIMTableSize OID."
+ ::= { upsDiagnosticIM 2 }
+
+upsDiagIMEntry OBJECT-TYPE
+ SYNTAX UpsDiagIMEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The diagnostics and information of an Intelligence Module."
+ INDEX { upsDiagIMIndex}
+ ::= { upsDiagIMTable 1 }
+
+UpsDiagIMEntry ::=
+ SEQUENCE {
+ upsDiagIMIndex INTEGER,
+ upsDiagIMType INTEGER,
+ upsDiagIMStatus INTEGER,
+ upsDiagIMFirmwareRev DisplayString,
+ upsDiagIMSlaveFirmwareRev DisplayString,
+ upsDiagIMHardwareRev DisplayString,
+ upsDiagIMSerialNum DisplayString,
+ upsDiagIMManufactureDate DisplayString
+ }
+
+upsDiagIMIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the Intelligence Module entry."
+ ::= { upsDiagIMEntry 1 }
+
+upsDiagIMType OBJECT-TYPE
+ SYNTAX INTEGER {
+ imUnknown (1),
+ imMIM (2),
+ imRIM (3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The type of the Intelligence Module.
+ imUnknown(1) indicates the IM type is unknown.
+ imMIM(2) indicates the IM type is a Main Intelligence Module.
+ imRIM(3) indicates the IM type is Redundant Intelligence Module."
+ ::= { upsDiagIMEntry 2 }
+
+upsDiagIMStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown (1),
+ notInstalled (2),
+ offOk (3),
+ onOk (4),
+ offFail (5),
+ onFail (6),
+ lostComm (7)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the Intelligence Module.
+ unknown(1) indicates the device status is unknown.
+ notInstalled(2) indicates the device is not installed.
+ offOk(3) indicates the device status is off and OK.
+ onOk(4) indicates the device status is on and OK.
+ offFail(5) indicates the device status is off and failed.
+ onFail(6) indicates the device status is on and failed.
+ lostComm(7) indicates the device has lost communication."
+ ::= { upsDiagIMEntry 3 }
+
+upsDiagIMFirmwareRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The firmware revision of the Intelligence Module."
+ ::= { upsDiagIMEntry 4 }
+
+upsDiagIMSlaveFirmwareRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The slave firmware revision of the Intelligence Module."
+ ::= { upsDiagIMEntry 5 }
+
+upsDiagIMHardwareRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The hardware revision of the Intelligence Module."
+ ::= { upsDiagIMEntry 6 }
+
+upsDiagIMSerialNum OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The serial number of the Intelligence Module."
+ ::= { upsDiagIMEntry 7 }
+
+upsDiagIMManufactureDate OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The manufacture date of the Intelligence Module."
+ ::= { upsDiagIMEntry 8 }
+
+-- the upsDiagnosticPowerModules group
+
+upsDiagPMTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of Power Modules in or attached to the UPS."
+ ::= { upsDiagnosticPowerModules 1 }
+
+upsDiagPMTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF UpsDiagPMEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for diagnostics of Individual Power modules. The number of
+ entries is contained in the upsDiagPMTableSize OID."
+ ::= { upsDiagnosticPowerModules 2 }
+
+upsDiagPMEntry OBJECT-TYPE
+ SYNTAX UpsDiagPMEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The diagnostics of an Power Module."
+ INDEX { upsDiagPMIndex}
+ ::= { upsDiagPMTable 1 }
+
+UpsDiagPMEntry ::=
+ SEQUENCE {
+ upsDiagPMIndex INTEGER,
+ upsDiagPMStatus INTEGER,
+ upsDiagPMFirmwareRev DisplayString,
+ upsDiagPMHardwareRev DisplayString,
+ upsDiagPMSerialNum DisplayString,
+ upsDiagPMManufactureDate DisplayString
+ }
+
+upsDiagPMIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the Power Module entry."
+ ::= { upsDiagPMEntry 1 }
+
+upsDiagPMStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown (1),
+ notInstalled (2),
+ offOk (3),
+ onOk (4),
+ offFail (5),
+ onFail (6),
+ lostComm (7)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the Power Module.
+ unknown(1) indicates the device status is unknown.
+ notInstalled(2) indicates the device is not installed.
+ offOk(3) indicates the device status is off and OK.
+ onOk(4) indicates the device status is on and OK.
+ offFail(5) indicates the device status is off and failed.
+ onFail(6) indicates the device status is on and failed.
+ lostComm(7) indicates the device has lost communication."
+ ::= { upsDiagPMEntry 2 }
+
+upsDiagPMFirmwareRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The firmware revision of the Power Module."
+ ::= { upsDiagPMEntry 3 }
+
+upsDiagPMHardwareRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The hardware revision of the Power Module."
+ ::= { upsDiagPMEntry 4 }
+
+upsDiagPMSerialNum OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The serial number of the Power Module."
+ ::= { upsDiagPMEntry 5 }
+
+upsDiagPMManufactureDate OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The manufacture date of the Power Module."
+ ::= { upsDiagPMEntry 6 }
+
+-- the upsDiagnosticBatteries group
+
+upsDiagBatteryTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of batteries in or attached to the UPS."
+ ::= { upsDiagnosticBatteries 1 }
+
+upsDiagBatteryTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF UpsDiagBatteryEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for diagnostics of individual batteries. The number of
+ entries is contained in the upsDiagBattTableSize OID."
+ ::= { upsDiagnosticBatteries 2 }
+
+upsDiagBatteryEntry OBJECT-TYPE
+ SYNTAX UpsDiagBatteryEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The diagnostics of a battery."
+ INDEX { upsDiagBatteryIndex}
+ ::= { upsDiagBatteryTable 1 }
+
+UpsDiagBatteryEntry ::=
+ SEQUENCE {
+ upsDiagBatteryFrameIndex INTEGER,
+ upsDiagBatteryIndex INTEGER,
+ upsDiagBatteryStatus INTEGER,
+ upsDiagBatterySerialNumber DisplayString,
+ upsDiagBatteryFirmwareRev DisplayString,
+ upsDiagBatteryManufactureDate DisplayString,
+ upsDiagBatteryType DisplayString
+ }
+
+upsDiagBatteryFrameIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the battery frame entry.
+ Frame 0 indicates the Main frame. Extended Run (XR) frames
+ start from index 1."
+ ::= { upsDiagBatteryEntry 1 }
+
+upsDiagBatteryIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the battery entry."
+ ::= { upsDiagBatteryEntry 2 }
+
+upsDiagBatteryStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown (1),
+ notInstalled (2),
+ ok (3),
+ failed (4),
+ highTemperature (5),
+ replaceImmediately (6),
+ lowCapacity (7)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the battery.
+ unknown(1) indicates the device status is unknown.
+ notInstalled(2) indicates the device is not installed.
+ ok(3) indicates the battery status is OK.
+ failed(4) indicates the battery status is failed.
+ highTemperature(5) indicates the battery has a high temperature condition.
+ replaceImmediately(6) indicates the battery must be replaced immediately.
+ lowCapacity(7) indicates the battery has a low capacity."
+ ::= { upsDiagBatteryEntry 3 }
+
+upsDiagBatterySerialNumber OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The serial number of the battery."
+ ::= { upsDiagBatteryEntry 4 }
+
+upsDiagBatteryFirmwareRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The firmware revision of the battery."
+ ::= { upsDiagBatteryEntry 5 }
+
+upsDiagBatteryManufactureDate OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The manufacture date of the battery."
+ ::= { upsDiagBatteryEntry 6 }
+
+upsDiagBatteryType OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The battery type or rating for the battery."
+ ::= { upsDiagBatteryEntry 7 }
+
+-- the upsDiagnosticSubsystem group
+
+upsDiagSubSysFrameTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of frames attached to the UPS including the Main frame."
+ ::= { upsDiagnosticSubsystem 1 }
+
+upsDiagSubSysFrameTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF UpsDiagSubSysFrameEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for diagnostics of individual XR Frames."
+ ::= { upsDiagnosticSubsystem 2 }
+
+upsDiagSubSysFrameEntry OBJECT-TYPE
+ SYNTAX UpsDiagSubSysFrameEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The diagnostics of an XR Frame."
+ INDEX { upsDiagSubSysFrameIndex}
+ ::= { upsDiagSubSysFrameTable 1 }
+
+UpsDiagSubSysFrameEntry ::=
+ SEQUENCE {
+ upsDiagSubSysFrameIndex INTEGER,
+ upsDiagSubSysFrameType INTEGER,
+ upsDiagSubSysFrameFirmwareRev DisplayString,
+ upsDiagSubSysFrameHardwareRev DisplayString,
+ upsDiagSubSysFrameSerialNum DisplayString,
+ upsDiagSubSysFrameManufactureDate DisplayString
+ }
+
+upsDiagSubSysFrameIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The frame index entry."
+ ::= { upsDiagSubSysFrameEntry 1 }
+
+upsDiagSubSysFrameType OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown (1),
+ notInstalled (2),
+ frameTypeMain (3),
+ frameTypeXR (4),
+ frameTypeLXR (5)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The type of Frame.
+ unknown(1) indicates the device status is unknown.
+ notInstalled(2) indicates the device is not installed.
+ frameTypeMain(3) indicates the the frame type is the Main Frame.
+ frameTypeXR(4) indicates the frame type is an XR Frame.
+ frameTypeLXR(5) indicates the frame type is an LXR Frame."
+ ::= { upsDiagSubSysFrameEntry 2 }
+
+upsDiagSubSysFrameFirmwareRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The firmware revision of the frame."
+ ::= { upsDiagSubSysFrameEntry 3 }
+
+upsDiagSubSysFrameHardwareRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The hardware revision of the frame."
+ ::= { upsDiagSubSysFrameEntry 4 }
+
+upsDiagSubSysFrameSerialNum OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The serial number of the frame."
+ ::= { upsDiagSubSysFrameEntry 5 }
+
+upsDiagSubSysFrameManufactureDate OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The manufacture date of the frame."
+ ::= { upsDiagSubSysFrameEntry 6 }
+
+upsDiagSubSysIntBypSwitchTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of Internal Bypass switches attached to the UPS."
+ ::= { upsDiagnosticSubsystem 3 }
+
+upsDiagSubSysIntBypSwitchTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF UpsDiagSubSysIntBypSwitchEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for diagnostics of the Internal Bypass Switch."
+ ::= { upsDiagnosticSubsystem 4 }
+
+upsDiagSubSysIntBypSwitchEntry OBJECT-TYPE
+ SYNTAX UpsDiagSubSysIntBypSwitchEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The diagnostics of the Internal Bypass Switch."
+ INDEX { upsDiagSubSysIntBypSwitchIndex}
+ ::= { upsDiagSubSysIntBypSwitchTable 1 }
+
+UpsDiagSubSysIntBypSwitchEntry ::=
+ SEQUENCE {
+ upsDiagSubSysIntBypSwitchFrameIndex INTEGER,
+ upsDiagSubSysIntBypSwitchIndex INTEGER,
+ upsDiagSubSysIntBypSwitchStatus INTEGER,
+ upsDiagSubSysIntBypSwitchFirmwareRev DisplayString,
+ upsDiagSubSysIntBypSwitchHardwareRev DisplayString,
+ upsDiagSubSysIntBypSwitchSerialNum DisplayString,
+ upsDiagSubSysIntBypSwitchManufactureDate DisplayString
+ }
+
+upsDiagSubSysIntBypSwitchFrameIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The frame index entry."
+ ::= { upsDiagSubSysIntBypSwitchEntry 1 }
+
+upsDiagSubSysIntBypSwitchIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The Internal Bypass Switch index entry."
+ ::= { upsDiagSubSysIntBypSwitchEntry 2 }
+
+upsDiagSubSysIntBypSwitchStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown (1),
+ notInstalled (2),
+ offOk (3),
+ onOk (4),
+ offFail (5),
+ onFail (6),
+ lostComm (7)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The Internal Bypass Switch status.
+ unknown(1) indicates the device status is unknown.
+ notInstalled(2) indicates the device is not installed.
+ offOk(3) indicates the device status is off and OK.
+ onOk(4) indicates the device status is on and OK.
+ offFail(5) indicates the device status is off and failed.
+ onFail(6) indicates the device status is on and failed.
+ lostComm(7) indicates the device has lost communication."
+ ::= { upsDiagSubSysIntBypSwitchEntry 3 }
+
+upsDiagSubSysIntBypSwitchFirmwareRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The firmware revision of the Internal Bypass Switch."
+ ::= { upsDiagSubSysIntBypSwitchEntry 4 }
+
+upsDiagSubSysIntBypSwitchHardwareRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The hardware revision of the Internal Bypass Switch."
+ ::= { upsDiagSubSysIntBypSwitchEntry 5 }
+
+upsDiagSubSysIntBypSwitchSerialNum OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The serial number of the Internal Bypass Switch."
+ ::= { upsDiagSubSysIntBypSwitchEntry 6 }
+
+upsDiagSubSysIntBypSwitchManufactureDate OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The manufacture date of the Internal Bypass Switch."
+ ::= { upsDiagSubSysIntBypSwitchEntry 7 }
+
+upsDiagSubSysBattMonitorTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of Battery Monitor Boards attached to the UPS."
+ ::= { upsDiagnosticSubsystem 5 }
+
+upsDiagSubSysBattMonitorTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF UpsDiagSubSysBattMonitorEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for diagnostics of the Battery Monitor Board."
+ ::= { upsDiagnosticSubsystem 6 }
+
+upsDiagSubSysBattMonitorEntry OBJECT-TYPE
+ SYNTAX UpsDiagSubSysBattMonitorEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The diagnostics of the Battery Monitor Board."
+ INDEX { upsDiagSubSysBattMonitorIndex}
+ ::= { upsDiagSubSysBattMonitorTable 1 }
+
+UpsDiagSubSysBattMonitorEntry ::=
+ SEQUENCE {
+ upsDiagSubSysBattMonitorFrameIndex INTEGER,
+ upsDiagSubSysBattMonitorIndex INTEGER,
+ upsDiagSubSysBattMonitorStatus INTEGER,
+ upsDiagSubSysBattMonitorFirmwareRev DisplayString,
+ upsDiagSubSysBattMonitorHardwareRev DisplayString,
+ upsDiagSubSysBattMonitorSerialNum DisplayString,
+ upsDiagSubSysBattMonitorManufactureDate DisplayString
+ }
+
+upsDiagSubSysBattMonitorFrameIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The frame index entry."
+ ::= { upsDiagSubSysBattMonitorEntry 1 }
+
+upsDiagSubSysBattMonitorIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index of the Battery Monitor Board."
+ ::= { upsDiagSubSysBattMonitorEntry 2 }
+
+upsDiagSubSysBattMonitorStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown (1),
+ notInstalled (2),
+ offOk (3),
+ onOk (4),
+ offFail (5),
+ onFail (6),
+ lostComm (7)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the Battery Monitor Board.
+ unknown(1) indicates the device status is unknown.
+ notInstalled(2) indicates the device is not installed.
+ offOk(3) indicates the device status is off and OK.
+ onOk(4) indicates the device status is on and OK.
+ offFail(5) indicates the device status is off and failed.
+ onFail(6) indicates the device status is on and failed.
+ lostComm(7) indicates the device has lost communication."
+ ::= { upsDiagSubSysBattMonitorEntry 3 }
+
+upsDiagSubSysBattMonitorFirmwareRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The firmware revision of the Battery Monitor Board."
+ ::= { upsDiagSubSysBattMonitorEntry 4 }
+
+upsDiagSubSysBattMonitorHardwareRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The hardware revision of the Battery Monitor Board."
+ ::= { upsDiagSubSysBattMonitorEntry 5 }
+
+upsDiagSubSysBattMonitorSerialNum OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The serial number of the Battery Monitor Board."
+ ::= { upsDiagSubSysBattMonitorEntry 6 }
+
+upsDiagSubSysBattMonitorManufactureDate OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The date of the manufacture for the Battery Monitor Board."
+ ::= { upsDiagSubSysBattMonitorEntry 7 }
+
+upsDiagSubSysExternalSwitchGearTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of External Switch Gears attached to the UPS."
+ ::= { upsDiagnosticSubsystem 7 }
+
+upsDiagSubSysExternalSwitchGearTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF UpsDiagSubSysExternalSwitchGearEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for diagnostics of the individual External Switch Gear."
+ ::= { upsDiagnosticSubsystem 8 }
+
+upsDiagSubSysExternalSwitchGearEntry OBJECT-TYPE
+ SYNTAX UpsDiagSubSysExternalSwitchGearEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The diagnostics of an individual External Switch Gear."
+ INDEX { upsDiagSubSysExternalSwitchGearIndex}
+ ::= { upsDiagSubSysExternalSwitchGearTable 1 }
+
+UpsDiagSubSysExternalSwitchGearEntry ::=
+ SEQUENCE {
+ upsDiagSubSysExternalSwitchGearFrameIndex INTEGER,
+ upsDiagSubSysExternalSwitchGearIndex INTEGER,
+ upsDiagSubSysExternalSwitchGearStatus INTEGER,
+ upsDiagSubSysExternalSwitchGearFirmwareRev DisplayString,
+ upsDiagSubSysExternalSwitchGearHardwareRev DisplayString,
+ upsDiagSubSysExternalSwitchGearSerialNum DisplayString,
+ upsDiagSubSysExternalSwitchGearManufactureDate DisplayString
+ }
+
+upsDiagSubSysExternalSwitchGearFrameIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The frame index entry."
+ ::= { upsDiagSubSysExternalSwitchGearEntry 1 }
+
+upsDiagSubSysExternalSwitchGearIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index of the External Switch Gear."
+ ::= { upsDiagSubSysExternalSwitchGearEntry 2 }
+
+upsDiagSubSysExternalSwitchGearStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown (1),
+ notInstalled (2),
+ offOk (3),
+ onOk (4),
+ offFail (5),
+ onFail (6),
+ lostComm (7)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the External Switch Gear.
+ unknown(1) indicates the device status is unknown.
+ notInstalled(2) indicates the device is not installed.
+ offOk(3) indicates the device status is off and OK.
+ onOk(4) indicates the device status is on and OK.
+ offFail(5) indicates the device status is off and failed.
+ onFail(6) indicates the device status is on and failed.
+ lostComm(7) indicates the device has lost communication."
+ ::= { upsDiagSubSysExternalSwitchGearEntry 3 }
+
+upsDiagSubSysExternalSwitchGearFirmwareRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The firmware revision of the External Switch Gear monitor card."
+ ::= { upsDiagSubSysExternalSwitchGearEntry 4 }
+
+upsDiagSubSysExternalSwitchGearHardwareRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The hardware revision of the External Switch Gear monitor card."
+ ::= { upsDiagSubSysExternalSwitchGearEntry 5 }
+
+upsDiagSubSysExternalSwitchGearSerialNum OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The serial number of the External Switch Gear monitor card."
+ ::= { upsDiagSubSysExternalSwitchGearEntry 6 }
+
+upsDiagSubSysExternalSwitchGearManufactureDate OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The date of the manufacture for the External Switch Gear monitor card."
+ ::= { upsDiagSubSysExternalSwitchGearEntry 7 }
+
+upsDiagSubSysDisplayInterfaceCardTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of Display Interface Cards attached to the UPS."
+ ::= { upsDiagnosticSubsystem 9 }
+
+upsDiagSubSysDisplayInterfaceCardTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF UpsDiagSubSysDisplayInterfaceCardEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for diagnostics of individual Display Interface Cards."
+ ::= { upsDiagnosticSubsystem 10 }
+
+upsDiagSubSysDisplayInterfaceCardEntry OBJECT-TYPE
+ SYNTAX UpsDiagSubSysDisplayInterfaceCardEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The diagnostics of a Display Interface Card."
+ INDEX { upsDiagSubSysDisplayInterfaceCardIndex}
+ ::= { upsDiagSubSysDisplayInterfaceCardTable 1 }
+
+UpsDiagSubSysDisplayInterfaceCardEntry ::=
+ SEQUENCE {
+ upsDiagSubSysDisplayInterfaceCardFrameIndex INTEGER,
+ upsDiagSubSysDisplayInterfaceCardIndex INTEGER,
+ upsDiagSubSysDisplayInterfaceCardStatus INTEGER
+ }
+
+upsDiagSubSysDisplayInterfaceCardFrameIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The frame index entry."
+ ::= { upsDiagSubSysDisplayInterfaceCardEntry 1 }
+
+upsDiagSubSysDisplayInterfaceCardIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index of the Display Interface Card."
+ ::= { upsDiagSubSysDisplayInterfaceCardEntry 2 }
+
+upsDiagSubSysDisplayInterfaceCardStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown (1),
+ notInstalled (2),
+ offOk (3),
+ onOk (4),
+ offFail (5),
+ onFail (6),
+ lostComm (7)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the Display Interface Card.
+ unknown(1) indicates the device status is unknown.
+ notInstalled(2) indicates the device is not installed.
+ offOk(3) indicates the device status is off and OK.
+ onOk(4) indicates the device status is on and OK.
+ offFail(5) indicates the device status is off and failed.
+ onFail(6) indicates the device status is on and failed.
+ lostComm(7) indicates the device has lost communication."
+ ::= { upsDiagSubSysDisplayInterfaceCardEntry 3 }
+
+upsDiagSubSysDCCircuitBreakerTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of DC Circuit Breakers attached to the UPS."
+ ::= { upsDiagnosticSubsystem 11 }
+
+upsDiagSubSysDCCircuitBreakerTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF UpsDiagSubSysDCCircuitBreakerEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for diagnostics of individual DC Circuit Breakers."
+ ::= { upsDiagnosticSubsystem 12 }
+
+upsDiagSubSysDCCircuitBreakerEntry OBJECT-TYPE
+ SYNTAX UpsDiagSubSysDCCircuitBreakerEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The diagnostics of a DC Circuit Breaker."
+ INDEX { upsDiagSubSysDCCircuitBreakerIndex}
+ ::= { upsDiagSubSysDCCircuitBreakerTable 1 }
+
+UpsDiagSubSysDCCircuitBreakerEntry ::=
+ SEQUENCE {
+ upsDiagSubSysDCCircuitBreakerFrameIndex INTEGER,
+ upsDiagSubSysDCCircuitBreakerIndex INTEGER,
+ upsDiagSubSysDCCircuitBreakerStatus INTEGER
+ }
+
+upsDiagSubSysDCCircuitBreakerFrameIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The frame index entry."
+ ::= { upsDiagSubSysDCCircuitBreakerEntry 1 }
+
+upsDiagSubSysDCCircuitBreakerIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index of the DC Circuit Breaker."
+ ::= { upsDiagSubSysDCCircuitBreakerEntry 2 }
+
+upsDiagSubSysDCCircuitBreakerStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown (1),
+ notInstalled (2),
+ opened (3),
+ closed (4)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the DC Circuit Breaker.
+ unknown(1) indicates the circuit breaker status is unknown.
+ notInstalled(2) indicates the circuit breaker is not installed.
+ opened(3) indicates the circuit breaker is opened.
+ closed(4) indicates the circuit breaker is closed."
+ ::= { upsDiagSubSysDCCircuitBreakerEntry 3 }
+
+upsDiagSubSysSystemPowerSupplyTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of System Power Supplies attached to the UPS."
+ ::= { upsDiagnosticSubsystem 13 }
+
+upsDiagSubSysSystemPowerSupplyTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF UpsDiagSubSysSystemPowerSupplyEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for diagnostics of individual System Power Supplies."
+ ::= { upsDiagnosticSubsystem 14 }
+
+upsDiagSubSysSystemPowerSupplyEntry OBJECT-TYPE
+ SYNTAX UpsDiagSubSysSystemPowerSupplyEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The diagnostics of a System Power Supply."
+ INDEX { upsDiagSubSysSystemPowerSupplyIndex}
+ ::= { upsDiagSubSysSystemPowerSupplyTable 1 }
+
+UpsDiagSubSysSystemPowerSupplyEntry ::=
+ SEQUENCE {
+ upsDiagSubSysSystemPowerSupplyFrameIndex INTEGER,
+ upsDiagSubSysSystemPowerSupplyIndex INTEGER,
+ upsDiagSubSysSystemPowerSupplyStatus INTEGER
+ }
+
+upsDiagSubSysSystemPowerSupplyFrameIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The frame index entry."
+ ::= { upsDiagSubSysSystemPowerSupplyEntry 1 }
+
+upsDiagSubSysSystemPowerSupplyIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index of a System Power Supply."
+ ::= { upsDiagSubSysSystemPowerSupplyEntry 2 }
+
+upsDiagSubSysSystemPowerSupplyStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown (1),
+ notInstalled (2),
+ offOk (3),
+ onOk (4),
+ offFail (5),
+ onFail (6),
+ lostComm (7)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the System Power Supply.
+ unknown(1) indicates the device status is unknown.
+ notInstalled(2) indicates the device is not installed.
+ offOk(3) indicates the device status is off and OK.
+ onOk(4) indicates the device status is on and OK.
+ offFail(5) indicates the device status is off and failed.
+ onFail(6) indicates the device status is on and failed.
+ lostComm(7) indicates the device has lost communication."
+ ::= { upsDiagSubSysSystemPowerSupplyEntry 3 }
+
+upsDiagSubSysXRCommunicationCardTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of XR Communication Cards attached to the UPS."
+ ::= { upsDiagnosticSubsystem 15 }
+
+upsDiagSubSysXRCommunicationCardTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF UpsDiagSubSysXRCommunicationCardEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for diagnostics of individual XR Communication Cards."
+ ::= { upsDiagnosticSubsystem 16 }
+
+upsDiagSubSysXRCommunicationCardEntry OBJECT-TYPE
+ SYNTAX UpsDiagSubSysXRCommunicationCardEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The diagnostics of an XR Communication Card."
+ INDEX { upsDiagSubSysXRCommunicationCardIndex}
+ ::= { upsDiagSubSysXRCommunicationCardTable 1 }
+
+UpsDiagSubSysXRCommunicationCardEntry ::=
+ SEQUENCE {
+ upsDiagSubSysXRCommunicationCardFrameIndex INTEGER,
+ upsDiagSubSysXRCommunicationCardIndex INTEGER,
+ upsDiagSubSysXRCommunicationCardStatus INTEGER
+ }
+
+upsDiagSubSysXRCommunicationCardFrameIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The frame index entry."
+ ::= { upsDiagSubSysXRCommunicationCardEntry 1 }
+
+upsDiagSubSysXRCommunicationCardIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index of an XR Communication Card."
+ ::= { upsDiagSubSysXRCommunicationCardEntry 2 }
+
+upsDiagSubSysXRCommunicationCardStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown (1),
+ notInstalled (2),
+ offOk (3),
+ onOk (4),
+ offFail (5),
+ onFail (6),
+ lostComm (7)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the XR Communication Card.
+ unknown(1) indicates the device status is unknown.
+ notInstalled(2) indicates the device is not installed.
+ offOk(3) indicates the device status is off and OK.
+ onOk(4) indicates the device status is on and OK.
+ offFail(5) indicates the device status is off and failed.
+ onFail(6) indicates the device status is on and failed.
+ lostComm(7) indicates the device has lost communication."
+ ::= { upsDiagSubSysXRCommunicationCardEntry 3 }
+
+upsDiagSubSysExternalPowerFrameBoardTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of External Power Frame Boards attached to the UPS."
+ ::= { upsDiagnosticSubsystem 17 }
+
+upsDiagSubSysExternalPowerFrameBoardTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF UpsDiagSubSysExternalPowerFrameBoardEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for diagnostics of individual External Power Frame Boards."
+ ::= { upsDiagnosticSubsystem 18 }
+
+upsDiagSubSysExternalPowerFrameBoardEntry OBJECT-TYPE
+ SYNTAX UpsDiagSubSysExternalPowerFrameBoardEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The diagnostics of an External Power Frame Board."
+ INDEX { upsDiagSubSysExternalPowerFrameBoardIndex}
+ ::= { upsDiagSubSysExternalPowerFrameBoardTable 1 }
+
+UpsDiagSubSysExternalPowerFrameBoardEntry ::=
+ SEQUENCE {
+ upsDiagSubSysExternalPowerFrameBoardFrameIndex INTEGER,
+ upsDiagSubSysExternalPowerFrameBoardIndex INTEGER,
+ upsDiagSubSysExternalPowerFrameBoardStatus INTEGER
+ }
+
+upsDiagSubSysExternalPowerFrameBoardFrameIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The frame index entry."
+ ::= { upsDiagSubSysExternalPowerFrameBoardEntry 1 }
+
+upsDiagSubSysExternalPowerFrameBoardIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index of an External Power Frame Board."
+ ::= { upsDiagSubSysExternalPowerFrameBoardEntry 2 }
+
+upsDiagSubSysExternalPowerFrameBoardStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown (1),
+ notInstalled (2),
+ offOk (3),
+ onOk (4),
+ offFail (5),
+ onFail (6),
+ lostComm (7)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the External Power Frame Board.
+ unknown(1) indicates the device status is unknown.
+ notInstalled(2) indicates the device is not installed.
+ offOk(3) indicates the device status is off and OK.
+ onOk(4) indicates the device status is on and OK.
+ offFail(5) indicates the device status is off and failed.
+ onFail(6) indicates the device status is on and failed.
+ lostComm(7) indicates the device has lost communication."
+ ::= { upsDiagSubSysExternalPowerFrameBoardEntry 3 }
+
+upsDiagSubSysChargerTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of Chargers attached to the UPS."
+ ::= { upsDiagnosticSubsystem 19 }
+
+ upsDiagSubSysChargerTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF UpsDiagSubSysChargerEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for diagnostics of individual chargers."
+ ::= { upsDiagnosticSubsystem 20 }
+
+upsDiagSubSysChargerEntry OBJECT-TYPE
+ SYNTAX UpsDiagSubSysChargerEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The diagnostics of a charger."
+ INDEX { upsDiagSubSysChargerIndex}
+ ::= { upsDiagSubSysChargerTable 1 }
+
+UpsDiagSubSysChargerEntry ::=
+ SEQUENCE {
+ upsDiagSubSysChargerFrameIndex INTEGER,
+ upsDiagSubSysChargerIndex INTEGER,
+ upsDiagSubSysChargerStatus INTEGER
+ }
+
+upsDiagSubSysChargerFrameIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The frame index entry."
+ ::= { upsDiagSubSysChargerEntry 1 }
+
+upsDiagSubSysChargerIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index of a charger."
+ ::= { upsDiagSubSysChargerEntry 2 }
+
+upsDiagSubSysChargerStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown (1),
+ notInstalled (2),
+ offOk (3),
+ onOk (4),
+ offFail (5),
+ onFail (6),
+ lostComm (7)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the Charger.
+ unknown(1) indicates the device status is unknown.
+ notInstalled(2) indicates the device is not installed.
+ offOk(3) indicates the device status is off and OK.
+ onOk(4) indicates the device status is on and OK.
+ offFail(5) indicates the device status is off and failed.
+ onFail(6) indicates the device status is on and failed.
+ lostComm(7) indicates the device has lost communication."
+ ::= { upsDiagSubSysChargerEntry 3 }
+
+-- the upsDiagnosticExternalDevices group
+
+upsDiagSwitchGearStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown (1),
+ notInstalled (2),
+ ok (3),
+ fail (4),
+ lostComm (5),
+ overtemp (6)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the Switch Gear.
+ unknown(1) indicates the device status is unknown.
+ notInstalled(2) indicates the device is not installed.
+ ok(3) indicates the device status is OK.
+ fail(4) indicates the device status has failed.
+ lostComm(5) indicates the device has lost communication.
+ overtemp(6) indicates the device has an over temperature condition."
+ ::= { upsDiagSwitchGear 1 }
+
+upsDiagSwitchGearInputSwitchStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown (1),
+ notInstalled (2),
+ opened (3),
+ closed (4)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the Switch Gear Input Switch.
+ unknown(1) indicates the switch status is unknown.
+ notInstalled(2) indicates the switch is not installed.
+ opened(3) indicates the switch is opened.
+ closed(4) indicates the switch is closed."
+ ::= { upsDiagSwitchGear 2 }
+
+upsDiagSwitchGearOutputSwitchStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown (1),
+ notInstalled (2),
+ opened (3),
+ closed (4)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the Switch Gear Output Switch.
+ unknown(1) indicates the switch status is unknown.
+ notInstalled(2) indicates the switch is not installed.
+ opened(3) indicates the switch is opened.
+ closed(4) indicates the switch is closed."
+ ::= { upsDiagSwitchGear 3 }
+
+upsDiagSwitchGearBypassSwitchStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown (1),
+ notInstalled (2),
+ opened (3),
+ closed (4)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the Switch Gear Bypass Switch.
+ unknown(1) indicates the switch status is unknown.
+ notInstalled(2) indicates the switch is not installed.
+ opened(3) indicates the switch is opened.
+ closed(4) indicates the switch is closed."
+ ::= { upsDiagSwitchGear 4 }
+
+upsDiagMCCBBoxStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown (1),
+ notInstalled (2),
+ opened (3),
+ closed (4)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the MCCB Box (Molded Case Circuit Breaker Box) external device.
+ unknown(1) indicates the device status is unknown.
+ notInstalled(2) indicates the device is not installed.
+ opened(3) indicates the circuit is opened.
+ closed(4) indicates the circuit is closed."
+ ::= { upsDiagMCCBBox 1 }
+
+upsDiagTransformerStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown (1),
+ notInstalled (2),
+ ok (3),
+ fail (4),
+ lostComm (5),
+ overtemp (6),
+ opened (7),
+ closed (8)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the External Transformer.
+ unknown(1) indicates the device status is unknown.
+ notInstalled(2) indicates the device is not installed.
+ ok(3) indicates the device status is OK.
+ fail(4) indicates the device status has failed.
+ lostComm(5) indicates the device has lost communication.
+ overtemp(6) indicates the device has an over temperature condition.
+ opened(7) indicates the circuit is opened.
+ closed(8) indicates the circuit is closed."
+ ::= { upsDiagTransformer 1 }
+
+-- the upsDiagnosticComBus group
+
+upsDiagComBusInternalMIMStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown (1),
+ notInstalled (2),
+ ok (3),
+ lostComm (4),
+ rxFailure (5),
+ txFailure (6)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the internal MIM communication bus.
+ unknown(1) indicates the device status is unknown.
+ notInstalled(2) indicates the device is not installed.
+ ok(3) indicates the device status is OK.
+ lostComm(4) indicates the device has lost communication.
+ rxFailure(5) indicates the device has a receive failure.
+ txFailure(6) indicates the device has a transmit failure."
+ ::= { upsDiagnosticComBus 1 }
+
+upsDiagComBusInternalRIMStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown (1),
+ notInstalled (2),
+ ok (3),
+ lostComm (4),
+ rxFailure (5),
+ txFailure (6)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the internal RIM communication bus.
+ unknown(1) indicates the device status is unknown.
+ notInstalled(2) indicates the device is not installed.
+ ok(3) indicates the device status is OK.
+ lostComm(4) indicates the device has lost communication.
+ rxFailure(5) indicates the device has a receive failure.
+ txFailure(6) indicates the device has a transmit failure."
+ ::= { upsDiagnosticComBus 2 }
+
+upsDiagComBusMIMtoRIMStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown (1),
+ notInstalled (2),
+ ok (3),
+ lostComm (4),
+ rxFailure (5),
+ txFailure (6)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the MIM to RIM communication bus.
+ unknown(1) indicates the device status is unknown.
+ notInstalled(2) indicates the device is not installed.
+ ok(3) indicates the device status is OK.
+ lostComm(4) indicates the device has lost communication.
+ rxFailure(5) indicates the device has a receive failure.
+ txFailure(6) indicates the device has a transmit failure."
+ ::= { upsDiagnosticComBus 3 }
+
+upsDiagComBusExternalMIMStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown (1),
+ notInstalled (2),
+ ok (3),
+ lostComm (4),
+ rxFailure (5),
+ txFailure (6)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the external MIM communication bus.
+ unknown(1) indicates the device status is unknown.
+ notInstalled(2) indicates the device is not installed.
+ ok(3) indicates the device status is OK.
+ lostComm(4) indicates the device has lost communication.
+ rxFailure(5) indicates the device has a receive failure.
+ txFailure(6) indicates the device has a transmit failure."
+ ::= { upsDiagnosticComBus 4 }
+
+upsDiagComBusExternalRIMStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown (1),
+ notInstalled (2),
+ ok (3),
+ lostComm (4),
+ rxFailure (5),
+ txFailure (6)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the external RIM communication bus.
+ unknown(1) indicates the device status is unknown.
+ notInstalled(2) indicates the device is not installed.
+ ok(3) indicates the device status is OK.
+ lostComm(4) indicates the device has lost communication.
+ rxFailure(5) indicates the device has a receive failure.
+ txFailure(6) indicates the device has a transmit failure."
+ ::= { upsDiagnosticComBus 5 }
+
+-- the serialPort2Config group
+
+serialPort2Mode OBJECT-TYPE
+ SYNTAX INTEGER {
+ localConsole(1),
+ passthrough(2)
+ }
+ ACCESS read-write
+ STATUS obsolete
+ DESCRIPTION
+ "Setting this variable to passthrough will enable mini's port2
+ behave like a UPS port. Choosing localConsole will enable the port
+ to be used as local console."
+ ::= { serialPort2Config 1 }
+-- the serialPort2Control group
+
+setPulseOnTXD OBJECT-TYPE
+ SYNTAX INTEGER {
+ noSetPulseOnTXD(1),
+ setPulseOnTXD(2),
+ setTXDLow(3),
+ setTXDHigh(4)
+
+ }
+ ACCESS read-write
+ STATUS obsolete
+ DESCRIPTION
+ "Setting this variable to setPulseOnTXD(2)
+ causes adapter to generate a PULSE on TXD pin of serial port 2.
+ The duration in the prototype implementation will be 1 second.
+
+ Setting this value to noSetPulseOnTXD(1) has no
+ effect.
+
+ The value noSetPulseOnTXD(1) will always be returned
+ when the variable is read.
+
+ Setting this value to setTXDLow(3), or setTXDHigh(4) will keep TXD
+ always low or high respectively."
+ ::= { serialPort2Control 1 }
+
+-- the sPDUIdent group
+
+sPDUIdentHardwareRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The hardware revision of the PDU. This value
+ is set at the factory."
+ ::= { sPDUIdent 1 }
+
+sPDUIdentFirmwareRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "An 8 byte ID string identifying the PDU firmware revision.
+ This value is set at the factory."
+ ::= { sPDUIdent 2 }
+
+
+sPDUIdentDateOfManufacture OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The date when the PDU was manufactured in mm/dd/yy format.
+ This value is set at the factory. The year 2000 will be
+ represented by 00."
+ ::= { sPDUIdent 3 }
+
+sPDUIdentModelNumber OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A 10-character string identifying the model number of
+ the PDU internal. This value is set at the factory."
+ ::= { sPDUIdent 4 }
+
+sPDUIdentSerialNumber OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A 12-character string identifying the serial number of
+ the PDU internal microprocessor. This value is set at
+ the factory."
+ ::= { sPDUIdent 5 }
+
+
+-- the sPDUMasterControl group
+
+sPDUMasterControlSwitch OBJECT-TYPE
+ SYNTAX INTEGER {
+ turnAllOnNow (1),
+ turnAllOnSequence (2),
+ turnAllOffNow (3),
+ rebootAllNow (4),
+ rebootAllSequence (5),
+ noCommand (6),
+ turnAllOffSequence (7)
+ }
+
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this OID to turnAllOnNow (1) will turn all outlets
+ on immediately.
+
+ Setting this OID to turnAllOnSequence (2) will turn all outlets
+ on as defined by each outlet's sPDUOutletPowerOnTime OID value.
+
+ Setting this OID to turnAllOff (3) will turn all outlets
+ off immediately.
+
+ Setting this OID to rebootAllNow (4) will reboot all outlets
+ immediately.
+
+ For MasterSwitch firmware version 1.X, setting this OID to
+ rebootAllSequence (5) reboots all outlets, with power returned
+ to the outlets in the sequence defined by each outlet's
+ sPDUOutletPowerOnTime OID value.
+
+ For MasterSwitch firmware version 2.X, setting this OID to
+ rebootAllSequence (5) will cause a turnAllOffSequence to be performed.
+ Once all outlets are off, the MasterSwitch will then delay the
+ sPDUMasterConfigReboot OID time, and then perform a turnAllOnSequence.
+
+ For MasterSwitch firmware version 2.X, setting this OID to
+ turnAllOffSequence (7) will turn all outlets off as defined by
+ each outlet's sPDUOutletPowerOffTime OID value.
+
+ For MasterSwitch firmware version 1.X, setting this OID to
+ turnAllOffSequence (7) will have no effect.
+
+ Getting this OID will return the noCommand (6) value."
+
+ ::= { sPDUMasterControl 1 }
+
+
+sPDUMasterState OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will cause the status of all outlets to be
+ returned. This OID is provided for informational purposes only.
+ To change the outlet state, the user should use the sPDUOutletCtl
+ OID in the sPDUOutletControlTable.
+
+ The format of the data returned is a character string consisting
+ of the word 'On' if the outlet is on or 'Off' if the outlet is
+ off. At least one space will delimit each outlet entry in the
+ string.
+
+ If the outlet states are unknown, the character string 'Unknown'
+ will be returned. This signifies that there is an inconsistancy
+ in the PDU. In the rare case that this should happen, the user
+ is advised to shut down all equipment powered by the PDU and
+ then cycle the PDU's power. This will put the PDU in a consistent
+ state."
+
+ ::= { sPDUMasterControl 2 }
+
+sPDUMasterPending OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will cause the command pending status of all outlets to be returned.
+
+ The format of the data returned is a character string consisting
+ of the word 'Yes' if a command is pending for the outlet or 'No'
+ if there is no command pending for the outlet. At least one
+ space will delimit each outlet entry in the string.
+
+ If the pending states are unknown, the character string 'Unknown'
+ will be returned. This signifies that there is an inconsistancy
+ in the PDU. In the rare case that this should happen, the user
+ is advised to shut down all equipment powered by the PDU and then
+ cycle the PDU's power. This will put the PDU in a consistent state."
+ ::= { sPDUMasterControl 3 }
+
+
+-- the sPDUMasterConfig group
+
+sPDUMasterConfigPowerOn OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ " The amount of delay, in seconds, between when
+ power is provided to the PDU and when the PDU
+ provides basic master power to the outlets.
+
+ Allowed values are:
+
+ -1 never apply power automatically.
+ 0 apply power immediately.
+ 15 apply power in 15 seconds.
+ 30 apply power in 30 seconds.
+ 45 apply power in 45 seconds.
+ 60 apply power in 60 seconds (1 minute).
+ 120 apply power in 120 seconds (2 minutes).
+ 300 apply power in 300 seconds (5 minutes).
+
+ If a value other than a supported value is provided in a
+ set request, the PDU interprets it as the next lower
+ acceptable value. If the provided value is lower than
+ the lowest acceptable value, the lowest acceptable
+ value is used."
+
+ ::= { sPDUMasterConfig 1 }
+
+sPDUMasterConfigReboot OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "During a reboot sequence, power is turned off and then
+ back on. This OID defines the amount of time to wait,
+ in seconds, after turning the power off, at the start
+ of the sequence, before turning power back on, at the
+ end of the reboot sequence.
+
+ Allowed values are:
+
+ 5 wait 5 seconds between off/on.
+ 10 wait 10 seconds between off/on.
+ 15 wait 15 seconds between off/on.
+ 20 wait 20 seconds between off/on.
+ 30 wait 30 seconds between off/on.
+ 45 wait 45 seconds between off/on.
+ 60 wait 60 seconds (1 minute) between off/on.
+
+ If a value other than a supported value is provided in a
+ set request, the PDU interprets it as the next lower
+ acceptable value. If the provided value is lower than
+ the lowest acceptable value, the lowest acceptable
+ value is used.
+
+ This OID is read-only for the MasterSwitch version 2.X and is the
+ maximum sPDUOutletRebootDuration OID of the individual outlets."
+
+ ::= { sPDUMasterConfig 2 }
+
+sPDUMasterConfigPDUName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the PDU. The maximum value is 20 characters."
+ ::= { sPDUMasterConfig 3 }
+
+
+
+-- the sPDUOutletControl group
+sPDUOutletControlTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of outlets for the PDU."
+ ::= { sPDUOutletControl 1 }
+
+
+sPDUOutletControlTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF OutletControlEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for control of individual outlet switches. The number of
+ entries is contained in the sPDUOutletControlTableSize OID."
+ ::= { sPDUOutletControl 2 }
+
+sPDUOutletControlEntry OBJECT-TYPE
+ SYNTAX OutletControlEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The outlets to control."
+ INDEX { sPDUOutletControlIndex}
+ ::= { sPDUOutletControlTable 1 }
+
+OutletControlEntry ::=
+ SEQUENCE {
+ sPDUOutletControlIndex INTEGER,
+ sPDUOutletPending INTEGER,
+ sPDUOutletCtl INTEGER,
+ sPDUOutletCtlName DisplayString
+ }
+
+sPDUOutletControlIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the outlet entry."
+ ::= { sPDUOutletControlEntry 1 }
+
+sPDUOutletPending OBJECT-TYPE
+ SYNTAX INTEGER{
+ commandPending (1),
+ noCommandPending (2),
+ commandPendingUnknown (3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Reports whether the current outlet has a pending command.
+
+ If the commandPendingUnknown (3) value is returned, all
+ devices powered by the PDU should be shut down. The PDU's
+ power should then be cycled to clear this condition."
+
+ ::= { sPDUOutletControlEntry 2 }
+
+sPDUOutletCtl OBJECT-TYPE
+ SYNTAX INTEGER {
+ outletOn (1),
+ outletOff (2),
+ outletReboot (3),
+ outletUnknown (4),
+ outletOnWithDelay (5),
+ outletOffWithDelay (6),
+ outletRebootWithDelay (7)
+ }
+
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this variable will return the outlet state. If
+ the outlet is on, the outletOn (1) value will be returned.
+ If the outlet is off, the outletOff (2) value will be
+ returned.
+
+ If the state of the outlet cannot be determined, the
+ outletUnknown (4) value will be returned. If the
+ outletUnknown condition should occur, all devices
+ powered by the PDU should be shut down. The PDU's power
+ should then be cycled to clear this condition.
+
+ Setting this variable to outletOn (1) will turn the outlet on.
+
+ Setting this variable to outletOff (2) will turn the outlet off.
+
+ Setting this variable to outletReboot (3) will reboot the outlet.
+
+ Setting this variable to outletOnWithDelay (5) will turn the outlet on
+ after the sPDUOutletPowerOnTime OID has elapsed. This option is not
+ valid for MasterSwitch firmware version 1.X.
+
+ Setting this variable to outletOffWithDelay (6) will turn the outlet off
+ after the sPDUOutletPowerOffTime OID has elapsed. This option is not valid
+ for MasterSwitch firmware version 1.X.
+
+ Setting this variable to outletRebootWithDelay (7) will turn the outlet off
+ after the sPDUOutletPowerOffTime OID has elapsed, wait the sPDUOutletRebootDuration
+ OID time, then turn the outlet back on.
+ This option is not valid for MasterSwitch firmware version 1.X."
+
+ ::= { sPDUOutletControlEntry 3 }
+
+sPDUOutletCtlName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the outlet. Maximum size is 20 characters.
+ This OID is provided for informational purposes only.
+ This value is set by the sPDUOutletName OID."
+
+ ::= { sPDUOutletControlEntry 4 }
+
+-- the sPDUOutletConfig group
+sPDUOutletConfigTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of outlets for the PDU."
+ ::= { sPDUOutletConfig 1 }
+
+sPDUOutletConfigTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SPDUOutletConfigEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The list of outlets to configure. The number of
+ entries is defined by the sPDUOutletConfigTableSize
+ OID."
+
+ ::= { sPDUOutletConfig 2 }
+
+sPDUOutletConfigEntry OBJECT-TYPE
+ SYNTAX SPDUOutletConfigEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The outlets to control."
+ INDEX { sPDUOutletConfigIndex}
+ ::= { sPDUOutletConfigTable 1 }
+
+SPDUOutletConfigEntry ::=
+ SEQUENCE {
+ sPDUOutletConfigIndex INTEGER,
+ sPDUOutletPowerOnTime INTEGER,
+ sPDUOutletName DisplayString,
+ sPDUOutletPowerOffTime INTEGER,
+ sPDUOutletRebootDuration INTEGER
+ }
+
+sPDUOutletConfigIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the outlet entry."
+ ::= { sPDUOutletConfigEntry 1 }
+
+sPDUOutletPowerOnTime OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The amount of time (in seconds) the outlet will delay
+ powering on when the MasterSwitch is powered on.
+
+ Allowed values are:
+
+ -1 never power on automatically.
+ 0 power on with the Master Switch.
+ 15 power on 15 seconds after the MasterSwitch has power applied.
+ 30 power on 30 seconds after the MasterSwitch has power applied.
+ 45 power on 45 seconds after the MasterSwitch has power applied.
+ 60 power on 60 seconds (1 minute) after the MasterSwitch has power applied.
+ 120 power on 120 seconds (2 minutes) after the MasterSwitch has power applied.
+ 300 power on 300 seconds (5 minutes) after the MasterSwitch has power applied.
+
+ If a value other than a supported value is provided in a
+ set request, the PDU interprets it as the next lower
+ acceptable value. If the provided value is lower than
+ the lowest acceptable value, the lowest acceptable
+ value is used."
+
+ ::= { sPDUOutletConfigEntry 2 }
+
+sPDUOutletName OBJECT-TYPE
+ SYNTAX DisplayString ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the outlet. Maximum size is 20 characters."
+
+ ::= { sPDUOutletConfigEntry 3 }
+
+sPDUOutletPowerOffTime OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The amount of time (in seconds) the outlet will delay
+ powering off.
+
+ Allowed values are:
+
+ -1 never power off automatically.
+ 0 power off with the MasterSwitch.
+ 15 power off 15 seconds after being commanded.
+ 30 power off 30 seconds after being commanded.
+ 45 power off 45 seconds after being commanded.
+ 60 power off 60 seconds (1 minute) after being commanded.
+ 120 power off 120 seconds (2 minutes) after being commanded.
+ 300 power off 300 seconds (5 minutes) after being commanded.
+
+ If a value other than a supported value is provided in a
+ set request, the PDU interprets it as the next lower
+ acceptable value. If the provided value is lower than
+ the lowest acceptable value, the lowest acceptable
+ value is used.
+
+ This OID is not available for MasterSwitch firmware version 1.X."
+
+ ::= { sPDUOutletConfigEntry 4 }
+
+sPDUOutletRebootDuration OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "During a reboot sequence, power is turned off and then
+ back on. This OID defines the amount of time to wait,
+ in seconds, after turning the power off, at the start
+ of the sequence, before turning power back on, at the
+ end of the reboot sequence.
+
+ Allowed values are:
+
+ 5 wait 5 seconds between off/on.
+ 10 wait 10 seconds between off/on.
+ 15 wait 15 seconds between off/on.
+ 20 wait 20 seconds between off/on.
+ 30 wait 30 seconds between off/on.
+ 45 wait 45 seconds between off/on.
+ 60 wait 60 seconds (1 minute) between off/on.
+
+ If a value other than a supported value is provided in a
+ set request, the PDU interprets it as the next lower
+ acceptable value. If the provided value is lower than
+ the lowest acceptable value, the lowest acceptable
+ value is used.
+
+ This OID is not available for MasterSwitch firmware version 1.X."
+
+ ::= { sPDUOutletConfigEntry 5 }
+
+
+-- the sPDUIdentVM group
+
+sPDUIdentVMTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of MasterSwitch VMs controllable
+ by this IP address."
+ ::= { sPDUIdentVM 1 }
+
+
+sPDUIdentVMTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IdentVMEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for query of the individual MasterSwitch VMs.
+ The number of entries is contained in the
+ sPDUIdentVMTableSize OID."
+ ::= { sPDUIdentVM 2 }
+
+sPDUIdentVMEntry OBJECT-TYPE
+ SYNTAX IdentVMEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The MasterSwitch VMs to query."
+ INDEX { sPDUIdentVMIndex}
+ ::= { sPDUIdentVMTable 1 }
+
+IdentVMEntry ::=
+ SEQUENCE {
+ sPDUIdentVMIndex INTEGER,
+ sPDUIdentNameVM DisplayString,
+ sPDUIdentHardwareRevVM DisplayString,
+ sPDUIdentFirmwareRevVM DisplayString,
+ sPDUIdentDateOfManufactureVM DisplayString,
+ sPDUIdentModelNumberVM DisplayString,
+ sPDUIdentSerialNumberVM DisplayString
+ }
+
+sPDUIdentVMIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the MasterSwitch VM entry."
+ ::= { sPDUIdentVMEntry 1 }
+
+sPDUIdentNameVM OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A 23-character string identifying the
+ MasterSwitch VM. "
+ ::= { sPDUIdentVMEntry 2 }
+
+sPDUIdentHardwareRevVM OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The hardware version of the MasterSwitch VM.
+ This value is set at the factory."
+ ::= { sPDUIdentVMEntry 3 }
+
+sPDUIdentFirmwareRevVM OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "An 6-character ID string identifying the MasterSwitch VM
+ firmware version. This value is set at the factory."
+ ::= { sPDUIdentVMEntry 4 }
+
+
+sPDUIdentDateOfManufactureVM OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The date when the MasterSwitch VM was manufactured in mm/dd/yyyy format.
+ This value is set at the factory. "
+ ::= { sPDUIdentVMEntry 5 }
+
+sPDUIdentModelNumberVM OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A 17-character string identifying the model number of
+ the MasterSwitch VM. This value is set at the factory."
+ ::= { sPDUIdentVMEntry 6 }
+
+sPDUIdentSerialNumberVM OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A 17-character string identifying the serial number of
+ the MasterSwitch VM. This value is set at the factory."
+ ::= { sPDUIdentVMEntry 7 }
+
+
+-- the sPDUMasterControlVM group
+
+sPDUMasterControlVMTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of MasterSwitch VMs controllable
+ by this IP address."
+ ::= { sPDUMasterControlVM 1 }
+
+
+sPDUMasterControlVMTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF MasterControlVMEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for control of the individual MasterSwitch VMs.
+ The number of entries is contained in the
+ sPDUMasterControlVMTableSize OID."
+ ::= { sPDUMasterControlVM 2 }
+
+sPDUMasterControlVMEntry OBJECT-TYPE
+ SYNTAX MasterControlVMEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The MasterSwitch VMs to control."
+ INDEX { sPDUMasterControlVMIndex}
+ ::= { sPDUMasterControlVMTable 1 }
+
+MasterControlVMEntry ::=
+ SEQUENCE {
+ sPDUMasterControlVMIndex INTEGER,
+ sPDUMasterControlVMName DisplayString,
+ sPDUMasterControlVMCommand INTEGER
+ }
+
+sPDUMasterControlVMIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the MasterSwitch VM entry."
+ ::= { sPDUMasterControlVMEntry 1 }
+
+sPDUMasterControlVMName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the MasterSwitch VM. The maximum
+ value is 23 characters. The name is set by
+ using the sPDUMasterConfigVMName OID."
+ ::= { sPDUMasterControlVMEntry 2 }
+
+sPDUMasterControlVMCommand OBJECT-TYPE
+ SYNTAX INTEGER {
+ noCommandAllVM (1),
+ immediateAllOnVM (2),
+ immediateAllOffVM (3),
+ immediateAllRebootVM (4),
+ delayedAllOnVM (5),
+ delayedAllOffVM (6),
+ sequencedAllRebootVM (7),
+ delayedAllRebootVM (8),
+ delayedSequenceAllRebootVM (9),
+ cancelAllPendingCommandsVM (10),
+ audioAlarmMute (11)
+ }
+
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this OID to immediateAllOnVM (2) will turn all outlets
+ on immediately.
+
+ Setting this OID to immediateAllOffVM (3) will turn all outlets
+ off immediately.
+
+ Setting this OID to immediateAllRebootVM (4) will reboot all outlets
+ immediately.
+
+ Setting this OID to delayedAllOnVM (5) will turn all outlets on as
+ defined by each outlet's sPDUOutletConfigVMPowerOnTime OID value.
+
+ Setting this OID to delayedAllOffVM (6) will turn all outlets
+ off as defined by each outlet's sPDUOutletConfigVMPowerOffTime OID value.
+
+ Setting this OID to sequencedAllRebootVM (7) will cause a
+ immediateAllOffVM command to be performed. The MasterSwitch VM will
+ then delay the sPDUMasterStatusVMRebootDuration OID time, and then
+ perform a delayedAllOnVM command.
+
+ Setting this OID to delayedAllRebootVM (8) will cause a delayedAllOffVM
+ command to be performed. Each outlet will then wait its
+ sPDUOutletConfigVMRebootDuration before returning power to the outlet.
+
+ Setting this OID to delayedSequenceAllRebootVM (9) will cause a
+ delayedAllOffVM command to be performed. Once all outlets are off,
+ the MasterSwitch VM will then delay the sPDUMasterStatusVMRebootDuration
+ OID time, and then perform a delayedAllOnVM command.
+
+ Setting this OID to cancelAllPendingCommandsVM (10) will cause all pending
+ commands on the MasterSwitch VM to be canceled.
+
+
+ Setting this OID to audioAlarmMute (11) will temporarily silence the audible
+ alarm for the duration of the current overload condition. The audible alarm
+ will be activated on subsequent overload alarms.
+
+ Getting this OID will return the noCommandAllVM (1) value."
+ ::= { sPDUMasterControlVMEntry 3 }
+
+
+-- the sPDUMasterConfigVM group
+
+sPDUMasterConfigVMTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of MasterSwitch VMs configurable
+ by this IP address."
+ ::= { sPDUMasterConfigVM 1 }
+
+
+sPDUMasterConfigVMTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF MasterConfigVMEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for configuration of the individual MasterSwitch VMs.
+ The number of entries is contained in the
+ sPDUMasterConfigVMTableSize OID."
+ ::= { sPDUMasterConfigVM 2 }
+
+sPDUMasterConfigVMEntry OBJECT-TYPE
+ SYNTAX MasterConfigVMEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The MasterSwitch VMs to configure."
+ INDEX { sPDUMasterConfigVMIndex}
+ ::= { sPDUMasterConfigVMTable 1 }
+
+MasterConfigVMEntry ::=
+ SEQUENCE {
+ sPDUMasterConfigVMIndex INTEGER,
+ sPDUMasterConfigVMName DisplayString,
+ sPDUMasterConfigVMColdstartDelay INTEGER,
+ sPDUMasterConfigVMAudioAlarmActivated INTEGER,
+ sPDUMasterConfigVMHighLoadWarningThreshold INTEGER,
+ sPDUMasterConfigVMLowLoadWarningThreshold INTEGER,
+ sPDUMasterConfigVMOverloadRestriction INTEGER
+ }
+
+sPDUMasterConfigVMIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the MasterSwitch VM entry."
+ ::= { sPDUMasterConfigVMEntry 1 }
+
+
+sPDUMasterConfigVMName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the MasterSwitch VM. Maximum size is 23 characters."
+ ::= { sPDUMasterConfigVMEntry 2 }
+
+sPDUMasterConfigVMColdstartDelay OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ " The amount of delay, in seconds, between when
+ power is provided to the MasterSwitch VM and
+ when the MasterSwitch VM provides basic master
+ power to the outlets.
+
+ Allowed values are:
+
+ -1 never apply power automatically.
+ 0 apply power immediately.
+ 15 apply power in 15 seconds.
+ 30 apply power in 30 seconds.
+ 45 apply power in 45 seconds.
+ 60 apply power in 60 seconds (1 minute).
+ 120 apply power in 120 seconds (2 minutes).
+ 300 apply power in 300 seconds (5 minutes).
+
+ If a value other than a supported value is provided in a
+ set request, the MasterSwitch VM interprets it as the next lower
+ acceptable value. If the provided value is lower than
+ the lowest acceptable value, the lowest acceptable
+ value is used."
+ ::= { sPDUMasterConfigVMEntry 3 }
+
+sPDUMasterConfigVMAudioAlarmActivated OBJECT-TYPE
+ SYNTAX INTEGER {
+ audioAlarmActiveNever (1),
+ audioAlarmActiveOnOverload (2),
+ audioAlarmActiveOnOverloadImminent (3)
+ }
+
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this OID to audioAlarmActiveNever (1) will disable
+ the audio alarm on the MasterSwitch VM.
+
+ Setting this OID to audioAlarmActiveOnOverload (2) will
+ activate the audio alarm on the MasterSwitch VM when an
+ overload condition is present.
+
+ Setting this OID to audioAlarmActiveOnOverloadImminent (3)
+ will activate the audio alarm on the MasterSwitch VM when
+ the load on the MasterSwitch VM has surpassed the
+ sPDUMasterConfigVMHighLoadWarningThreshold OID value."
+ ::= { sPDUMasterConfigVMEntry 4 }
+
+sPDUMasterConfigVMHighLoadWarningThreshold OBJECT-TYPE
+ SYNTAX INTEGER (0..100)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "A threshold that indicates the power consumption of
+ the load is nearing an overload condition. It is
+ represented as a percentage of full load."
+ ::= { sPDUMasterConfigVMEntry 5 }
+
+sPDUMasterConfigVMLowLoadWarningThreshold OBJECT-TYPE
+ SYNTAX INTEGER (0..100)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "A threshold that indicates the power consumption of
+ the load is nearing a low consumption condition. It is
+ represented as a percentage of full load."
+ ::= { sPDUMasterConfigVMEntry 6 }
+
+sPDUMasterConfigVMOverloadRestriction OBJECT-TYPE
+ SYNTAX INTEGER {
+ alwaysAllowTurnON (1),
+ restrictOnWarning (2),
+ restrictOnOverload (3)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "This OID controls the behavior of the MasterSwitch VM
+ when an overload condition is possible and additional
+ outlets are requested to be turned on.
+
+ Setting this OID to alwaysAllowTurnON (1) will always allow
+ the outlets to turn on.
+
+ Setting this OID to restrictOnWarning (2) will not allow
+ outlets to turn on if the sPDUMasterConfigVMHighLoadWarningThreshold
+ OID is exceeded.
+
+ Setting this OID to restrictOnOverload (3) will not allow
+ outlets to turn on if the MasterSwitch Vm is in an
+ overload condition."
+ ::= { sPDUMasterConfigVMEntry 7 }
+
+-- the sPDUMasterStatusVM group
+
+sPDUMasterStatusVMTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of MasterSwitch VMs at
+ this IP address."
+ ::= { sPDUMasterStatusVM 1 }
+
+
+sPDUMasterStatusVMTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF MasterStatusVMEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for gathering of status from the individual
+ MasterSwitch VMs. The number of entries is contained
+ in the sPDUMasterStatusVMTableSize OID."
+ ::= { sPDUMasterStatusVM 2 }
+
+sPDUMasterStatusVMEntry OBJECT-TYPE
+ SYNTAX MasterStatusVMEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The MasterSwitch VMs to gather status from."
+ INDEX { sPDUMasterStatusVMIndex}
+ ::= { sPDUMasterStatusVMTable 1 }
+
+MasterStatusVMEntry ::=
+ SEQUENCE {
+ sPDUMasterStatusVMIndex INTEGER,
+ sPDUMasterStatusVMName DisplayString,
+ sPDUMasterStatusVMCommandPending INTEGER,
+ sPDUMasterStatusVMOverloadCondition INTEGER,
+ sPDUMasterStatusVMLowLoadCondition INTEGER,
+ sPDUMasterStatusVMCurrentLoad INTEGER,
+ sPDUMasterStatusVMMaxLoad INTEGER,
+ sPDUMasterStatusVMOutletCount INTEGER,
+ sPDUMasterStatusVMRebootDuration INTEGER
+ }
+
+sPDUMasterStatusVMIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the MasterSwitch VM entry."
+ ::= { sPDUMasterStatusVMEntry 1 }
+
+sPDUMasterStatusVMName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the MasterSwitch VM. Maximum size is 23 characters."
+ ::= { sPDUMasterStatusVMEntry 2 }
+
+sPDUMasterStatusVMCommandPending OBJECT-TYPE
+ SYNTAX INTEGER {
+ commandPendingMasterTrueVM (1),
+ commandPendingMasterFalseVM (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return commandPendingMasterTrueVM (1)
+ if the MasterSwitch VM has a pending command on any of its
+ outlets.
+
+ commandPendingMasterFalseVM (2) will be returned if there are
+ no pending commands."
+ ::= { sPDUMasterStatusVMEntry 3 }
+
+sPDUMasterStatusVMOverloadCondition OBJECT-TYPE
+ SYNTAX INTEGER {
+ overloadConditionTrueVM (1),
+ overloadConditionFalseVM (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return overloadConditionTrueVM (1)
+ if the sPDUMasterConfigVMHighLoadWarningThreshold OID is
+ violated.
+
+ overloadConditionFalseVM (2) will be returned if the
+ sPDUMasterConfigVMHighLoadWarningThreshold OID is not
+ violated."
+ ::= { sPDUMasterStatusVMEntry 4 }
+
+sPDUMasterStatusVMLowLoadCondition OBJECT-TYPE
+ SYNTAX INTEGER {
+ lowLoadConditionTrueVM (1),
+ lowLoadConditionFalseVM (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return lowLoadConditionTrueVM (1)
+ if the sPDUMasterConfigVMLowLoadWarningThreshold OID is
+ violated.
+
+ lowLoadConditionFalseVM (2) will be returned if the
+ sPDUMasterConfigVMHighLoadWarningThreshold OID is not
+ violated. "
+ ::= { sPDUMasterStatusVMEntry 5 }
+
+sPDUMasterStatusVMCurrentLoad OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return the total amount of power
+ being consumed by the load. It is represented as a
+ percentage of full load."
+ ::= { sPDUMasterStatusVMEntry 6 }
+
+sPDUMasterStatusVMMaxLoad OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return the total amount of power
+ that this MasterSwitch VM can provide. It is represented
+ in Amps."
+ ::= { sPDUMasterStatusVMEntry 7 }
+
+sPDUMasterStatusVMOutletCount OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return the number of controllable
+ outlets for this MasterSwitch VM."
+ ::= { sPDUMasterStatusVMEntry 8 }
+
+sPDUMasterStatusVMRebootDuration OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return the largest
+ sPDUOutletConfigVMRebootDuration OID time
+ for this MasterSwitch VM."
+ ::= { sPDUMasterStatusVMEntry 9 }
+
+-- the sPDUOutletControlVM group
+
+
+sPDUOutletControlVMTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF OutletControlVMEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for control of individual outlet switches. The number of
+ entries is contained in the sPDUMasterStatusOutletCount OID."
+ ::= { sPDUOutletControlVM 1 }
+
+sPDUOutletControlVMEntry OBJECT-TYPE
+ SYNTAX OutletControlVMEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The outlets to control."
+ INDEX { sPDUOutletControlVMIndex, sPDUOutletControlVMOutletIndex }
+ ::= { sPDUOutletControlVMTable 1 }
+
+OutletControlVMEntry ::=
+ SEQUENCE {
+ sPDUOutletControlVMIndex INTEGER,
+ sPDUOutletControlVMName DisplayString,
+ sPDUOutletControlVMOutletIndex INTEGER,
+ sPDUOutletControlVMOutletName DisplayString,
+ sPDUOutletControlVMOutletCommand INTEGER
+ }
+
+sPDUOutletControlVMIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the MasterSwitch VM."
+ ::= { sPDUOutletControlVMEntry 1 }
+
+sPDUOutletControlVMName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the MasterSwitch VM. Maximum size is 23 characters.
+ This OID is provided for informational purposes only."
+ ::= { sPDUOutletControlVMEntry 2 }
+
+sPDUOutletControlVMOutletIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the outlet entry."
+ ::= { sPDUOutletControlVMEntry 3 }
+
+sPDUOutletControlVMOutletName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the outlet. Maximum size is 23 characters.
+ This OID is provided for informational purposes only."
+ ::= { sPDUOutletControlVMEntry 4 }
+
+sPDUOutletControlVMOutletCommand OBJECT-TYPE
+ SYNTAX INTEGER {
+ immediateOnVM (1),
+ immediateOffVM (2),
+ immediateRebootVM (3),
+ delayedOnVM (4),
+ delayedOffVM (5),
+ delayedRebootVM (6),
+ cancelPendingCommandVM (7)
+
+ }
+
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this variable will return the outlet state. If
+ the outlet is on, the immediateOnVM (1) value will be returned.
+ If the outlet is off, the immediateOffVM (2) value will be
+ returned.
+
+
+ Setting this variable to immediateOnVM (1) will immediately turn the outlet on.
+
+ Setting this variable to immediateOffVM (2) will immediately turn the outlet off.
+
+ Setting this variable to immediateRebootVM (3) will immediately reboot the outlet.
+
+ Setting this variable to delayedOnVM (4) will turn the outlet on
+ after the sPDUOutletConfigVMPowerOnTime OID time has elapsed.
+
+ Setting this variable to delayedOffVM (5) will turn the outlet off
+ after the sPDUOutletConfigVMPowerOffTime OID time has elapsed.
+
+ Setting this variable to delayedRebootVM (6) will cause the
+ MasterSwitch VM to perform a delayedOffVM command, wait the
+ sPDUOutletConfigVMRebootDuration OID time, and then perform the
+ immediateOnVM command.
+
+ Setting this variable to cancelPendingCommandVM (7) will cause any
+ pending command to this outlet to be canceled."
+ ::= { sPDUOutletControlVMEntry 5 }
+
+-- the sPDUOutletConfigVM group
+
+sPDUOutletConfigVMTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF OutletConfigVMEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for configuration of individual outlets. The number of
+ entries is contained in the sPDUMasterStatusOutletCount OID."
+ ::= { sPDUOutletConfigVM 1 }
+
+sPDUOutletConfigVMEntry OBJECT-TYPE
+ SYNTAX OutletConfigVMEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The outlets to configure."
+ INDEX { sPDUOutletConfigVMIndex, sPDUOutletConfigVMOutletIndex }
+ ::= { sPDUOutletConfigVMTable 1 }
+
+OutletConfigVMEntry ::=
+ SEQUENCE {
+ sPDUOutletConfigVMIndex INTEGER,
+ sPDUOutletConfigVMName DisplayString,
+ sPDUOutletConfigVMOutletIndex INTEGER,
+ sPDUOutletConfigVMOutletName DisplayString,
+ sPDUOutletConfigVMPowerOnTime INTEGER,
+ sPDUOutletConfigVMPowerOffTime INTEGER,
+ sPDUOutletConfigVMRebootDuration INTEGER
+ }
+
+sPDUOutletConfigVMIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the MasterSwitch VM."
+ ::= { sPDUOutletConfigVMEntry 1 }
+
+sPDUOutletConfigVMName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the MasterSwitch VM. Maximum size is 23 characters."
+ ::= { sPDUOutletConfigVMEntry 2 }
+
+sPDUOutletConfigVMOutletIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the outlet entry."
+ ::= { sPDUOutletConfigVMEntry 3 }
+
+
+sPDUOutletConfigVMOutletName OBJECT-TYPE
+ SYNTAX DisplayString ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the outlet. Maximum size is 23 characters."
+ ::= { sPDUOutletConfigVMEntry 4 }
+
+sPDUOutletConfigVMPowerOnTime OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The amount of time (in seconds) the outlet will delay
+ powering on at coldstart or when a command that requires
+ a turn-on delay is issued.
+
+ Allowed values are:
+
+ -1 never power on.
+ 0 power on immediately.
+ 15 power on 15 seconds after being commanded.
+ 30 power on 30 seconds after being commanded.
+ 45 power on 45 seconds after being commanded.
+ 60 power on 60 seconds (1 minute) after being commanded.
+ 120 power on 120 seconds (2 minutes) after being commanded.
+ 300 power on 300 seconds (5 minutes) after being commanded.
+
+ If a value other than a supported value is provided in a
+ set request, the MasterSwitch VM interprets it as the next lower
+ acceptable value. If the provided value is lower than
+ the lowest acceptable value, the lowest acceptable
+ value is used."
+ ::= { sPDUOutletConfigVMEntry 5 }
+
+
+sPDUOutletConfigVMPowerOffTime OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The amount of time (in seconds) the outlet will delay
+ powering off when a command that requires
+ a turn-off delay is issued.
+
+
+ Allowed values are:
+
+ -1 never power off automatically.
+ 0 power off immediately.
+ 15 power off 15 seconds after being commanded.
+ 30 power off 30 seconds after being commanded.
+ 45 power off 45 seconds after being commanded.
+ 60 power off 60 seconds (1 minute) after being commanded.
+ 120 power off 120 seconds (2 minutes) after being commanded.
+ 300 power off 300 seconds (5 minutes) after being commanded.
+
+ If a value other than a supported value is provided in a
+ set request, the MasterSwitch VM interprets it as the next lower
+ acceptable value. If the provided value is lower than
+ the lowest acceptable value, the lowest acceptable
+ value is used."
+ ::= { sPDUOutletConfigVMEntry 6 }
+
+sPDUOutletConfigVMRebootDuration OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "During a reboot sequence, power is turned off and then
+ back on. This OID defines the amount of time to wait,
+ in seconds, after turning the power off, at the start
+ of the sequence, before turning power back on, at the
+ end of the reboot sequence.
+
+ Allowed values are:
+
+ 5 wait 5 seconds between off/on.
+ 10 wait 10 seconds between off/on.
+ 15 wait 15 seconds between off/on.
+ 20 wait 20 seconds between off/on.
+ 30 wait 30 seconds between off/on.
+ 45 wait 45 seconds between off/on.
+ 60 wait 60 seconds (1 minute) between off/on.
+
+ If a value other than a supported value is provided in a
+ set request, the MasterSwitch VM interprets it as the next lower
+ acceptable value. If the provided value is lower than
+ the lowest acceptable value, the lowest acceptable
+ value is used."
+ ::= { sPDUOutletConfigVMEntry 7 }
+
+-- the sPDUOutletStatusVM group
+
+sPDUOutletStatusVMTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF OutletStatusVMEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for getting of status of individual outlets. The number of
+ entries is contained in the sPDUMasterStatusOutletCount OID."
+ ::= { sPDUOutletStatusVM 1 }
+
+sPDUOutletStatusVMEntry OBJECT-TYPE
+ SYNTAX OutletStatusVMEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The outlets to gather status from."
+ INDEX { sPDUOutletStatusVMIndex, sPDUOutletStatusVMOutletIndex }
+ ::= { sPDUOutletStatusVMTable 1 }
+
+OutletStatusVMEntry ::=
+ SEQUENCE {
+ sPDUOutletStatusVMIndex INTEGER,
+ sPDUOutletStatusVMName DisplayString,
+ sPDUOutletStatusVMOutletIndex INTEGER,
+ sPDUOutletStatusVMOutletName DisplayString,
+ sPDUOutletStatusVMOutletState INTEGER,
+ sPDUOutletStatusVMCommandPending INTEGER
+ }
+
+sPDUOutletStatusVMIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the MasterSwitch VM."
+ ::= { sPDUOutletStatusVMEntry 1 }
+
+sPDUOutletStatusVMName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the MasterSwitch VM. Maximum size is 23 characters."
+ ::= { sPDUOutletStatusVMEntry 2 }
+
+sPDUOutletStatusVMOutletIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the outlet entry."
+ ::= { sPDUOutletStatusVMEntry 3 }
+
+sPDUOutletStatusVMOutletName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the outlet. Maximum size is 23 characters."
+ ::= { sPDUOutletStatusVMEntry 4 }
+
+sPDUOutletStatusVMOutletState OBJECT-TYPE
+ SYNTAX INTEGER {
+ outletStatusVMOn (1),
+ outletStatusVMOff (2)
+ }
+
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this variable will return the outlet state. If
+ the outlet is on, the outletStatusOnVM (1) value will be returned.
+ If the outlet is off, the outletStatusOffVM (2) value will be
+ returned. "
+ ::= { sPDUOutletStatusVMEntry 5 }
+
+sPDUOutletStatusVMCommandPending OBJECT-TYPE
+ SYNTAX INTEGER {
+ outletStatusVMCommandPending (1),
+ outletStatusVMNoCommandPending (2)
+ }
+
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this variable will return the command pending
+ state of the outlet. If a command is pending on the
+ outlet, the outletStatusVMCommandPending (1) value
+ will be returned. If there is not a command pending
+ on the outlet, the outletStatusVMNoCommandPending (2)
+ will be returned."
+ ::= { sPDUOutletStatusVMEntry 6 }
+
+-- the sPDUIdentMSP group
+
+sPDUIdentMSPTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of MasterSwitch pluses controllable
+ by this IP address."
+ ::= { sPDUIdentMSP 1 }
+
+
+sPDUIdentMSPTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IdentMSPEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for query of the individual MasterSwitch pluses.
+ The number of entries is contained in the
+ sPDUIdentMSPTableSize OID."
+ ::= { sPDUIdentMSP 2 }
+
+sPDUIdentMSPEntry OBJECT-TYPE
+ SYNTAX IdentMSPEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The MasterSwitch pluses to query."
+ INDEX { sPDUIdentMSPIndex}
+ ::= { sPDUIdentMSPTable 1 }
+
+IdentMSPEntry ::=
+ SEQUENCE {
+ sPDUIdentMSPIndex INTEGER,
+ sPDUIdentNameMSP DisplayString,
+ sPDUIdentHardwareRevMSP DisplayString,
+ sPDUIdentFirmwareRevMSP DisplayString,
+ sPDUIdentDateOfManufactureMSP DisplayString,
+ sPDUIdentModelNumberMSP DisplayString,
+ sPDUIdentSerialNumberMSP DisplayString
+ }
+
+sPDUIdentMSPIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the MasterSwitch plus entry."
+ ::= { sPDUIdentMSPEntry 1 }
+
+sPDUIdentNameMSP OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the MasterSwitch plus. The maximum
+ value is 23 characters. The name is set by
+ using the sPDUMasterConfigMSPName OID."
+ ::= { sPDUIdentMSPEntry 2 }
+
+sPDUIdentHardwareRevMSP OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The hardware version of the MasterSwitch plus.
+ This value is set at the factory."
+ ::= { sPDUIdentMSPEntry 3 }
+
+sPDUIdentFirmwareRevMSP OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "An 6-character ID string identifying the MasterSwitch plus
+ firmware version. This value is set at the factory."
+ ::= { sPDUIdentMSPEntry 4 }
+
+sPDUIdentDateOfManufactureMSP OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The date when the MasterSwitch plus was manufactured in mm/dd/yyyy format.
+ This value is set at the factory. "
+ ::= { sPDUIdentMSPEntry 5 }
+
+sPDUIdentModelNumberMSP OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A 17-character string identifying the model number of
+ the MasterSwitch plus. This value is set at the factory."
+ ::= { sPDUIdentMSPEntry 6 }
+
+sPDUIdentSerialNumberMSP OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A 17-character string identifying the serial number of
+ the MasterSwitch plus. This value is set at the factory."
+ ::= { sPDUIdentMSPEntry 7 }
+
+
+-- the sPDUMasterControlMSP group
+
+sPDUMasterControlMSPTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of MasterSwitch pluses controllable
+ by this IP address."
+ ::= { sPDUMasterControlMSP 1 }
+
+sPDUMasterControlMSPTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF MasterControlMSPEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for control of the individual MasterSwitch pluses.
+ The number of entries is contained in the
+ sPDUMasterControlMSPTableSize OID."
+ ::= { sPDUMasterControlMSP 2 }
+
+sPDUMasterControlMSPEntry OBJECT-TYPE
+ SYNTAX MasterControlMSPEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The MasterSwitch pluses to control."
+ INDEX { sPDUMasterControlMSPIndex}
+ ::= { sPDUMasterControlMSPTable 1 }
+
+MasterControlMSPEntry ::=
+ SEQUENCE {
+ sPDUMasterControlMSPIndex INTEGER,
+ sPDUMasterControlMSPName DisplayString,
+ sPDUMasterControlMSPCommand INTEGER
+ }
+
+sPDUMasterControlMSPIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the MasterSwitch plus entry."
+ ::= { sPDUMasterControlMSPEntry 1 }
+
+sPDUMasterControlMSPName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the MasterSwitch plus. The maximum
+ value is 23 characters. The name is set by
+ using the sPDUMasterConfigMSPName OID."
+ ::= { sPDUMasterControlMSPEntry 2 }
+
+sPDUMasterControlMSPCommand OBJECT-TYPE
+ SYNTAX INTEGER {
+ noCommandAllMSP (1),
+ immediateAllOnMSP (2),
+ sequencedAllOnMSP (3),
+ immediateAllOffMSP (4),
+ gracefulAllRebootMSP (5),
+ immediateAllRebootMSP (6),
+ gracefulAllShutdownMSP (7),
+ overrideAllBatCapThreshMSP (8),
+ cancelAllPendingCommandsMSP (9),
+ restoreFactoryDefaultsMSP (10)
+ }
+
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this OID to immediateAllOnMSP (2) will turn all outlets
+ on immediately.
+
+ Setting this OID to sequencedAllOnMSP (3) will turn all outlets
+ on as defined by each outlet's sPDUOutletConfigMSPPowerOnDelay OID value.
+
+ Setting this OID to immediateAllOffMSP (4) will turn all outlets
+ off immediately.
+
+ Setting this OID to gracefulAllRebootMSP (5) will reboot all outlets
+ (after the device running PowerChute confirms shutdown) as defined
+ by each outlet's sPDUOutletConfigMSPRebootDuration OID time value.
+
+ Setting this OID to immediateAllRebootMSP (6) will reboot all outlets
+ immediately.
+
+ Setting this OID to gracefulAllShutdownMSP (7) will shutdown all outlets
+ (after the device running PowerChute confirms shutdown) as defined
+ by each outlet's sPDUOutletConfigMSPPowerOffDelay OID time value. Each
+ outlet will then turn on after the sum of its
+ sPDUOutletConfigMSPRestartDelay and sPDUOutletConfigMSPPowerOnDelay OID
+ values.
+
+ Setting this OID to overrideAllBatCapThreshMSP (8) will cause the
+ outlet to ignore the Battery Capacity Threshold and proceed turning on
+ the outlets as defined by each outlet's sPDUOutletConfigMSPPowerOnDelay
+ OID value.
+
+ Setting this OID to cancelAllPendingCommandsMSP (9) will cause all pending
+ commands on the MasterSwitch plus to be canceled.
+
+ Setting this OID to restoreFactoryDefaultsMSP (10) will cause the settings of
+ the MasterSwitch plus to be restored to the factory defaults.
+
+ Getting this OID will return the noCommandAllMSP (1) value."
+ ::= { sPDUMasterControlMSPEntry 3 }
+
+
+-- the sPDUMasterConfigMSP group
+
+sPDUMasterConfigMSPTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of MasterSwitch pluses configurable
+ by this IP address."
+ ::= { sPDUMasterConfigMSP 1 }
+
+sPDUMasterConfigMSPTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF MasterConfigMSPEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for configuration of the individual MasterSwitch pluses.
+ The number of entries is contained in the
+ sPDUMasterConfigMSPTableSize OID."
+ ::= { sPDUMasterConfigMSP 2 }
+
+sPDUMasterConfigMSPEntry OBJECT-TYPE
+ SYNTAX MasterConfigMSPEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The MasterSwitch pluses to configure."
+ INDEX { sPDUMasterConfigMSPIndex}
+ ::= { sPDUMasterConfigMSPTable 1 }
+
+MasterConfigMSPEntry ::=
+ SEQUENCE {
+ sPDUMasterConfigMSPIndex INTEGER,
+ sPDUMasterConfigMSPName DisplayString,
+ sPDUMasterConfigMSPPowerOnTimeDelay INTEGER,
+ sPDUMasterConfigMSPManualButton INTEGER
+ }
+
+sPDUMasterConfigMSPIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the MasterSwitch plus entry."
+ ::= { sPDUMasterConfigMSPEntry 1 }
+
+sPDUMasterConfigMSPName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the MasterSwitch plus. Maximum size is 23 characters."
+ ::= { sPDUMasterConfigMSPEntry 2 }
+
+sPDUMasterConfigMSPPowerOnTimeDelay OBJECT-TYPE
+ SYNTAX INTEGER (0..9999)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ " The amount of delay, in seconds, between when
+ power is provided to the MasterSwitch plus and
+ when the MasterSwitch plus provides basic master
+ power to the outlets.
+
+ Allowed values are:
+
+ 0 - 9999 seconds (0 - 2hrs, 46 mins, 39 secs).
+ 0 indicates to apply power immediately."
+ ::= { sPDUMasterConfigMSPEntry 3 }
+
+
+sPDUMasterConfigMSPManualButton OBJECT-TYPE
+ SYNTAX INTEGER {
+ manualButtonDisabled (1),
+ manualButtonEnabled (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this OID to manualButtonDisabled (1) will disable
+ the manual button on the MasterSwitch plus.
+
+ Setting this OID to manualButtonEnabled (2) will enable
+ the manual button on the MasterSwitch plus."
+ ::= { sPDUMasterConfigMSPEntry 4 }
+
+-- the sPDUMasterStatusMSP group
+
+sPDUMasterStatusMSPTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of MasterSwitch pluses at
+ this IP address."
+ ::= { sPDUMasterStatusMSP 1 }
+
+
+sPDUMasterStatusMSPTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF MasterStatusMSPEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for gathering of status from the individual
+ MasterSwitch pluses. The number of entries is contained
+ in the sPDUMasterStatusMSPTableSize OID."
+ ::= { sPDUMasterStatusMSP 2 }
+
+sPDUMasterStatusMSPEntry OBJECT-TYPE
+ SYNTAX MasterStatusMSPEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The MasterSwitch pluses to gather status from."
+ INDEX { sPDUMasterStatusMSPIndex}
+ ::= { sPDUMasterStatusMSPTable 1 }
+
+MasterStatusMSPEntry ::=
+ SEQUENCE {
+ sPDUMasterStatusMSPIndex INTEGER,
+ sPDUMasterStatusMSPName DisplayString,
+ sPDUMasterStatusMSPOutletCount INTEGER
+ }
+
+sPDUMasterStatusMSPIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the MasterSwitch plus entry."
+ ::= { sPDUMasterStatusMSPEntry 1 }
+
+sPDUMasterStatusMSPName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the MasterSwitch plus. The maximum
+ value is 23 characters. The name is set by
+ using the sPDUMasterConfigMSPName OID."
+ ::= { sPDUMasterStatusMSPEntry 2 }
+
+sPDUMasterStatusMSPOutletCount OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return the number of controllable
+ outlets for this MasterSwitch plus."
+ ::= { sPDUMasterStatusMSPEntry 3 }
+
+-- the sPDUOutletControlMSP group
+
+sPDUOutletControlMSPTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF OutletControlMSPEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for control of individual outlet switches. The number of
+ entries is contained in the sPDUMasterStatusMSPOutletCount OID."
+ ::= { sPDUOutletControlMSP 1 }
+
+sPDUOutletControlMSPEntry OBJECT-TYPE
+ SYNTAX OutletControlMSPEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The outlets to control."
+ INDEX { sPDUOutletControlMSPIndex, sPDUOutletControlMSPOutletIndex }
+ ::= { sPDUOutletControlMSPTable 1 }
+
+OutletControlMSPEntry ::=
+ SEQUENCE {
+ sPDUOutletControlMSPIndex INTEGER,
+ sPDUOutletControlMSPName DisplayString,
+ sPDUOutletControlMSPOutletIndex INTEGER,
+ sPDUOutletControlMSPOutletName DisplayString,
+ sPDUOutletControlMSPOutletCommand INTEGER
+ }
+
+sPDUOutletControlMSPIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the MasterSwitch plus."
+ ::= { sPDUOutletControlMSPEntry 1 }
+
+sPDUOutletControlMSPName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the MasterSwitch plus. The maximum
+ value is 23 characters. The name is set by
+ using the sPDUMasterConfigMSPName OID."
+ ::= { sPDUOutletControlMSPEntry 2 }
+
+sPDUOutletControlMSPOutletIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the outlet entry."
+ ::= { sPDUOutletControlMSPEntry 3 }
+
+sPDUOutletControlMSPOutletName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the outlet. The maximum size is
+ 23 characters. The name is set by using the
+ sPDUOutletConfigMSPallOutletName OID.
+ This OID is provided for informational purposes only."
+ ::= { sPDUOutletControlMSPEntry 4 }
+
+sPDUOutletControlMSPOutletCommand OBJECT-TYPE
+ SYNTAX INTEGER {
+ immediateOnMSP (1),
+ delayedOnMSP (2),
+ immediateOffMSP (3),
+ gracefulRebootMSP (4),
+ immediateRebootMSP (5),
+ gracefulshutdownMSP (6),
+ overrideBatCapThreshMSP (7),
+ cancelPendingCommandMSP (8)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this variable will return the outlet state. If
+ the outlet is on, the immediateOnMSP (1) value will be returned.
+ If the outlet is off, the immediateOffMSP (3) value will be
+ returned.
+
+ Setting this variable to immediateOnMSP (1) will immediately turn the outlet on.
+
+ Setting this variable to delayedOnMSP (2) will turn the outlet on
+ after the sPDUOutletConfigMSPPowerOnDelay OID time has elapsed.
+
+ Setting this variable to immediateOffMSP (3) will immediately turn the outlet off.
+
+ Setting this variable to gracefulRebootMSP (4) will cause the outlet to wait for
+ device confirmation (if applicable) and then turn the outlet off after the
+ sPDUOutletConfigMSPPowerOffDelay OID time has elapsed. The outlet will then turn
+ on after the sPDUOutletConfigMSPRebootDuration OID time has elapsed.
+
+ Setting this variable to immediateRebootMSP (5) will immediately reboot the outlet.
+
+ Setting this variable to gracefulshutdownMSP (6) will cause the outlet to wait for
+ device confirmation (if applicable) and then turn the outlet off after the
+ sPDUOutletConfigMSPPowerOffDelay OID time has elapsed. The outlet will then turn
+ on after the sum of the sPDUOutletConfigMSPRestartTime OID time and the
+ sPDUOutletConfigMSPPowerOnDelay OID time has elapsed.
+
+ Setting this variable to overrideBatCapThreshMSP (7) will cause the outlet to
+ ignore the Battery Capacity Threshold and proceed waiting on the
+ sPDUOutletConfigMSPPowerOnDelay OID time before turning the outlet on.
+
+ Setting this variable to cancelPendingCommandMSP (8) will cause any
+ pending command to this outlet to be canceled."
+ ::= { sPDUOutletControlMSPEntry 5 }
+
+-- the sPDUOutletConfigMSPall group
+
+sPDUOutletConfigMSPallTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF OutletConfigMSPallEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for configuration of individual outlets. The number of
+ entries is contained in the sPDUMasterStatusMSPOutletCount OID."
+ ::= { sPDUOutletConfigMSPall 1 }
+
+sPDUOutletConfigMSPallEntry OBJECT-TYPE
+ SYNTAX OutletConfigMSPallEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The outlets to configure."
+ INDEX { sPDUOutletConfigMSPallIndex, sPDUOutletConfigMSPallOutletIndex }
+ ::= { sPDUOutletConfigMSPallTable 1 }
+
+OutletConfigMSPallEntry ::=
+ SEQUENCE {
+ sPDUOutletConfigMSPallIndex INTEGER,
+ sPDUOutletConfigMSPallName DisplayString,
+ sPDUOutletConfigMSPallOutletIndex INTEGER,
+ sPDUOutletConfigMSPallOutletName DisplayString,
+ sPDUOutletConfigMSPallOutletCtrlMode INTEGER
+ }
+
+sPDUOutletConfigMSPallIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the MasterSwitch plus."
+ ::= { sPDUOutletConfigMSPallEntry 1 }
+
+sPDUOutletConfigMSPallName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the MasterSwitch plus. The maximum
+ value is 23 characters. The name is set by
+ using the sPDUMasterConfigMSPName OID."
+ ::= { sPDUOutletConfigMSPallEntry 2 }
+
+sPDUOutletConfigMSPallOutletIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the outlet entry."
+ ::= { sPDUOutletConfigMSPallEntry 3 }
+
+sPDUOutletConfigMSPallOutletName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the outlet. Maximum size is 23 characters."
+ ::= { sPDUOutletConfigMSPallEntry 4 }
+
+sPDUOutletConfigMSPallOutletCtrlMode OBJECT-TYPE
+ SYNTAX INTEGER {
+ modeGracefulShutdown (1),
+ modeAnnunciator (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this OID to modeGracefulShutdown (1) will put this
+ outlet into the Graceful Shutdown control mode.
+
+ Setting this OID to modeAnnunciator (2) will put this outlet
+ into the Annunciator control mode."
+ ::= { sPDUOutletConfigMSPallEntry 5 }
+
+
+-- the sPDUOutConfigMSPgs group
+
+sPDUOutletConfigMSPgsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF OutletConfigMSPgsEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for configuration of individual outlets. The number of
+ entries is contained in the sPDUMasterStatusMSPOutletCount OID."
+ ::= { sPDUOutletConfigMSPgs 1 }
+
+sPDUOutletConfigMSPgsEntry OBJECT-TYPE
+ SYNTAX OutletConfigMSPgsEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The outlets to configure."
+ INDEX { sPDUOutletConfigMSPgsIndex, sPDUOutletConfigMSPgsOutletIndex }
+ ::= { sPDUOutletConfigMSPgsTable 1 }
+
+OutletConfigMSPgsEntry ::=
+ SEQUENCE {
+ sPDUOutletConfigMSPgsIndex INTEGER,
+ sPDUOutletConfigMSPgsName DisplayString,
+ sPDUOutletConfigMSPgsOutletIndex INTEGER,
+ sPDUOutletConfigMSPgsOutletName DisplayString,
+ sPDUOutletConfigMSPgsOutletCtrlMode INTEGER,
+ sPDUOutletConfigMSPgsDeviceConfirm INTEGER,
+ sPDUOutletConfigMSPgsLowBattWarning INTEGER,
+ sPDUOutletConfigMSPgsLowBattMult INTEGER,
+ sPDUOutletConfigMSPgsRestartDelay INTEGER,
+ sPDUOutletConfigMSPgsPowerOnDelay INTEGER,
+ sPDUOutletConfigMSPgsPowerOffDelay INTEGER,
+ sPDUOutletConfigMSPgsBattCapThresh INTEGER,
+ sPDUOutletConfigMSPgsRebootDuration INTEGER
+ }
+
+sPDUOutletConfigMSPgsIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the MasterSwitch plus."
+ ::= { sPDUOutletConfigMSPgsEntry 1 }
+
+sPDUOutletConfigMSPgsName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the MasterSwitch plus. The maximum
+ value is 23 characters. The name is set by
+ using the sPDUMasterConfigMSPName OID."
+ ::= { sPDUOutletConfigMSPgsEntry 2 }
+
+sPDUOutletConfigMSPgsOutletIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the outlet entry."
+ ::= { sPDUOutletConfigMSPgsEntry 3 }
+
+sPDUOutletConfigMSPgsOutletName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the outlet. The maximum size is
+ 23 characters. The name is set by using the
+ sPDUOutletConfigMSPallOutletName OID.
+ This OID is provided for informational purposes only."
+ ::= { sPDUOutletConfigMSPgsEntry 4 }
+
+sPDUOutletConfigMSPgsOutletCtrlMode OBJECT-TYPE
+ SYNTAX INTEGER {
+ modeGracefulShutdown (1),
+ modeAnnunciator (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The Control Mode of the outlet.
+ This OID is provided for informational purposes only."
+ ::= { sPDUOutletConfigMSPgsEntry 5 }
+
+sPDUOutletConfigMSPgsDeviceConfirm OBJECT-TYPE
+ SYNTAX INTEGER {
+ deviceConfirmNo (1),
+ deviceConfirmYes (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this OID to deviceConfirmNo (1) cause the outlet to
+ NOT wait for device confirmation while performing graceful
+ operations.
+
+ Setting this OID to deviceConfirmYes (2) cause the outlet to
+ wait for device confirmation while performing graceful
+ operations."
+ ::= { sPDUOutletConfigMSPgsEntry 6 }
+
+sPDUOutletConfigMSPgsLowBattWarning OBJECT-TYPE
+ SYNTAX INTEGER (-2..9999)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ " The amount of delay, in 6 second intervals, between
+ when the UPS goes on battery and the power down sequence for
+ the outlet is initiated.
+
+ Allowed values are:
+
+ -2 - Never initiate the power down sequence on low battery warning.
+ -1 - Initiate power down sequence based on remaining runtime.
+ 1 - 9999 six second intervals (6 secs - 16hrs, 39 mins, 54 secs).
+ 0 indicates to immediately initiate power down sequence on low
+ battery warning."
+ ::= { sPDUOutletConfigMSPgsEntry 7 }
+
+sPDUOutletConfigMSPgsLowBattMult OBJECT-TYPE
+ SYNTAX INTEGER (1..7)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ " Only applicable if sPDUOutletConfigMSPgsLowBattWarning OID is
+ set to -1 (On Runtime Remaining).
+
+ Allows you to set the value to stagger the shutdown sequence of the outlets.
+ 1 provides the longest delay (the outlet to shutoff first), and 7 would
+ provide the shortest delay (the outlet to shut off last).
+
+ Allowed values are:
+ 1 - 7."
+ ::= { sPDUOutletConfigMSPgsEntry 8 }
+
+sPDUOutletConfigMSPgsRestartDelay OBJECT-TYPE
+ SYNTAX INTEGER (-1..9999)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ " The amount of delay, in 6 minute intervals, between
+ when the outlet is turned off and the outlet is turned back on
+ when performing a Graceful Shutdown.
+
+ Allowed values are:
+
+ -1 - Never turn outlet back on after a Graceful shutdown.
+ 0 - 9999 six minute intervals (0 - 999hrs, 54 mins)."
+ ::= { sPDUOutletConfigMSPgsEntry 9 }
+
+sPDUOutletConfigMSPgsPowerOnDelay OBJECT-TYPE
+ SYNTAX INTEGER (-1..9999)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ " The amount of delay, in seconds, between the UPS entering
+ normal (on-line) state and the outlet being powered on.
+
+ Allowed values are:
+
+ -1 - Remain Off when the UPS enters the on-line state.
+ 0 - 9999 seconds (0 - 2 hrs, 46 mins, 39 secs)."
+ ::= { sPDUOutletConfigMSPgsEntry 10 }
+
+
+sPDUOutletConfigMSPgsPowerOffDelay OBJECT-TYPE
+ SYNTAX INTEGER (0..9999)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ " The amount of delay, in seconds, between when the server
+ shuts down and the outlet is powered off.
+
+ Allowed values are:
+
+ 0 - 9999 seconds (0 - 2 hrs, 46 mins, 39 secs)."
+ ::= { sPDUOutletConfigMSPgsEntry 11 }
+
+sPDUOutletConfigMSPgsBattCapThresh OBJECT-TYPE
+ SYNTAX INTEGER (0..100)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ " The minimum battery capacity, as a percent (0-100%), required
+ of the UPS before an outlet will be allowed to power on.
+
+ Allowed values are:
+
+ 0 - 100 percent."
+ ::= { sPDUOutletConfigMSPgsEntry 12 }
+
+sPDUOutletConfigMSPgsRebootDuration OBJECT-TYPE
+ SYNTAX INTEGER (0..9999)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ " The amount of delay, in seconds, from outlet off until
+ outlet on during a reboot.
+
+ Allowed values are:
+
+ 0 - 9999 seconds (0 - 2 hrs, 46 mins, 39 secs)."
+ ::= { sPDUOutletConfigMSPgsEntry 13 }
+
+
+-- the sPDUOutConfigMSPannun group
+
+sPDUOutletConfigMSPannunTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF OutletConfigMSPannunEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for configuration of individual outlets. The number of
+ entries is contained in the sPDUMasterStatusMSPOutletCount OID."
+ ::= { sPDUOutletConfigMSPannun 1 }
+
+sPDUOutletConfigMSPannunEntry OBJECT-TYPE
+ SYNTAX OutletConfigMSPannunEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The outlets to configure."
+ INDEX { sPDUOutletConfigMSPannunIndex, sPDUOutletConfigMSPannunOutletIndex }
+ ::= { sPDUOutletConfigMSPannunTable 1 }
+
+OutletConfigMSPannunEntry ::=
+ SEQUENCE {
+ sPDUOutletConfigMSPannunIndex INTEGER,
+ sPDUOutletConfigMSPannunName DisplayString,
+ sPDUOutletConfigMSPannunOutletIndex INTEGER,
+ sPDUOutletConfigMSPannunOutletName DisplayString,
+ sPDUOutletConfigMSPannunOutletCtrlMode INTEGER,
+ sPDUOutletConfigMSPannunInitialState INTEGER,
+ sPDUOutletConfigMSPannunAlarmActionDly INTEGER
+ }
+
+sPDUOutletConfigMSPannunIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the MasterSwitch plus."
+ ::= { sPDUOutletConfigMSPannunEntry 1 }
+
+sPDUOutletConfigMSPannunName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the MasterSwitch plus. The maximum
+ value is 23 characters. The name is set by
+ using the sPDUMasterConfigMSPName OID."
+ ::= { sPDUOutletConfigMSPannunEntry 2 }
+
+sPDUOutletConfigMSPannunOutletIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the outlet entry."
+ ::= { sPDUOutletConfigMSPannunEntry 3 }
+
+sPDUOutletConfigMSPannunOutletName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the outlet. The maximum size is
+ 23 characters. The name is set by using the
+ sPDUOutletConfigMSPallOutletName OID.
+ This OID is provided for informational purposes only."
+ ::= { sPDUOutletConfigMSPannunEntry 4 }
+
+sPDUOutletConfigMSPannunOutletCtrlMode OBJECT-TYPE
+ SYNTAX INTEGER {
+ modeGracefulShutdown (1),
+ modeAnnunciator (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The Control Mode of the outlet.
+ This OID is provided for informational purposes only."
+ ::= { sPDUOutletConfigMSPannunEntry 5 }
+
+sPDUOutletConfigMSPannunInitialState OBJECT-TYPE
+ SYNTAX INTEGER {
+ initialStateOff (1),
+ initialStateOn (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this OID to initialStateOff (1) causes the outlet
+ to default to off when in the non-alarmed condition.
+
+ Setting this OID to initialStateOn (2) causes the outlet
+ to default to on when in the non-alarmed condition."
+ ::= { sPDUOutletConfigMSPannunEntry 6 }
+
+sPDUOutletConfigMSPannunAlarmActionDly OBJECT-TYPE
+ SYNTAX INTEGER (0..9999)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ " The amount of time, in seconds, that an enabled Measure-UPS
+ alarm must be asserted before an alarm condition is recognized.
+
+ Allowed values are:
+
+ 0 - 9999 seconds (0 - 2 hrs, 46 mins, 39 secs)."
+ ::= { sPDUOutletConfigMSPannunEntry 7 }
+
+
+-- the sPDUOutConfigMSPmups group
+
+sPDUOutletConfigMSPmupsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF OutletConfigMSPmupsEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for configuration of individual outlets. The number of
+ entries is contained in the sPDUMasterStatusMSPOutletCount OID."
+ ::= { sPDUOutletConfigMSPmups 1 }
+
+sPDUOutletConfigMSPmupsEntry OBJECT-TYPE
+ SYNTAX OutletConfigMSPmupsEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The outlets to configure."
+ INDEX { sPDUOutletConfigMSPmupsIndex, sPDUOutletConfigMSPmupsOutletIndex }
+ ::= { sPDUOutletConfigMSPmupsTable 1 }
+
+OutletConfigMSPmupsEntry ::=
+ SEQUENCE {
+ sPDUOutletConfigMSPmupsIndex INTEGER,
+ sPDUOutletConfigMSPmupsName DisplayString,
+ sPDUOutletConfigMSPmupsOutletIndex INTEGER,
+ sPDUOutletConfigMSPmupsOutletName DisplayString,
+ sPDUOutletConfigMSPmupsZone1 INTEGER,
+ sPDUOutletConfigMSPmupsZone2 INTEGER,
+ sPDUOutletConfigMSPmupsZone3 INTEGER,
+ sPDUOutletConfigMSPmupsZone4 INTEGER,
+ sPDUOutletConfigMSPmupsP1LowHum INTEGER,
+ sPDUOutletConfigMSPmupsP1HiHum INTEGER,
+ sPDUOutletConfigMSPmupsP1LowTemp INTEGER,
+ sPDUOutletConfigMSPmupsP1HiTemp INTEGER,
+ sPDUOutletConfigMSPmupsP2LowHum INTEGER,
+ sPDUOutletConfigMSPmupsP2HiHum INTEGER,
+ sPDUOutletConfigMSPmupsP2LowTemp INTEGER,
+ sPDUOutletConfigMSPmupsP2HiTemp INTEGER
+ }
+
+sPDUOutletConfigMSPmupsIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the MasterSwitch plus."
+ ::= { sPDUOutletConfigMSPmupsEntry 1 }
+
+sPDUOutletConfigMSPmupsName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the MasterSwitch plus. The maximum
+ value is 23 characters. The name is set by
+ using the sPDUMasterConfigMSPName OID."
+ ::= { sPDUOutletConfigMSPmupsEntry 2 }
+
+sPDUOutletConfigMSPmupsOutletIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the outlet entry."
+ ::= { sPDUOutletConfigMSPmupsEntry 3 }
+
+sPDUOutletConfigMSPmupsOutletName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the outlet. The maximum size is
+ 23 characters. The name is set by using the
+ sPDUOutletConfigMSPallOutletName OID.
+ This OID is provided for informational purposes only."
+ ::= { sPDUOutletConfigMSPmupsEntry 4 }
+
+sPDUOutletConfigMSPmupsZone1 OBJECT-TYPE
+ SYNTAX INTEGER {
+ disableAlarm (1),
+ enableAlarm (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this OID to disableAlarm (1) disables the
+ Zone 1 alarm for this outlet.
+
+ Setting this OID to enableAlarm (2) enables the
+ Zone 1 alarm for this outlet."
+ ::= { sPDUOutletConfigMSPmupsEntry 5 }
+
+sPDUOutletConfigMSPmupsZone2 OBJECT-TYPE
+ SYNTAX INTEGER {
+ disableAlarm (1),
+ enableAlarm (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this OID to disableAlarm (1) disables the
+ Zone 2 alarm for this outlet.
+
+ Setting this OID to enableAlarm (2) enables the
+ Zone 2 alarm for this outlet."
+ ::= { sPDUOutletConfigMSPmupsEntry 6 }
+
+sPDUOutletConfigMSPmupsZone3 OBJECT-TYPE
+ SYNTAX INTEGER {
+ disableAlarm (1),
+ enableAlarm (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this OID to disableAlarm (1) disables the
+ Zone 3 alarm for this outlet.
+
+ Setting this OID to enableAlarm (2) enables the
+ Zone 3 alarm for this outlet."
+ ::= { sPDUOutletConfigMSPmupsEntry 7 }
+
+sPDUOutletConfigMSPmupsZone4 OBJECT-TYPE
+ SYNTAX INTEGER {
+ disableAlarm (1),
+ enableAlarm (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this OID to disableAlarm (1) disables the
+ Zone 4 alarm for this outlet.
+
+ Setting this OID to enableAlarm (2) enables the
+ Zone 4 alarm for this outlet."
+ ::= { sPDUOutletConfigMSPmupsEntry 8 }
+
+sPDUOutletConfigMSPmupsP1LowHum OBJECT-TYPE
+ SYNTAX INTEGER {
+ disableAlarm (1),
+ enableAlarm (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this OID to disableAlarm (1) disables the
+ Probe 1 low humidity alarm for this outlet.
+
+ Setting this OID to enableAlarm (2) enables the
+ Probe 1 low humidity alarm for this outlet."
+ ::= { sPDUOutletConfigMSPmupsEntry 9 }
+
+sPDUOutletConfigMSPmupsP1HiHum OBJECT-TYPE
+ SYNTAX INTEGER {
+ disableAlarm (1),
+ enableAlarm (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this OID to disableAlarm (1) disables the
+ Probe 1 high humidity alarm for this outlet.
+
+ Setting this OID to enableAlarm (2) enables the
+ Probe 1 high humidity alarm for this outlet."
+ ::= { sPDUOutletConfigMSPmupsEntry 10 }
+
+sPDUOutletConfigMSPmupsP1LowTemp OBJECT-TYPE
+ SYNTAX INTEGER {
+ disableAlarm (1),
+ enableAlarm (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this OID to disableAlarm (1) disables the
+ Probe 1 low temperature alarm for this outlet.
+
+ Setting this OID to enableAlarm (2) enables the
+ Probe 1 low temperature alarm for this outlet."
+ ::= { sPDUOutletConfigMSPmupsEntry 11 }
+
+sPDUOutletConfigMSPmupsP1HiTemp OBJECT-TYPE
+ SYNTAX INTEGER {
+ disableAlarm (1),
+ enableAlarm (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this OID to disableAlarm (1) disables the
+ Probe 1 high temperature alarm for this outlet.
+
+ Setting this OID to enableAlarm (2) enables the
+ Probe 1 high temperature alarm for this outlet."
+ ::= { sPDUOutletConfigMSPmupsEntry 12 }
+
+sPDUOutletConfigMSPmupsP2LowHum OBJECT-TYPE
+ SYNTAX INTEGER {
+ disableAlarm (1),
+ enableAlarm (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this OID to disableAlarm (1) disables the
+ Probe 2 low humidity alarm for this outlet.
+
+ Setting this OID to enableAlarm (2) enables the
+ Probe 2 low humidity alarm for this outlet."
+ ::= { sPDUOutletConfigMSPmupsEntry 13 }
+
+sPDUOutletConfigMSPmupsP2HiHum OBJECT-TYPE
+ SYNTAX INTEGER {
+ disableAlarm (1),
+ enableAlarm (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this OID to disableAlarm (1) disables the
+ Probe 2 high humidity alarm for this outlet.
+
+ Setting this OID to enableAlarm (2) enables the
+ Probe 2 high humidity alarm for this outlet."
+ ::= { sPDUOutletConfigMSPmupsEntry 14 }
+
+sPDUOutletConfigMSPmupsP2LowTemp OBJECT-TYPE
+ SYNTAX INTEGER {
+ disableAlarm (1),
+ enableAlarm (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this OID to disableAlarm (1) disables the
+ Probe 2 low temperature alarm for this outlet.
+
+ Setting this OID to enableAlarm (2) enables the
+ Probe 2 low temperature alarm for this outlet."
+ ::= { sPDUOutletConfigMSPmupsEntry 15 }
+
+sPDUOutletConfigMSPmupsP2HiTemp OBJECT-TYPE
+ SYNTAX INTEGER {
+ disableAlarm (1),
+ enableAlarm (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this OID to disableAlarm (1) disables the
+ Probe 2 high temperature alarm for this outlet.
+
+ Setting this OID to enableAlarm (2) enables the
+ Probe 2 high temperature alarm for this outlet."
+ ::= { sPDUOutletConfigMSPmupsEntry 16 }
+
+-- the sPDUOutletStatusMSP group
+
+sPDUOutletStatusMSPTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF OutletStatusMSPEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for getting of status of individual outlets. The number of
+ entries is contained in the sPDUMasterStatusOutletCount OID."
+ ::= { sPDUOutletStatusMSP 1 }
+
+sPDUOutletStatusMSPEntry OBJECT-TYPE
+ SYNTAX OutletStatusMSPEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The outlets to gather status from."
+ INDEX { sPDUOutletStatusMSPIndex, sPDUOutletStatusMSPOutletIndex }
+ ::= { sPDUOutletStatusMSPTable 1 }
+
+OutletStatusMSPEntry ::=
+ SEQUENCE {
+ sPDUOutletStatusMSPIndex INTEGER,
+ sPDUOutletStatusMSPName DisplayString,
+ sPDUOutletStatusMSPOutletIndex INTEGER,
+ sPDUOutletStatusMSPOutletName DisplayString,
+ sPDUOutletStatusMSPOutletState INTEGER,
+ sPDUOutletStatusMSPCommandPending INTEGER,
+ sPDUOutletStatusMSPOutletCtrlMode INTEGER
+ }
+
+sPDUOutletStatusMSPIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the MasterSwitch MSP."
+ ::= { sPDUOutletStatusMSPEntry 1 }
+
+sPDUOutletStatusMSPName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the MasterSwitch plus. The maximum
+ value is 23 characters. The name is set by
+ using the sPDUMasterConfigMSPName OID."
+ ::= { sPDUOutletStatusMSPEntry 2 }
+
+sPDUOutletStatusMSPOutletIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the outlet entry."
+ ::= { sPDUOutletStatusMSPEntry 3 }
+
+sPDUOutletStatusMSPOutletName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the outlet. The maximum size is
+ 23 characters. The name is set by using the
+ sPDUOutletConfigMSPallOutletName OID.
+ This OID is provided for informational purposes only."
+ ::= { sPDUOutletStatusMSPEntry 4 }
+
+sPDUOutletStatusMSPOutletState OBJECT-TYPE
+ SYNTAX INTEGER {
+ outletStatusMSPOn (1),
+ outletStatusMSPOff (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this variable will return the outlet state. If
+ the outlet is on, the outletStatusMSPOn (1) value will be returned.
+ If the outlet is off, the outletStatusMSPOff (2) value will be
+ returned. "
+ ::= { sPDUOutletStatusMSPEntry 5 }
+
+sPDUOutletStatusMSPCommandPending OBJECT-TYPE
+ SYNTAX INTEGER {
+ outletStatusMSPCommandPending (1),
+ outletStatusMSPNoCommandPending (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this variable will return the command pending
+ state of the outlet. If a command is pending on the
+ outlet, the outletStatusMSPCommandPending (1) value
+ will be returned. If there is not a command pending
+ on the outlet, the outletStatusMSPNoCommandPending (2)
+ will be returned."
+ ::= { sPDUOutletStatusMSPEntry 6 }
+
+sPDUOutletStatusMSPOutletCtrlMode OBJECT-TYPE
+ SYNTAX INTEGER {
+ modeGracefulShutdown (1),
+ modeAnnunciator (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The Control Mode of the outlet.
+ This OID is provided for informational purposes only."
+ ::= { sPDUOutletStatusMSPEntry 7 }
+
+
+-- the rPDUIdent group
+
+rPDUIdentName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the Rack PDU.
+ The maximum string size is device dependent."
+ ::= { rPDUIdent 1 }
+
+rPDUIdentHardwareRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The hardware revision of the Rack PDU.
+ This value is set at the factory."
+ ::= { rPDUIdent 2 }
+
+rPDUIdentFirmwareRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "An 8-byte ID string identifying the Rack PDU firmware revision.
+ This value is set at the factory."
+ ::= { rPDUIdent 3 }
+
+
+rPDUIdentDateOfManufacture OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The date when the Rack PDU was manufactured in mm/dd/yy format.
+ This value is set at the factory. The year 2000 will be
+ represented by 00."
+ ::= { rPDUIdent 4 }
+
+rPDUIdentModelNumber OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A 10-character string identifying the model number of
+ the Rack PDU. This value is set at the factory."
+ ::= { rPDUIdent 5 }
+
+rPDUIdentSerialNumber OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A 12-character string identifying the serial number of
+ the Rack PDU. This value is set at the factory."
+ ::= { rPDUIdent 6 }
+
+rPDUIdentDeviceRating OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return the electrical rating of the device."
+
+ ::= { rPDUIdent 7 }
+
+rPDUIdentDeviceNumOutlets OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return the number of outlets contained in the device."
+
+ ::= { rPDUIdent 8 }
+
+rPDUIdentDeviceNumPhases OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return the number of phases supported by the device."
+
+ ::= { rPDUIdent 9 }
+
+rPDUIdentDeviceNumBreakers OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return the number of circuit breakers supported by the device.
+ This is the same as the number of banks of outlets."
+
+ ::= { rPDUIdent 10 }
+
+rPDUIdentDeviceBreakerRating OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return rating of the circuit breakers on the device if it has any."
+
+ ::= { rPDUIdent 11 }
+
+rPDUIdentDeviceOrientation OBJECT-TYPE
+ SYNTAX INTEGER {
+ orientHorizontal (1),
+ orientVertical (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return the intended physical orientation of the device.
+
+ OrientHorizonatal(1) indicates Horizontal.
+ OrientVertical(2) indicates Vertical."
+
+ ::= { rPDUIdent 12 }
+
+rPDUIdentDeviceOutletLayout OBJECT-TYPE
+ SYNTAX INTEGER {
+ seqPhaseToNeutral (1),
+ seqPhaseToPhase (2),
+ seqPhToNeu21PhToPh (3),
+ seqPhToPhGrouped (4)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return outlet layout for the device.
+
+ SeqPhaseToNeutral(1) indicates outlet layout as follows:
+ 1:1-N,2:2-N,3:3-N,4:1-N,5:2-N,...
+
+ SeqPhaseToPhase(2) indicates outlet layout as follows:
+ 1:1-2,2:2-3,3:3-1,4:1-2,5:2-3,...
+
+ SeqPhToNeu21PhToPh(3) indicates outlet layout as follows:
+ 1:1-N,2:2-N...21:3-N,22:1-2,23:2-3,24:3-1,...
+
+ SeqPhToPhGrouped(4) indicates outlet layout as follows:
+ Otlts1-8::(3-1),Otlts9-16::(2-3),Otlts17-24::(1-2)."
+ ::= { rPDUIdent 13 }
+
+
+
+-- the rPDULoadDevice group
+
+rPDULoadDevMaxPhaseLoad OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return the maximum rated power
+ that each phase of the Rack PDU can provide. It is
+ represented in Amps."
+ ::= { rPDULoadDevice 1 }
+
+rPDULoadDevNumPhases OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of phases available with this Rack PDU."
+ ::= { rPDULoadDevice 2 }
+
+rPDULoadDevMaxBankLoad OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return the maximum rated power
+ that each bank of the Rack PDU can provide. It is
+ represented in Amps.
+
+ 0 will be returned if the device does not have any banks."
+
+ ::= { rPDULoadDevice 3 }
+
+rPDULoadDevNumBanks OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of banks of outlets available with this Rack PDU.
+ A bank of outlets has a unique circuit breaker for a subset
+ of the total number of outlets on the rPDU."
+ ::= { rPDULoadDevice 4 }
+
+-- the rPDULoadPhaseConfig group
+
+rPDULoadPhaseConfigTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF LoadPhaseConfigEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for configuration of each Rack PDU phase.
+ The number of entries is contained in the
+ rPDULoadDevNumPhases OID."
+ ::= { rPDULoadPhaseConfig 1 }
+
+rPDULoadPhaseConfigEntry OBJECT-TYPE
+ SYNTAX LoadPhaseConfigEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The Rack PDU phase to configure."
+ INDEX { rPDULoadPhaseConfigIndex}
+ ::= { rPDULoadPhaseConfigTable 1 }
+
+LoadPhaseConfigEntry ::=
+ SEQUENCE {
+ rPDULoadPhaseConfigIndex INTEGER,
+ rPDULoadPhaseConfigLowLoadThreshold INTEGER,
+ rPDULoadPhaseConfigNearOverloadThreshold INTEGER,
+ rPDULoadPhaseConfigOverloadThreshold INTEGER
+ }
+
+rPDULoadPhaseConfigIndex OBJECT-TYPE
+ SYNTAX INTEGER {
+ phase1 (1),
+ phase2 (2),
+ phase3 (3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the Rack PDU phase entry."
+ ::= { rPDULoadPhaseConfigEntry 1 }
+
+rPDULoadPhaseConfigLowLoadThreshold OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "A threshold that indicates the power consumption of
+ the load is nearing a low consumption condition. It is
+ represented in amps. A warning will be issued when the
+ load is less than the threshold value.
+
+ A threshold value of 0 amps effectively disables this
+ warning.
+
+ Maximum value must be less than the value returned
+ by the rPDULoadPhaseConfigNearOverloadThreshold OID."
+ ::= { rPDULoadPhaseConfigEntry 2 }
+
+rPDULoadPhaseConfigNearOverloadThreshold OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "A threshold that indicates the power consumption of
+ the load is nearing an overload condition. It is
+ represented in amps. A warning will be issued when the
+ load is greater than or equal to the threshold value.
+
+ Minimum value must be greater than the value returned by
+ the rPDULoadPhaseConfigLowLoadThreshold OID.
+
+ Maximum value must be less than or equal to the value
+ returned by the rPDULoadPhaseConfigOverloadThreshold OID."
+ ::= { rPDULoadPhaseConfigEntry 3 }
+
+rPDULoadPhaseConfigOverloadThreshold OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "A threshold that indicates the power consumption of
+ the load has entered an overload condition. It is
+ represented in amps. A warning will be issued when the
+ load is greater than or equal to the threshold value.
+
+ Minimum value must be greater than or equal to the value
+ returned by the rPDULoadPhaseConfigNearOverloadThreshold OID.
+
+ Maximum value must be less than or equal to the value
+ returned by the rPDULoadDevMaxPhaseLoad OID."
+ ::= { rPDULoadPhaseConfigEntry 4 }
+
+
+-- the rPDULoadStatus group
+
+rPDULoadStatusTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF LoadStatusEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for getting of status of each Rack PDU phase/bank.
+ The number of entries is calculated by adding
+ the number of phases (rPDULoadDevNumPhases OID) and
+ the number of banks of outlets (rPDULoadDevNumBanks)
+ Number of entries = #phases + #banks.
+ NOTE: If a device has phase and bank information, all phase information
+ shall preceed the bank information."
+ ::= { rPDULoadStatus 1 }
+
+rPDULoadStatusEntry OBJECT-TYPE
+ SYNTAX LoadStatusEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The Rack PDU phase/bank to gather status from."
+ INDEX { rPDULoadStatusIndex}
+ ::= { rPDULoadStatusTable 1 }
+
+LoadStatusEntry ::=
+ SEQUENCE {
+ rPDULoadStatusIndex INTEGER,
+ rPDULoadStatusLoad Gauge,
+ rPDULoadStatusLoadState INTEGER,
+ rPDULoadStatusPhaseNumber INTEGER,
+ rPDULoadStatusBankNumber INTEGER
+ }
+
+rPDULoadStatusIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the Rack PDU phase/bank entry. All phase information will preceed
+ any bank information"
+ ::= { rPDULoadStatusEntry 1 }
+
+rPDULoadStatusLoad OBJECT-TYPE
+ SYNTAX Gauge
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return the phase/bank load measured
+ in tenths of amps."
+ ::= { rPDULoadStatusEntry 2 }
+
+rPDULoadStatusLoadState OBJECT-TYPE
+ SYNTAX INTEGER {
+ phaseLoadNormal (1),
+ phaseLoadLow (2),
+ phaseLoadNearOverload (3),
+ phaseLoadOverload (4)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return the phase/bank load state.
+
+ phaseLoadNormal(1) indicates that the phase/bank is
+ operating properly within the rPDULoadConfigLowLoadThreshold
+ and rPDULoadConfigNearOverloadThreshold OID values.
+
+ phaseLoadLow(2) indicates that the phase/bank load has
+ dropped below the rPDULoadConfigLowLoadThreshold OID value.
+ An SNMP trap will occur when this state is entered or cleared.
+
+ phaseLoadNearOverload(3) indicates that the phase/bank load
+ is greater than or equal to the
+ rPDULoadConfigNearOverloadThreshold OID value.
+ An SNMP trap will occur when this state is entered or cleared.
+
+ phaseLoadOverload(4) indicates that the phase/bank load is
+ greater than or equal to the rPDULoadConfigOverloadThreshold
+ OID value.
+ An SNMP trap will occur when this state is entered or cleared."
+ ::= { rPDULoadStatusEntry 3 }
+
+rPDULoadStatusPhaseNumber OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The phase number to which this record refers. A value of 0 will be returned if
+ this is bank related information."
+ ::= { rPDULoadStatusEntry 4 }
+
+rPDULoadStatusBankNumber OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The bank number to which this record refers. A value of 0 will be returned if
+ this is phase related information."
+ ::= { rPDULoadStatusEntry 5 }
+
+-- the rPDULoadBankConfig group
+
+rPDULoadBankConfigTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF LoadBankConfigEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for configuration of each Rack PDU bank.
+ The number of entries is contained in the
+ rPDULoadDevNumBanks OID."
+ ::= { rPDULoadBankConfig 1 }
+
+rPDULoadBankConfigEntry OBJECT-TYPE
+ SYNTAX LoadBankConfigEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The Rack PDU bank to configure."
+ INDEX { rPDULoadBankConfigIndex}
+ ::= { rPDULoadBankConfigTable 1 }
+
+LoadBankConfigEntry ::=
+ SEQUENCE {
+ rPDULoadBankConfigIndex INTEGER,
+ rPDULoadBankConfigLowLoadThreshold INTEGER,
+ rPDULoadBankConfigNearOverloadThreshold INTEGER,
+ rPDULoadBankConfigOverloadThreshold INTEGER
+ }
+
+rPDULoadBankConfigIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the Rack PDU bank entry."
+ ::= { rPDULoadBankConfigEntry 1 }
+
+rPDULoadBankConfigLowLoadThreshold OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "A threshold that indicates the power consumption of
+ the load is nearing a low consumption condition. It is
+ represented in amps. A warning will be issued when the
+ load is less than the threshold value.
+
+ A threshold value of 0 amps effectively disables this
+ warning.
+
+ Maximum value must be less than the value returned
+ by the rPDULoadBankConfigNearOverloadThreshold OID.
+
+ -1 will be returned if the device has no banks."
+
+ ::= { rPDULoadBankConfigEntry 2 }
+
+rPDULoadBankConfigNearOverloadThreshold OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "A threshold that indicates the power consumption of
+ the load is nearing an overload condition. It is
+ represented in amps. A warning will be issued when the
+ load is greater than or equal to the threshold value.
+
+ Minimum value must be greater than the value returned by
+ the rPDULoadBankConfigLowLoadThreshold OID.
+
+ Maximum value must be less than or equal to the value
+ returned by the rPDULoadBankConfigOverloadThreshold OID.
+
+ -1 will be returned if the device has no banks."
+
+ ::= { rPDULoadBankConfigEntry 3 }
+
+rPDULoadBankConfigOverloadThreshold OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "A threshold that indicates the power consumption of
+ the load has entered an overload condition. It is
+ represented in amps. A warning will be issued when the
+ load is greater than or equal to the threshold value.
+
+ Minimum value must be greater than or equal to the value
+ returned by the rPDULoadBankConfigNearOverloadThreshold OID.
+
+ Maximum value must be less than or equal to the value
+ returned by the rPDULoadDevMaxBankLoad OID.
+
+ -1 will be returned if the device has no banks."
+
+ ::= { rPDULoadBankConfigEntry 4 }
+
+
+-- the rPDUOutletDevice group
+
+rPDUOutletDevCommand OBJECT-TYPE
+ SYNTAX INTEGER {
+ noCommandAll (1),
+ immediateAllOn (2),
+ immediateAllOff (3),
+ immediateAllReboot (4),
+ delayedAllOn (5),
+ delayedAllOff (6),
+ delayedAllReboot (7),
+ cancelAllPendingCommands (8),
+ gracefulAllOff (9),
+ gracefulAllReboot (10)
+ }
+
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this OID to immediateAllOn (2) will turn all outlets
+ on immediately.
+
+ Setting this OID to immediateAllOff (3) will turn all outlets
+ off immediately.
+
+ Setting this OID to immediateAllReboot (4) will reboot all outlets
+ immediately.
+
+ Setting this OID to delayedAllOn (5) will turn all outlets on as
+ defined by each outlet's rPDUOutletConfigPowerOnTime OID value.
+
+ Setting this OID to delayedAllOff (6) will turn all outlets
+ off as defined by each outlet's rPDUOutletConfigPowerOffTime OID value.
+
+ Setting this OID to delayedAllReboot (7) will cause a
+ delayedAllOff command to be performed. Once all outlets are off,
+ the Switched Rack PDU will then delay the largest
+ rPDUOutletConfigRebootDuration OID time, and then perform a
+ delayedAllOn command.
+
+ Setting this OID to cancelAllPendingCommands (8) will cause all pending
+ commands on the Switched Rack PDU to be canceled.
+
+ Setting this variable to gracefulAllOff (9) will cause the
+ Switched Rack PDU to shut all outlets off after it waits the
+ servers graceful shutdown time and each outlet's shutdown delay.
+
+ Setting this variable to gracefulAllReboot (10) will cause the
+ Switched Rack PDU to shut all outlets off after it waits the
+ servers graceful shutdown time and each outlet's shutdown delay.
+ Once all outlet are off, it will wait until the UPS reaches the
+ configured minimum return battery capacity, then each outlet's
+ return delay before it turns the outlet back on.
+
+ Getting this OID will return the noCommandAll (1) value."
+ ::= { rPDUOutletDevice 1 }
+
+rPDUOutletDevColdstartDelay OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The amount of delay, in seconds, between when
+ power is provided to the Switched Rack PDU and
+ when the Switched Rack PDU provides basic master
+ power to the outlets.
+
+ Allowed values are:
+
+ -1 - never apply power automatically.
+ 0 - apply power immediately.
+ 1 to 300 - delay up to 300 seconds (5 minutes)."
+ ::= { rPDUOutletDevice 2 }
+
+rPDUOutletDevNumCntrlOutlets OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of controlled outlets on this Switched Rack PDU."
+ ::= { rPDUOutletDevice 3 }
+
+rPDUOutletDevNumTotalOutlets OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of outlets on this Rack PDU."
+ ::= { rPDUOutletDevice 4 }
+
+
+-- the rPDUOutletPhase group
+
+rPDUOutletPhaseTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF OutletPhaseEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for management of outlets on a per phase basis."
+ ::= { rPDUOutletPhase 1 }
+
+rPDUOutletPhaseEntry OBJECT-TYPE
+ SYNTAX OutletPhaseEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The phase to manage."
+ INDEX { rPDUOutletPhaseIndex}
+ ::= { rPDUOutletPhaseTable 1 }
+
+OutletPhaseEntry ::=
+ SEQUENCE {
+ rPDUOutletPhaseIndex INTEGER,
+ rPDUOutletPhaseOverloadRestriction INTEGER
+ }
+
+rPDUOutletPhaseIndex OBJECT-TYPE
+ SYNTAX INTEGER {
+ phase1 (1),
+ phase2 (2),
+ phase3 (3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the Switched Rack PDU phase entry."
+ ::= { rPDUOutletPhaseEntry 1 }
+
+rPDUOutletPhaseOverloadRestriction OBJECT-TYPE
+ SYNTAX INTEGER {
+ alwaysAllowTurnON (1),
+ restrictOnNearOverload (2),
+ restrictOnOverload (3)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "This OID controls the behavior of a Switched Rack PDU
+ phase when an overload condition is possible and
+ additional outlets are requested to be turned on.
+
+ Setting this OID to alwaysAllowTurnON (1) will always allow
+ the outlets on the corresponding phase to turn on.
+
+ Setting this OID to restrictOnNearOverload (2) will not allow
+ outlets on the corresponding phase to turn on if the
+ rPDULoadConfigNearOverloadThreshold OID is exceeded.
+
+ Setting this OID to restrictOnOverload (3) will not allow
+ outlets on the corresponding phase to turn on if the
+ rPDULoadConfigOverloadThreshold OID is exceeded."
+ ::= { rPDUOutletPhaseEntry 2 }
+
+
+-- the rPDUOutletControl group
+
+rPDUOutletControlTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF RPDUOutletControlEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for control of the individual outlets.
+ The number of entries is contained in the
+ rPDUOutletDevNumCntrlOutlets OID."
+ ::= { rPDUOutletControl 1 }
+
+rPDUOutletControlEntry OBJECT-TYPE
+ SYNTAX RPDUOutletControlEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The outlet to control."
+ INDEX { rPDUOutletControlIndex}
+ ::= { rPDUOutletControlTable 1 }
+
+RPDUOutletControlEntry ::=
+ SEQUENCE {
+ rPDUOutletControlIndex INTEGER,
+ rPDUOutletControlOutletName DisplayString,
+ rPDUOutletControlOutletPhase INTEGER,
+ rPDUOutletControlOutletCommand INTEGER,
+ rPDUOutletControlOutletBank INTEGER
+ }
+
+rPDUOutletControlIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the outlet entry."
+ ::= { rPDUOutletControlEntry 1 }
+
+rPDUOutletControlOutletName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the outlet. Maximum size is dependent on device.
+ An error will be returned if the set request exceeds the max size.
+ This OID is provided for informational purposes only."
+ ::= { rPDUOutletControlEntry 2 }
+
+rPDUOutletControlOutletPhase OBJECT-TYPE
+ SYNTAX INTEGER {
+ phase1 (1),
+ phase2 (2),
+ phase3 (3),
+ phase1-2 (4),
+ phase2-3 (5),
+ phase3-1 (6)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The phase/s associated with this outlet.
+
+ For single phase devices, this object will always
+ return phase1(1).
+
+ For 3-phase devices, this object will return phase1 (1),
+ phase2 (2), or phase3 (3) for outlets tied to a single
+ phase. For outlets tied to two phases, this object will
+ return phase1-2 (4) for phases 1 and 2, phase2-3 (5) for
+ phases 2 and 3, and phase3-1 (6) for phases 3 and 1."
+ ::= { rPDUOutletControlEntry 3 }
+
+rPDUOutletControlOutletCommand OBJECT-TYPE
+ SYNTAX INTEGER {
+ immediateOn (1),
+ immediateOff (2),
+ immediateReboot (3),
+ delayedOn (4),
+ delayedOff (5),
+ delayedReboot (6),
+ cancelPendingCommand (7),
+ gracefulOff (8),
+ gracefulReboot (9)
+
+ }
+
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this variable will return the outlet state. If
+ the outlet is on, the immediateOn (1) value will be returned.
+ If the outlet is off, the immediateOff (2) value will be
+ returned.
+
+
+ Setting this variable to immediateOn (1) will immediately turn
+ the outlet on.
+
+ Setting this variable to immediateOff (2) will immediately turn
+ the outlet off.
+
+ Setting this variable to immediateReboot (3) will immediately
+ reboot the outlet.
+
+ Setting this variable to delayedOn (4) will turn the outlet on
+ after the rPDUOutletConfigPowerOnTime OID time has elapsed.
+
+ Setting this variable to delayedOff (5) will turn the outlet off
+ after the rPDUOutletConfigPowerOffTime OID time has elapsed.
+
+ Setting this variable to delayedReboot (6) will cause the
+ Switched Rack PDU to perform a delayedOff command, wait the
+ rPDUOutletConfigRebootDuration OID time, and then perform a
+ delayedOn command.
+
+ Setting this variable to cancelPendingCommand (7) will cause any
+ pending command to this outlet to be canceled.
+
+ Setting this variable to gracefulOff (8) will cause the
+ Switched Rack PDU to shut the outlet off after it waits the
+ servers graceful shutdown time and the outlets shutdown delay.
+
+ Setting this variable to gracefulReboot (9) will cause the
+ Switched Rack PDU to shut the outlet off after it waits the
+ servers graceful shutdown time and the outlets shutdown delay.
+ Once the outlet is off, it will wait until the UPS reaches the
+ configured minimum return battery capacity, then the outlets
+ return delay before it turns the outlet back on."
+
+ ::= { rPDUOutletControlEntry 4 }
+
+rPDUOutletControlOutletBank OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The bank associated with this outlet."
+ ::= { rPDUOutletControlEntry 5 }
+
+
+-- the rPDUOutletConfig group
+
+rPDUOutletConfigTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF RPDUOutletConfigEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for configuration of individual outlets. The number of
+ entries is contained in the rPDUOutletDevNumCntrlOutlets OID."
+ ::= { rPDUOutletConfig 1 }
+
+rPDUOutletConfigEntry OBJECT-TYPE
+ SYNTAX RPDUOutletConfigEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The outlet to configure."
+ INDEX { rPDUOutletConfigIndex}
+ ::= { rPDUOutletConfigTable 1 }
+
+RPDUOutletConfigEntry ::=
+ SEQUENCE {
+ rPDUOutletConfigIndex INTEGER,
+ rPDUOutletConfigOutletName DisplayString,
+ rPDUOutletConfigOutletPhase INTEGER,
+ rPDUOutletConfigPowerOnTime INTEGER,
+ rPDUOutletConfigPowerOffTime INTEGER,
+ rPDUOutletConfigRebootDuration INTEGER,
+ rPDUOutletConfigOutletBank INTEGER
+ }
+
+rPDUOutletConfigIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the outlet entry."
+ ::= { rPDUOutletConfigEntry 1 }
+
+rPDUOutletConfigOutletName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the outlet. Maximum size is dependent on device.
+ An error will be returned if the set request exceeds the max size."
+ ::= { rPDUOutletConfigEntry 2 }
+
+rPDUOutletConfigOutletPhase OBJECT-TYPE
+ SYNTAX INTEGER {
+ phase1 (1),
+ phase2 (2),
+ phase3 (3),
+ phase1-2 (4),
+ phase2-3 (5),
+ phase3-1 (6)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The phase/s associated with this outlet.
+
+ For single phase devices, this object will always
+ return phase1(1).
+
+ For 3-phase devices, this object will return phase1 (1),
+ phase2 (2), or phase3 (3) for outlets tied to a single
+ phase. For outlets tied to two phases, this object will
+ return phase1-2 (4) for phases 1 and 2, phase2-3 (5) for
+ phases 2 and 3, and phase3-1 (6) for phases 3 and 1."
+ ::= { rPDUOutletConfigEntry 3 }
+
+rPDUOutletConfigPowerOnTime OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The amount of time (in seconds) the outlet will delay
+ powering on at coldstart or when a command that requires
+ a turn-on delay is issued.
+
+ Allowed values are:
+
+ -1 - never power on.
+ 0 - power on immediately.
+ 1 to 300 - power on up to 300 seconds (5 minutes) after being
+ commanded."
+ ::= { rPDUOutletConfigEntry 4 }
+
+rPDUOutletConfigPowerOffTime OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The amount of time (in seconds) the outlet will delay
+ powering off when a command that requires
+ a turn-off delay is issued.
+
+ Allowed values are:
+
+ -1 - never power off.
+ 0 - power off immediately.
+ 1 to 300 - power off up to 300 seconds (5 minutes) after being
+ commanded."
+ ::= { rPDUOutletConfigEntry 5 }
+
+rPDUOutletConfigRebootDuration OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "During a reboot sequence, power is turned off and then
+ back on. This OID defines the amount of time to wait,
+ in seconds, after turning the power off, at the start
+ of the sequence, before turning power back on, at the
+ end of the reboot sequence.
+
+ Allowed range is any value between 5 and 60 seconds (1 minute)."
+ ::= { rPDUOutletConfigEntry 6 }
+
+rPDUOutletConfigOutletBank OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The bank associated with this outlet."
+ ::= { rPDUOutletConfigEntry 7 }
+
+
+-- the rPDUOutletStatus group
+
+rPDUOutletStatusTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF RPDUOutletStatusEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for getting of status of individual outlets. The number of
+ entries is contained in the rPDUOutletDevNumCntrlOutlets OID."
+ ::= { rPDUOutletStatus 1 }
+
+rPDUOutletStatusEntry OBJECT-TYPE
+ SYNTAX RPDUOutletStatusEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The outlet to gather status from."
+ INDEX { rPDUOutletStatusIndex}
+ ::= { rPDUOutletStatusTable 1 }
+
+RPDUOutletStatusEntry ::=
+ SEQUENCE {
+ rPDUOutletStatusIndex INTEGER,
+ rPDUOutletStatusOutletName DisplayString,
+ rPDUOutletStatusOutletPhase INTEGER,
+ rPDUOutletStatusOutletState INTEGER,
+ rPDUOutletStatusCommandPending INTEGER,
+ rPDUOutletStatusOutletBank INTEGER
+ }
+
+rPDUOutletStatusIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the outlet entry."
+ ::= { rPDUOutletStatusEntry 1 }
+
+rPDUOutletStatusOutletName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the outlet. Maximum size is dependent on device.
+ An error will be returned if the set request exceeds the max size.
+ This OID is provided for informational purposes only."
+ ::= { rPDUOutletStatusEntry 2 }
+
+rPDUOutletStatusOutletPhase OBJECT-TYPE
+ SYNTAX INTEGER {
+ phase1 (1),
+ phase2 (2),
+ phase3 (3),
+ phase1-2 (4),
+ phase2-3 (5),
+ phase3-1 (6)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The phase/s associated with this outlet.
+
+ For single phase devices, this object will always
+ return phase1(1).
+
+ For 3-phase devices, this object will return phase1 (1),
+ phase2 (2), or phase3 (3) for outlets tied to a single
+ phase. For outlets tied to two phases, this object will
+ return phase1-2 (4) for phases 1 and 2, phase2-3 (5) for
+ phases 2 and 3, and phase3-1 (6) for phases 3 and 1."
+ ::= { rPDUOutletStatusEntry 3 }
+
+rPDUOutletStatusOutletState OBJECT-TYPE
+ SYNTAX INTEGER {
+ outletStatusOn (1),
+ outletStatusOff (2)
+ }
+
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this variable will return the outlet state. If
+ the outlet is on, the outletStatusOn (1) value will be returned.
+ If the outlet is off, the outletStatusOff (2) value will be
+ returned. "
+ ::= { rPDUOutletStatusEntry 4 }
+
+rPDUOutletStatusCommandPending OBJECT-TYPE
+ SYNTAX INTEGER {
+ outletStatusCommandPending (1),
+ outletStatusNoCommandPending (2)
+ }
+
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this variable will return the command pending
+ state of the outlet. If a command is pending on the
+ outlet, the outletStatusCommandPending (1) value
+ will be returned. If there is not a command pending
+ on the outlet, the outletStatusNoCommandPending (2)
+ will be returned."
+ ::= { rPDUOutletStatusEntry 5 }
+
+rPDUOutletStatusOutletBank OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The bank associated with this outlet."
+ ::= { rPDUOutletStatusEntry 6 }
+
+
+-- the rPDUOutletBank group
+
+rPDUOutletBankTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF OutletBankEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for management of outlets on a per bank basis."
+ ::= { rPDUOutletBank 1 }
+
+rPDUOutletBankEntry OBJECT-TYPE
+ SYNTAX OutletBankEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The bank to manage."
+ INDEX { rPDUOutletBankIndex}
+ ::= { rPDUOutletBankTable 1 }
+
+OutletBankEntry ::=
+ SEQUENCE {
+ rPDUOutletBankIndex INTEGER,
+ rPDUOutletBankOverloadRestriction INTEGER
+ }
+
+rPDUOutletBankIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the Switched Rack PDU bank entry."
+ ::= { rPDUOutletBankEntry 1 }
+
+rPDUOutletBankOverloadRestriction OBJECT-TYPE
+ SYNTAX INTEGER {
+ alwaysAllowTurnON (1),
+ restrictOnNearOverload (2),
+ restrictOnOverload (3)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "This OID controls the behavior of a Switched Rack PDU
+ bank when an overload condition is possible and
+ additional outlets are requested to be turned on.
+
+ Setting this OID to alwaysAllowTurnON (1) will always allow
+ the outlets on the corresponding bank to turn on.
+
+ Setting this OID to restrictOnNearOverload (2) will not allow
+ outlets on the corresponding bank to turn on if the
+ rPDULoadConfigNearOverloadThreshold OID is exceeded.
+
+ Setting this OID to restrictOnOverload (3) will not allow
+ outlets on the corresponding bank to turn on if the
+ rPDULoadConfigOverloadThreshold OID is exceeded."
+ ::= { rPDUOutletBankEntry 2 }
+
+-- the rPDUPowerSupplyDevice group
+
+rPDUPowerSupply1Status OBJECT-TYPE
+ SYNTAX INTEGER {
+ powerSupply1Ok (1),
+ powerSupply1Failed (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return powerSupply1Ok(1) if power
+ supply 1 is functioning normally. If not functioning normally,
+ this OID will return powerSupply1Failed(2)."
+ ::= { rPDUPowerSupplyDevice 1 }
+
+rPDUPowerSupply2Status OBJECT-TYPE
+ SYNTAX INTEGER {
+ powerSupply2Ok (1),
+ powerSupply2Failed (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return powerSupply2Ok(1) if power
+ supply 2 is functioning normally. If not functioning normally,
+ this OID will return powerSupply2Failed(2)."
+ ::= { rPDUPowerSupplyDevice 2 }
+
+
+
+-- the dm3IdentSystem group
+
+dm3IdentSysDescriptionTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of DC description records."
+ ::= { dm3IdentSystem 1 }
+
+dm3IdentSysDescriptionTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IdentSysDescriptionEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for accessing description records of the powerplant. The number of
+ entries is contained in the dm3IdentSysDescriptionTableSize OID."
+ ::= { dm3IdentSystem 2 }
+
+dm3IdentSysDescriptionEntry OBJECT-TYPE
+ SYNTAX IdentSysDescriptionEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The powerplant description record to reference."
+ INDEX { dm3IdentSysDescriptionIndex }
+ ::= { dm3IdentSysDescriptionTable 1 }
+
+IdentSysDescriptionEntry ::=
+ SEQUENCE {
+ dm3IdentSysDescriptionIndex INTEGER,
+ dm3IdentSysDescriptionText DisplayString
+ }
+
+dm3IdentSysDescriptionIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the DC powerplant description record."
+ ::= { dm3IdentSysDescriptionEntry 1 }
+
+dm3IdentSysDescriptionText OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A 16 character text field describing the DC power plant device.
+ This field can be configured from the dm3ConfigSysDescriptionText OID."
+ ::= { dm3IdentSysDescriptionEntry 2 }
+
+dm3IdentSysModel OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Model type of the DC power plant."
+ ::= { dm3IdentSystem 3 }
+
+dm3IdentSysCntrlRev OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Integer representation of the hardware revision of the Master Controller board."
+ ::= { dm3IdentSystem 4 }
+
+dm3IdentSysFWVersion OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Integer representation of the power plant Master Controller firmware revision."
+ ::= { dm3IdentSystem 5 }
+
+-- the dm3ConfigSystem group
+
+dm3ConfigSysDescriptionTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of DC description records."
+ ::= { dm3ConfigSystem 1 }
+
+dm3ConfigSysDescriptionTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ConfigSysDescriptionEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for accessing description records of the powerplant. The number of
+ entries is contained in the dm3ConfigSysDescriptionTableSize OID."
+ ::= { dm3ConfigSystem 2 }
+
+dm3ConfigSysDescriptionEntry OBJECT-TYPE
+ SYNTAX ConfigSysDescriptionEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The powerplant description record to reference."
+ INDEX { dm3ConfigSysDescriptionIndex }
+ ::= { dm3ConfigSysDescriptionTable 1 }
+
+ConfigSysDescriptionEntry ::=
+ SEQUENCE {
+ dm3ConfigSysDescriptionIndex INTEGER,
+ dm3ConfigSysDescriptionText DisplayString
+ }
+
+dm3ConfigSysDescriptionIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the DC powerplant description record."
+
+ ::= { dm3ConfigSysDescriptionEntry 1 }
+
+dm3ConfigSysDescriptionText OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "16 character text field describing the DC power plant device."
+
+ ::= { dm3ConfigSysDescriptionEntry 2 }
+
+dm3ConfigSysHighTempThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Ambient high temperature threshold. Temperature sensor located on Master
+ Controller board.
+
+ Values are represented in thousandths of a degree.
+ Units are displayed in the scale shown in
+ the 'dm3StatusSysTempUnits' OID (Celsius or Fahrenheit).
+
+ Attempts to set the value above or below the acceptable range of the powerplant
+ will cause the value to be set at the high or low point of the range respectively."
+ ::= { dm3ConfigSystem 3 }
+
+dm3ConfigSysHighTempAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the System High Temperature Alarm;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition."
+ ::= { dm3ConfigSystem 4 }
+
+dm3ConfigSysLowTempThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Ambient low temperature threshold. Temperature sensor located on Master
+ Controller board.
+
+ Values are represented in thousandths of a degree.
+ Units are displayed in the scale shown in
+ the 'dm3StatusSysTempUnits' OID (Celsius or Fahrenheit).
+
+ Attempts to set the value above or below the acceptable range of the powerplant
+ will cause the value to be set at the high or low point of the range respectively."
+ ::= { dm3ConfigSystem 5 }
+
+dm3ConfigSysLowTempAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the System Low Temperature Alarm;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition."
+ ::= { dm3ConfigSystem 6 }
+
+dm3ConfigSysHardwareTempAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the System Hardware Temperature Alarm;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition."
+ ::= { dm3ConfigSystem 7 }
+
+dm3ConfigSysRemoteAccess OBJECT-TYPE
+ SYNTAX INTEGER {
+ accessEnabled (1),
+ accessDisabled (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "
+ This OID is used to disable remote write access to the power plant.
+ Setting this OID to accessEnabled (1) will have no affect.
+ Setting this OID to accessDisabled (2) will disable the ability to
+ remotely configure the DC powerplant.
+
+ Once remote access is disabled, it can only be restored from the front
+ panel of the DC power plant."
+ ::= { dm3ConfigSystem 8 }
+
+
+-- the dm3ConfigLVD group
+
+dm3ConfigLVDTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of DC powerplant LVDs controllable
+ by this IP address."
+ ::= { dm3ConfigLVD 1 }
+
+dm3ConfigLVDTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ConfigLVDEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for accessing settings of the LVDs. The number of
+ entries is contained in the dm3ConfigLVDTableSize OID."
+ ::= { dm3ConfigLVD 2 }
+
+dm3ConfigLVDEntry OBJECT-TYPE
+ SYNTAX ConfigLVDEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The LVD to configure."
+ INDEX { dm3ConfigLVDIndex }
+ ::= { dm3ConfigLVDTable 1 }
+
+ConfigLVDEntry ::=
+ SEQUENCE {
+ dm3ConfigLVDIndex INTEGER,
+ dm3ConfigLVDName DisplayString,
+ dm3ConfigLVDEnable INTEGER,
+ dm3ConfigLVDTripThresh INTEGER,
+ dm3ConfigLVDResetThresh INTEGER,
+ dm3ConfigLVDOpenAlarm INTEGER,
+ dm3ConfigLVDHWAlarm INTEGER
+ }
+
+dm3ConfigLVDIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the DC powerplant LVD."
+ ::= { dm3ConfigLVDEntry 1 }
+
+dm3ConfigLVDName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the LVD. The maximum value is 16 characters."
+ ::= { dm3ConfigLVDEntry 2 }
+
+dm3ConfigLVDEnable OBJECT-TYPE
+ SYNTAX INTEGER {
+ enabledYes (1),
+ enabledNo (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "This OID is used to control and indicate if the LVD is on or off.
+ Setting this OID to enabledYes (1) will enable (turn on) the LVD.
+ Setting this OID to enabledNo (2) will disable (turn off) the LVD."
+ ::= { dm3ConfigLVDEntry 3 }
+
+dm3ConfigLVDTripThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "LVD Trip threshold. If voltage exceeds threshold, the LVD will trip.
+
+ Values are represented in thousandths of Volts (mV).
+ Attempts to set the value above or below the acceptable range of the powerplant
+ will cause the value to be set at the high or low point of the range respectively."
+ ::= { dm3ConfigLVDEntry 4 }
+
+dm3ConfigLVDResetThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "LVD Reset threshold. If voltage exceeds threshold, the LVD will reset.
+
+ Values are represented in thousandths of Volts (mV).
+ Attempts to set the value above or below the acceptable range of the powerplant
+ will cause the value to be set at the high or low point of the range respectively."
+ ::= { dm3ConfigLVDEntry 5 }
+
+dm3ConfigLVDOpenAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the LVD Open Alarm;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition."
+ ::= { dm3ConfigLVDEntry 6 }
+
+dm3ConfigLVDHWAlarm OBJECT-TYPE
+SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the LVD Hardware Alarm;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition."
+ ::= { dm3ConfigLVDEntry 7 }
+
+
+-- the dm3ConfigBattery group
+
+dm3ConfigBattFloatVolt OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Battery Float Voltage. This setting controls the power plant voltage.
+
+ Values are represented in thousandths of Volts (mV).
+ Attempts to set the value above or below the acceptable range of the powerplant
+ will cause the value to be set at the high or low point of the range respectively."
+ ::= { dm3ConfigBattery 1 }
+
+dm3ConfigBattMaxRecharge OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Battery Maximum Recharge Rate. This setting controls the battery max
+ recharge rate. The value is based on C/20 for 240 AHr battery string.
+
+ Values are represented in thousandths of Amps (mA).
+ Attempts to set the value above or below the acceptable range of the powerplant
+ will cause the value to be set at the high or low point of the range respectively."
+ ::= { dm3ConfigBattery 2 }
+
+dm3ConfigBattDischargeThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Battery discharge threshold. If battery output current exceeds threshold
+ a battery discharge alarm will occur.
+
+ Values are represented in thousandths of Amps (mA).
+ Attempts to set the value above or below the acceptable range of the powerplant
+ will cause the value to be set at the high or low point of the range respectively."
+ ::= { dm3ConfigBattery 3 }
+
+dm3ConfigBattDischargeAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the Battery Discharge Alarm;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition."
+
+ ::= { dm3ConfigBattery 4 }
+
+dm3ConfigBattHighVoltThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Battery high voltage threshold. If system battery voltage exceeds threshold
+ a battery high voltage alarm will occur.
+
+ Values are represented in thousandths of Volts (mV).
+ Attempts to set the value above or below the acceptable range of the powerplant
+ will cause the value to be set at the high or low point of the range respectively."
+ ::= { dm3ConfigBattery 5 }
+
+dm3ConfigBattHighVoltAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the Battery High Voltage Alarm;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition."
+
+ ::= { dm3ConfigBattery 6 }
+
+dm3ConfigBattLowVoltThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Battery low voltage threshold. If system battery voltage is under threshold
+ a battery low voltage alarm will occur.
+
+ Values are represented in thousandths of Volts (mV).
+ Attempts to set the value above or below the acceptable range of the powerplant
+ will cause the value to be set at the high or low point of the range respectively."
+ ::= { dm3ConfigBattery 7 }
+
+dm3ConfigBattLowVoltAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the Battery Low Voltage Alarm;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition."
+
+ ::= { dm3ConfigBattery 8 }
+
+dm3ConfigBattHighTempThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Battery high temperature threshold. If system battery temperature exceeds threshold
+ a battery high temperature alarm will occur.
+
+ Values are represented in thousandths of a degree.
+ Units are displayed in the scale shown in
+ the 'dm3StatusSysTempUnits' OID (Celsius or Fahrenheit).
+
+ Attempts to set the value above or below the acceptable range of the powerplant
+ will cause the value to be set at the high or low point of the range respectively."
+
+ ::= { dm3ConfigBattery 9 }
+
+dm3ConfigBattHighTempAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the Battery High Temperature Alarm;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition."
+
+ ::= { dm3ConfigBattery 10 }
+
+dm3ConfigBattLowTempThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Battery low temperature threshold. If system battery temperature is under threshold
+ a battery low temperature alarm will occur.
+
+ Values are represented in thousandths of a degree.
+ Units are displayed in the scale shown in
+ the 'dm3StatusSysTempUnits' OID (Celsius or Fahrenheit).
+
+ Attempts to set the value above or below the acceptable range of the powerplant
+ will cause the value to be set at the high or low point of the range respectively."
+
+ ::= { dm3ConfigBattery 11 }
+
+dm3ConfigBattLowTempAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the Battery Low Temperature Alarm;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition."
+
+ ::= { dm3ConfigBattery 12 }
+
+dm3ConfigBattAmpHour OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Battery Amp-Hour Size. Units are thousandths of Amp hours (mAHr).
+
+ Attempts to set the value above or below the acceptable range of the powerplant
+ will cause the value to be set at the high or low point of the range respectively."
+ ::= { dm3ConfigBattery 13 }
+
+dm3ConfigCompMethod OBJECT-TYPE
+ SYNTAX INTEGER {
+ tempcompOn (1),
+ tempcompOff (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "This OID is used to configure and get the state of the battery
+ temperature compensation.
+
+ Setting this OID to tempcompOn (1) will enable/turn on the battery temperature compensation.
+ Setting this OID to tempcompOff (2) will disable/turn off the battery temperature compensation."
+ ::= { dm3ConfigBattery 14 }
+
+dm3ConfigCompTempCoeff OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Compensation Temperature Coefficient. (uV/degC/cell).
+
+ Units are presented in microvolts.
+ Attempts to set the value above or below the acceptable range of the powerplant
+ will cause the value to be set at the high or low point of the range respectively."
+ ::= { dm3ConfigBattery 15 }
+
+dm3ConfigHighKneeTemp OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "High Knee for temperature compensation: Compensation temperature coefficient
+ becomes 0mV/degC/cell.
+
+ Values are represented in thousandths of degrees Celcius.
+ Attempts to set the value above or below the acceptable range of the powerplant
+ will cause the value to be set at the high or low point of the range respectively."
+ ::= { dm3ConfigBattery 16 }
+
+dm3ConfigLowKneeTemp OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Low Knee for temperature compensation: Compensation temperature coefficient
+ becomes 0mV/degC/cell.
+
+ Values are represented in thousandths of degrees Celcius.
+ Attempts to set the value above or below the acceptable range of the powerplant
+ will cause the value to be set at the high or low point of the range respectively."
+ ::= { dm3ConfigBattery 17 }
+
+dm3ConfigBattHwCurrentAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the Battery Current Hardware Alarm (indicating current is outside realistic
+ limits, or a possible measurement fault;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition."
+
+ ::= { dm3ConfigBattery 18 }
+
+dm3ConfigBattHwTempAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the Battery Temperature Hardware Alarm (indicating temperature is outside realistic
+ limits, or a possible measurement fault;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition."
+
+ ::= { dm3ConfigBattery 19 }
+
+
+-- the dm3ConfigRectThresh group
+dm3ConfigRectHighVoltThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Rectifier high voltage threshold. If rectifier voltage exceeds threshold
+ a rectifier high voltage alarm will occur.
+
+ Values are represented in thousandths of Volts (mV).
+ Attempts to set the value above or below the acceptable range of the powerplant
+ will cause the value to be set at the high or low point of the range respectively."
+ ::= { dm3ConfigRectThresh 1 }
+
+
+dm3ConfigRectLowVoltThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Rectifier low voltage threshold. If rectifier voltage is under threshold
+ a rectifier low voltage alarm will occur.
+
+ Values are represented in thousandths of Volts (mV).
+ Attempts to set the value above or below the acceptable range of the powerplant
+ will cause the value to be set at the high or low point of the range respectively."
+ ::= { dm3ConfigRectThresh 2 }
+
+dm3ConfigRectFailSafe OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Rectifier Fail Safe point. This OID represents the value sent to rectifier controllers
+ to use in the event of communications loss with the Master Controller or Master Controller
+ board failure.
+
+ Values are represented in thousandths of Volts (mV).
+ Attempts to set the value above or below the acceptable range of the powerplant
+ will cause the value to be set at the high or low point of the range respectively."
+ ::= { dm3ConfigRectThresh 3 }
+
+dm3ConfigRectFailComm OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Rectifier Communication Fail timeout. This OID represents the time interval in which there is no
+ communication between the rectifier and the master controller at which the rectifier will reset
+ all its values to default.
+
+ Values are represented in hundredths of Seconds.
+ Attempts to set the value above or below the acceptable range of the powerplant
+ will cause the value to be set at the high or low point of the range respectively."
+ ::= { dm3ConfigRectThresh 4 }
+
+-- the dm3ConfigRectAlarms group
+
+dm3ConfigRectHighVoltAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the Rectifier High Voltage Alarm;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition."
+
+ ::= { dm3ConfigRectAlarms 1 }
+
+dm3ConfigRectLowVoltAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the Rectifier Low Voltage Alarm;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition."
+
+ ::= { dm3ConfigRectAlarms 2 }
+
+dm3ConfigRectConfigAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "This alarm is activated when a new rectifier is detected;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition."
+
+ ::= { dm3ConfigRectAlarms 3 }
+
+dm3ConfigRect1ofNAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "This setting indicates the action if ONE rectifier of a N+1 system has failed;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition."
+
+ ::= { dm3ConfigRectAlarms 4 }
+
+dm3ConfigRect2ofNAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "This setting indicates the action if TWO OR MORE rectifiers of a N+1 system have failed;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition."
+
+ ::= { dm3ConfigRectAlarms 5 }
+
+dm3ConfigRectDiagAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9),
+ alarmNofN (10)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the Rectifier Controller Diagnostics Alarm;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmNofN (10) causes the alarm specified in the dm3ConfigRect1ofNAlarm OID
+ to be activated if ONE rectifier fails in an N+1 system. It causes the alarm specified in the
+ dm3ConfigRect2ofNAlarm OID to be activated if TWO OR MORE rectifiers fail in an N+1 system."
+
+ ::= { dm3ConfigRectAlarms 6 }
+
+dm3ConfigRectImbalanceAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the Rectifier Imbalance Alarm;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition."
+
+ ::= { dm3ConfigRectAlarms 7 }
+
+dm3ConfigRectCurrLimitAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9),
+ alarmNofN (10)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the Rectifier Current Limit Alarm (indicating rectifier in the Current Limit state);
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmNofN (10) causes the alarm specified in the dm3ConfigRect1ofNAlarm OID
+ to be activated if ONE rectifier fails in an N+1 system. It causes the alarm specified in the
+ dm3ConfigRect2ofNAlarm OID to be activated if TWO OR MORE rectifiers fail in an N+1 system."
+
+ ::= { dm3ConfigRectAlarms 8 }
+
+dm3ConfigRectStandbyAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9),
+ alarmNofN (10)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the Rectifier Standby Alarm (indicating output DC has been turned off);
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmNofN (10) causes the alarm specified in the dm3ConfigRect1ofNAlarm OID
+ to be activated if ONE rectifier fails in an N+1 system. It causes the alarm specified in the
+ dm3ConfigRect2ofNAlarm OID to be activated if TWO OR MORE rectifiers fail in an N+1 system."
+
+ ::= { dm3ConfigRectAlarms 9 }
+
+dm3ConfigRectFanFailAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9),
+ alarmNofN (10)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the Rectifier Fan Fail Alarm;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmNofN (10) causes the alarm specified in the dm3ConfigRect1ofNAlarm OID
+ to be activated if ONE rectifier fails in an N+1 system. It causes the alarm specified in the
+ dm3ConfigRect2ofNAlarm OID to be activated if TWO OR MORE rectifiers fail in an N+1 system."
+
+ ::= { dm3ConfigRectAlarms 10 }
+
+dm3ConfigRectFailAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9),
+ alarmNofN (10)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the Rectifier Fail Alarm;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmNofN (10) causes the alarm specified in the dm3ConfigRect1ofNAlarm OID
+ to be activated if ONE rectifier fails in an N+1 system. It causes the alarm specified in the
+ dm3ConfigRect2ofNAlarm OID to be activated if TWO OR MORE rectifiers fail in an N+1 system."
+
+ ::= { dm3ConfigRectAlarms 11 }
+
+dm3ConfigRectHwVoltAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the Rectifier Hardware Voltage Alarm (indicating voltage outside realistic limits,
+ or a possible measurement fault);
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition."
+
+ ::= { dm3ConfigRectAlarms 12 }
+
+
+-- the dm3ConfigConvThresh group
+
+dm3ConfigConvHighVoltThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Converter high voltage threshold. If converter voltage exceeds threshold
+ a converter high voltage alarm will occur.
+
+ Values are represented in thousandths of Volts (mV).
+ Attempts to set the value above or below the acceptable range of the powerplant
+ will cause the value to be set at the high or low point of the range respectively."
+
+ ::= { dm3ConfigConvThresh 1 }
+
+dm3ConfigConvLowVoltThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Converter low voltage threshold. If converter voltage exceeds threshold
+ a converter low voltage alarm will occur.
+
+ Values are represented in thousandths of Volts (mV).
+ Attempts to set the value above or below the acceptable range of the powerplant
+ will cause the value to be set at the high or low point of the range respectively."
+ ::= { dm3ConfigConvThresh 2 }
+
+dm3ConfigConvFailSafe OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Converter Fail Safe point. This OID represents the value sent to converter controllers
+ to use in the event of communications loss with the Master Controller or Master Controller
+ board failure.
+
+ Values are represented in thousandths of Volts (mV).
+ Attempts to set the value above or below the acceptable range of the powerplant
+ will cause the value to be set at the high or low point of the range respectively."
+ ::= { dm3ConfigConvThresh 3 }
+
+dm3ConfigConvSetPoint OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Converter Set point. This OID represents the initial set point used in the
+ voltage control loop.
+
+ Units are thousandths of Volts (mV).
+ Attempts to set the value above or below the acceptable range of the powerplant
+ will cause the value to be set at the high or low point of the range respectively."
+ ::= { dm3ConfigConvThresh 4 }
+
+dm3ConfigConvFailMax OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Converter Fail Maximum limit. This OID represents the value sent to the converter
+ controllers to define the maximum set point allowed.
+
+ Units are thousandths of Volts (mV).
+ Attempts to set the value above or below the acceptable range of the powerplant
+ will cause the value to be set at the high or low point of the range respectively."
+ ::= { dm3ConfigConvThresh 5 }
+
+dm3ConfigConvFailMin OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Converter Fail Minimum limit. This OID represents the value sent to the converter
+ controllers to define the minimum set point allowed.
+
+ Units are thousandths of Volts (mV).
+ Attempts to set the value above or below the acceptable range of the powerplant
+ will cause the value to be set at the high or low point of the range respectively."
+ ::= { dm3ConfigConvThresh 6 }
+
+dm3ConfigConvFailComm OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Converter Communication Fail timeout. This OID represents the time interval in which there is no
+ communication between the converter and the master controller at which the converter will reset
+ all its values to default.
+
+ Values are represented in hundredths of Seconds.
+ Attempts to set the value above or below the acceptable range of the powerplant
+ will cause the value to be set at the high or low point of the range respectively."
+ ::= { dm3ConfigConvThresh 7 }
+
+-- the dm3ConfigConvAlarms group
+dm3ConfigConvHighVoltAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the Converter High Voltage Alarm;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition."
+
+ ::= { dm3ConfigConvAlarms 1 }
+
+dm3ConfigConvLowVoltAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the Converter Low Voltage Alarm;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition."
+
+ ::= { dm3ConfigConvAlarms 2 }
+
+dm3ConfigConvConfigAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the Converter Configuration Alarm (indicating a new converter has been detected);
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition."
+
+ ::= { dm3ConfigConvAlarms 3 }
+
+dm3ConfigConv1ofNAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the Converter 1ofN Alarm (indicating action if ONE converter of a N+1 system has failed);
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition."
+
+ ::= { dm3ConfigConvAlarms 4 }
+
+dm3ConfigConv2ofNAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the Converter 2ofN Alarm (indicating action if TWO OR MORE converters of a N+1 system has failed);
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition."
+
+ ::= { dm3ConfigConvAlarms 5 }
+
+dm3ConfigConvDiagAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9),
+ alarmNofN (10)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the Converter Diagnostics Alarm;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmNofN (10) causes the alarm specified in the dm3ConfigConv1ofNAlarm OID
+ to be activated if ONE converter fails in an N+1 system. It causes the alarm specified in the
+ dm3ConfigConv2ofNAlarm OID to be activated if TWO OR MORE converters fail in an N+1 system."
+
+ ::= { dm3ConfigConvAlarms 6 }
+
+dm3ConfigConvImbalanceAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9),
+ alarmNofN (10)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the Converter Imbalance Alarm;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmNofN (10) causes the alarm specified in the dm3ConfigConv1ofNAlarm OID
+ to be activated if ONE converter fails in an N+1 system. It causes the alarm specified in the
+ dm3ConfigConv2ofNAlarm OID to be activated if TWO OR MORE converters fail in an N+1 system."
+
+ ::= { dm3ConfigConvAlarms 7 }
+
+dm3ConfigConvCurrLimitAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9),
+ alarmNofN (10)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the Converter Current Limit Alarm (indicating the converter is in the Current Limit state);
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmNofN (10) causes the alarm specified in the dm3ConfigConv1ofNAlarm OID
+ to be activated if ONE converter fails in an N+1 system. It causes the alarm specified in the
+ dm3ConfigConv2ofNAlarm OID to be activated if TWO OR MORE converters fail in an N+1 system."
+
+ ::= { dm3ConfigConvAlarms 8 }
+
+dm3ConfigConvStandbyAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9),
+ alarmNofN (10)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the Converter Standby Alarm (indicating the converter is in the Standby state);
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmNofN (10) causes the alarm specified in the dm3ConfigConv1ofNAlarm OID
+ to be activated if ONE converter fails in an N+1 system. It causes the alarm specified in the
+ dm3ConfigConv2ofNAlarm OID to be activated if TWO OR MORE converters fail in an N+1 system."
+
+ ::= { dm3ConfigConvAlarms 9 }
+
+dm3ConfigConvFanFailAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9),
+ alarmNofN (10)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the Converter Fan Fail Alarm;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmNofN (10) causes the alarm specified in the dm3ConfigConv1ofNAlarm OID
+ to be activated if ONE converter fails in an N+1 system. It causes the alarm specified in the
+ dm3ConfigConv2ofNAlarm OID to be activated if TWO OR MORE converters fail in an N+1 system."
+
+ ::= { dm3ConfigConvAlarms 10 }
+
+dm3ConfigConvFailAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9),
+ alarmNofN (10)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the Converter Fail Alarm;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmNofN (10) causes the alarm specified in the dm3ConfigConv1ofNAlarm OID
+ to be activated if ONE converter fails in an N+1 system. It causes the alarm specified in the
+ dm3ConfigConv2ofNAlarm OID to be activated if TWO OR MORE converters fail in an N+1 system."
+
+ ::= { dm3ConfigConvAlarms 11 }
+
+dm3ConfigConvHwVoltAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9),
+ alarmNofN (10)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "For the Converter Voltage Alarm (indicating voltage outside realistic limits, or a
+ possible measurement fault);
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmNofN (10) causes the alarm specified in the dm3ConfigConv1ofNAlarm OID
+ to be activated if ONE converter fails in an N+1 system. It causes the alarm specified in the
+ dm3ConfigConv2ofNAlarm OID to be activated if TWO OR MORE converters fail in an N+1 system."
+
+ ::= { dm3ConfigConvAlarms 12 }
+
+
+-- the dm3ConfigOutputRelays group
+
+dm3ConfigOutRlyTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of DC powerplant Output Relays controllable
+ by this IP address."
+ ::= { dm3ConfigOutputRelays 1 }
+
+dm3ConfigOutRlyTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ConfigOutRlyEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for accessing settings of the Output Relays. The number of
+ entries is contained in the dm3ConfigOutRlyTableSize OID."
+ ::= { dm3ConfigOutputRelays 2 }
+
+dm3ConfigOutRlyEntry OBJECT-TYPE
+ SYNTAX ConfigOutRlyEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The output relay to configure."
+ INDEX { dm3ConfigOutRlyIndex }
+ ::= { dm3ConfigOutRlyTable 1 }
+
+ConfigOutRlyEntry ::=
+ SEQUENCE {
+ dm3ConfigOutRlyIndex INTEGER,
+ dm3ConfigOutRlyName DisplayString,
+ dm3ConfigOutRlyDelay INTEGER,
+ dm3ConfigOutRlyAlarm INTEGER
+ }
+
+dm3ConfigOutRlyIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the DC powerplant output relay."
+ ::= { dm3ConfigOutRlyEntry 1 }
+
+dm3ConfigOutRlyName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the output relay. The maximum value is 16 characters."
+ ::= { dm3ConfigOutRlyEntry 2 }
+
+dm3ConfigOutRlyDelay OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Output Relay Delay. This OID represents the time delay from the initiation of an
+ output relay action to when the output relay action does occur. If the alarm condition
+ disappears before the end of the delay, no action will occur. Delay for Major
+ and Minor alarms is not configurable and is always set to 0.
+
+ Values are represented in hundredths of seconds.
+ Attempts to set the value above or below the acceptable range of the powerplant
+ will cause the value to be set at the high or low point of the range respectively."
+ ::= { dm3ConfigOutRlyEntry 3 }
+
+dm3ConfigOutRlyAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Output Relay Alarm. This setting indicates what action to perform in the event of
+ an output relay alarm condition;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition.
+
+ Relay Alarm for Major and Minor alarms is not configurable and is always set to
+ alarmMajor and alarmMinor respectively."
+
+ ::= { dm3ConfigOutRlyEntry 4 }
+
+
+-- the dm3ConfigInputRelays group
+
+dm3ConfigInRlyTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of DC powerplant Input Relays controllable
+ by this IP address."
+ ::= { dm3ConfigInputRelays 1 }
+
+dm3ConfigInRlyTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ConfigInRlyEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for accessing settings of the Input Relays. The number of
+ entries is contained in the dm3ConfigInRlyTableSize OID."
+ ::= { dm3ConfigInputRelays 2 }
+
+dm3ConfigInRlyEntry OBJECT-TYPE
+ SYNTAX ConfigInRlyEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The input relay to configure."
+ INDEX { dm3ConfigInRlyIndex }
+ ::= { dm3ConfigInRlyTable 1 }
+
+ConfigInRlyEntry ::=
+ SEQUENCE {
+ dm3ConfigInRlyIndex INTEGER,
+ dm3ConfigInRlyName DisplayString,
+ dm3ConfigInRlyDelay INTEGER,
+ dm3ConfigInRlyAlarm INTEGER
+ }
+
+dm3ConfigInRlyIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the DC powerplant input relay."
+ ::= { dm3ConfigInRlyEntry 1 }
+
+dm3ConfigInRlyName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the input relay. The maximum value is 16 characters."
+
+ ::= { dm3ConfigInRlyEntry 2 }
+
+dm3ConfigInRlyDelay OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Input Relay Delay. This OID represents the time delay from the initiation of an
+ input relay action to when the input relay action does occur. If the alarm condition
+ disappears before the end of the delay, no action will occur.
+
+ Values are represented in hundredths of seconds.
+
+ Attempts to set the value above or below the acceptable range of the powerplant
+ will cause the value to be set at the high or low point of the range respectively."
+ ::= { dm3ConfigInRlyEntry 3 }
+
+dm3ConfigInRlyAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Input Relay Alarm. This setting indicates what action to perform in the event of
+ an input relay alarm condition;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition."
+
+ ::= { dm3ConfigInRlyEntry 4 }
+
+-- the dm3ConfigBreakers group
+
+dm3ConfigBreakersTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of DC powerplant circuit breakers controllable
+ by this IP address."
+ ::= { dm3ConfigBreakers 1 }
+
+dm3ConfigBreakersTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ConfigBreakersEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for accessing settings of the circuit breakers. The number of
+ entries is contained in the dm3ConfigBreakersTableSize OID."
+ ::= { dm3ConfigBreakers 2 }
+
+dm3ConfigBreakersEntry OBJECT-TYPE
+ SYNTAX ConfigBreakersEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The circuit breaker to configure."
+ INDEX { dm3ConfigBreakersIndex }
+ ::= { dm3ConfigBreakersTable 1 }
+
+ConfigBreakersEntry ::=
+ SEQUENCE {
+ dm3ConfigBreakersIndex INTEGER,
+ dm3ConfigBreakersName DisplayString,
+ dm3ConfigBreakersAlarm INTEGER
+ }
+
+dm3ConfigBreakersIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the DC powerplant circuit breaker."
+ ::= { dm3ConfigBreakersEntry 1 }
+
+dm3ConfigBreakersName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the circuit breaker. The maximum value is 16 characters."
+ ::= { dm3ConfigBreakersEntry 2 }
+
+dm3ConfigBreakersAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Circuit Breaker Alarm. This setting indicates what action to perform in the event of
+ a circuit breaker alarm condition;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition."
+
+ ::= { dm3ConfigBreakersEntry 3 }
+
+-- the dm3ConfigFuses group
+
+dm3ConfigFusesTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of DC powerplant Fuses controllable
+ by this IP address."
+ ::= { dm3ConfigFuses 1 }
+
+dm3ConfigFusesTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ConfigFusesEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for accessing settings of the Fuses. The number of
+ entries is contained in the dm3ConfigFusesTableSize OID."
+ ::= { dm3ConfigFuses 2 }
+
+dm3ConfigFusesEntry OBJECT-TYPE
+ SYNTAX ConfigFusesEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The fuse to configure."
+ INDEX { dm3ConfigFusesIndex }
+ ::= { dm3ConfigFusesTable 1 }
+
+ConfigFusesEntry ::=
+ SEQUENCE {
+ dm3ConfigFusesIndex INTEGER,
+ dm3ConfigFusesName DisplayString,
+ dm3ConfigFusesAlarm INTEGER
+ }
+
+dm3ConfigFusesIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the DC powerplant fuse."
+ ::= { dm3ConfigFusesEntry 1 }
+
+dm3ConfigFusesName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the fuse. The maximum value is 16 characters."
+ ::= { dm3ConfigFusesEntry 2 }
+
+dm3ConfigFusesAlarm OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmIgnore (1),
+ alarmRelay1 (2),
+ alarmRelay2 (3),
+ alarmRelay3 (4),
+ alarmRelay4 (5),
+ alarmRelay5 (6),
+ alarmRelay6 (7),
+ alarmMinor (8),
+ alarmMajor (9)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Fuses Alarm. This setting indicates what action to perform in the event of
+ a Fuse alarm condition;
+ Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
+ Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
+ alarm condition.
+ Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
+ alarm condition.
+ Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
+ alarm condition.
+ Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
+ alarm condition."
+
+ ::= { dm3ConfigFusesEntry 3 }
+
+-- the dm3StatusSystem group
+
+dm3StatusSystemTemp OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "System temperature based on sensor on Master Controller PCB.
+
+ Values are represented in thousandths of a degree.
+ Units are displayed in the scale shown in
+ the 'dm3StatusSysTempUnits' OID (Celsius or Fahrenheit)."
+
+ ::= { dm3StatusSystem 1 }
+
+dm3StatusSystemStart OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Time stamp at DC powerplant initialization.
+ The time is represented as MMM,DD,YYYY,HH:MM:SS."
+ ::= { dm3StatusSystem 2 }
+
+dm3StatusSysRemoteAccess OBJECT-TYPE
+ SYNTAX INTEGER {
+ accessEnabled (1),
+ accessDisabled (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Remote Access indicator
+ This setting indicates if configuration (write) access to the powerplant is enabled or
+ disabled at the powerplant level.
+ This value will be accessEnabled (1) if remote configuration is enabled, and
+ accessDisabled (2) if remote configuration is disabled."
+ ::= { dm3StatusSystem 3 }
+
+dm3StatusSysSecurityLevel OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This variable shows the current active security access level of controller. This
+ can only be changed directly from the front panel."
+ ::= { dm3StatusSystem 4 }
+
+dm3StatusSysTempSanity OBJECT-TYPE
+ SYNTAX INTEGER{
+ saneYES (1),
+ saneNO (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "System temperature sanity indicator. Indicates if the system temperature is
+ reasonable. Reasonable is defined based on powerplant type. A value of saneYes (1)
+ indicates temperature is reasonable, a value of saneNo (2) indicates it is not."
+ ::= { dm3StatusSystem 5 }
+
+dm3StatusSysAlarmState OBJECT-TYPE
+ SYNTAX INTEGER{
+ alarmMinor (1),
+ alarmMajor (2),
+ alarmBoth (3),
+ alarmNone (4)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "System Alarm State. Reflects the alarm status of the overall DC system.
+ If a minor alarm is present, the value will be alarmMinor(1).
+ If a major alarm is present, the value will be alarmMajor(2).
+ If both minor and a major alarm is present, the value will be alarmBoth(3).
+ If no alarm is present, the value will be alarmNone(4)."
+ ::= { dm3StatusSystem 6 }
+
+dm3StatusSysTempUnits OBJECT-TYPE
+ SYNTAX INTEGER {
+ celsius(1),
+ fahrenheit(2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The temperature scale used to display the temperature
+ in the DC system, Celsius(1) or Fahrenheit(2).
+ This setting is based on the system preferences
+ configuration in the agent."
+ ::= { dm3StatusSystem 7 }
+
+
+-- the dm3StatusAlarms group
+
+dm3StatusAlarmsTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of DC powerplant alarms viewable
+ by this IP address."
+ ::= { dm3StatusAlarms 1 }
+
+dm3StatusAlarmsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF StatusAlarmsEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for accessing system alarms. The number of
+ entries is contained in the dm3StatusAlarmsTableSize OID."
+ ::= { dm3StatusAlarms 2 }
+
+dm3StatusAlarmsEntry OBJECT-TYPE
+ SYNTAX StatusAlarmsEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The alarm to display."
+ INDEX { dm3StatusAlarmsIndex }
+ ::= { dm3StatusAlarmsTable 1 }
+
+StatusAlarmsEntry ::=
+ SEQUENCE {
+ dm3StatusAlarmsIndex INTEGER,
+ dm3StatusAlarmsText DisplayString
+ }
+
+dm3StatusAlarmsIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index of the system alarm."
+ ::= { dm3StatusAlarmsEntry 1 }
+
+dm3StatusAlarmsText OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The 16 character text describing the active alarm condition."
+ ::= { dm3StatusAlarmsEntry 2 }
+
+-- the dm3StatusBattery group
+
+dm3StatusBattCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Battery Current: This OID shows the battery current in thousandths of Amps (mA)."
+ ::= { dm3StatusBattery 1 }
+
+dm3StatusBattTemp OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Battery Temperature:
+
+ Values are represented in thousandths of a degree.
+ Units are displayed in the scale shown in
+ the 'dm3StatusSysTempUnits' OID (Celsius or Fahrenheit)."
+
+ ::= { dm3StatusBattery 2 }
+
+dm3StatusBattCurrentSanity OBJECT-TYPE
+ SYNTAX INTEGER{
+ saneYES (1),
+ saneNO (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Battery current sanity indicator. Indicates if the battery current is
+ reasonable. Reasonable is defined based on powerplant type. A value of saneYes (1)
+ indicates current is reasonable, a value of saneNo (2) indicates it is not."
+ ::= { dm3StatusBattery 3 }
+
+dm3StatusBattTempSanity OBJECT-TYPE
+ SYNTAX INTEGER{
+ saneYES (1),
+ saneNO (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Battery temperature sanity indicator. Indicates if the battery temperature is
+ reasonable. Reasonable is defined based on powerplant type. A value of saneYes (1)
+ indicates temperature is reasonable, a value of saneNo (2) indicates it is not."
+ ::= { dm3StatusBattery 4 }
+
+-- the dm3StatusOEM group
+
+dm3StatusOEMrectOffset OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the rectifier offset value in thousandths of Volts (mV)."
+ ::= { dm3StatusOEM 1 }
+
+dm3StatusOEMrectGain OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the rectifier gain value in thousandths of Volts (mV/V)."
+ ::= { dm3StatusOEM 2 }
+
+dm3StatusOEMconvOffset OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the converter offset value in thousandths of Volts (mV)."
+ ::= { dm3StatusOEM 3 }
+
+dm3StatusOEMconvGain OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the converter gain value in thousandths of Volts (mV/V)."
+ ::= { dm3StatusOEM 4 }
+
+dm3StatusOEMshuntOffset OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the shunt offset value in thousandths of Amps (mA)."
+ ::= { dm3StatusOEM 5 }
+
+dm3StatusOEMshuntGain OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the shunt gain value in thousandths of Amps (mA/A)."
+ ::= { dm3StatusOEM 6 }
+
+-- the dm3StatusLVD group
+
+dm3StatusLVDTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of DC powerplant LVDs viewable
+ by this IP address."
+ ::= { dm3StatusLVD 1 }
+
+dm3StatusLVDTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF StatusLVDEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for accessing settings of the LVDs. The number of
+ entries is contained in the dm3StatusLVDTableSize OID."
+ ::= { dm3StatusLVD 2 }
+
+dm3StatusLVDEntry OBJECT-TYPE
+ SYNTAX StatusLVDEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The LVD to gather status from."
+ INDEX { dm3StatusLVDIndex }
+ ::= { dm3StatusLVDTable 1 }
+
+StatusLVDEntry ::=
+ SEQUENCE {
+ dm3StatusLVDIndex INTEGER,
+ dm3StatusLVDName DisplayString,
+ dm3StatusLVDState INTEGER,
+ dm3StatusLVDHwFault INTEGER
+ }
+
+dm3StatusLVDIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the DC powerplant LVD."
+ ::= { dm3StatusLVDEntry 1 }
+
+dm3StatusLVDName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the LVD. The maximum size is
+ 16 characters. The name is set by using the
+ dm3ConfigLVDName OID.
+ This OID is provided for informational purposes only."
+ ::= { dm3StatusLVDEntry 2 }
+
+dm3StatusLVDState OBJECT-TYPE
+ SYNTAX INTEGER {
+ statusClosed (1),
+ statusOpened (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return statusClosed (1) if the LVD is closed.
+ statusOpened (2) will be returned if the LVD is opened."
+ ::= { dm3StatusLVDEntry 3 }
+
+dm3StatusLVDHwFault OBJECT-TYPE
+ SYNTAX INTEGER {
+ statusFault (1),
+ statusNofault (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return statusFault (1) if the LVD is faulted.
+ statusNofault (2) will be returned if the LVD is not faulted."
+ ::= { dm3StatusLVDEntry 4 }
+
+-- the dm3StatusRectifier group
+
+dm3StatusRectTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of DC powerplant rectifiers viewable
+ by this IP address."
+ ::= { dm3StatusRectifier 1 }
+
+dm3StatusRectTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF StatusRectEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for accessing settings of the rectifiers. The number of
+ entries is contained in the dm3StatusRectTableSize OID."
+ ::= { dm3StatusRectifier 2 }
+
+dm3StatusRectEntry OBJECT-TYPE
+ SYNTAX StatusRectEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The rectifier to gather status from."
+ INDEX { dm3StatusRectIndex }
+ ::= { dm3StatusRectTable 1 }
+
+StatusRectEntry ::=
+ SEQUENCE {
+ dm3StatusRectIndex INTEGER,
+ dm3StatusRectID INTEGER,
+ dm3StatusRectDesc DisplayString,
+ dm3StatusRectCurrent INTEGER,
+ dm3StatusRectCurrentLimit INTEGER,
+ dm3StatusRectStandby INTEGER,
+ dm3StatusRectFanFail INTEGER,
+ dm3StatusRectFail INTEGER,
+ dm3StatusRectDevType INTEGER,
+ dm3StatusRectPhyAddr INTEGER,
+ dm3StatusRectCfg INTEGER,
+ dm3StatusRectPcbRev INTEGER,
+ dm3StatusRectFwVer INTEGER,
+ dm3StatusRectPresent INTEGER,
+ dm3StatusRectDiagPass INTEGER,
+ dm3StatusRectState INTEGER
+ }
+
+dm3StatusRectIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the DC powerplant rectifier."
+ ::= { dm3StatusRectEntry 1 }
+
+dm3StatusRectID OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the rectifier ID. This enumerates the number of the rectifier within
+ a group of rectifiers."
+ ::= { dm3StatusRectEntry 2 }
+
+dm3StatusRectDesc OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the 16-character rectifier description."
+ ::= { dm3StatusRectEntry 3 }
+
+dm3StatusRectCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the rectifier current in thousandths of Amps (mA)."
+ ::= { dm3StatusRectEntry 4 }
+
+dm3StatusRectCurrentLimit OBJECT-TYPE
+ SYNTAX INTEGER {
+ statusTrue (1),
+ statusFalse (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return statusTrue (1) if the rectifier is in the Current Limit state.
+ statusFalse (2) will be returned if the rectifier is not in the Current Limit state."
+ ::= { dm3StatusRectEntry 5 }
+
+dm3StatusRectStandby OBJECT-TYPE
+ SYNTAX INTEGER {
+ statusTrue (1),
+ statusFalse (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return statusTrue (1) if the rectifier is in the Standby state.
+ statusFalse (2) will be returned if the rectifier is not in the Standby state."
+ ::= { dm3StatusRectEntry 6 }
+
+dm3StatusRectFanFail OBJECT-TYPE
+ SYNTAX INTEGER {
+ statusTrue (1),
+ statusFalse (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return statusTrue (1) if the rectifier Fan has failed.
+ statusFalse (2) will be returned if the rectifier Fan has not failed."
+ ::= { dm3StatusRectEntry 7 }
+
+dm3StatusRectFail OBJECT-TYPE
+ SYNTAX INTEGER {
+ statusTrue (1),
+ statusFalse (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return statusTrue (1) if the rectifier has failed.
+ statusFalse (2) will be returned if the rectifier has not failed."
+ ::= { dm3StatusRectEntry 8 }
+
+dm3StatusRectDevType OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the rectifier device type."
+ ::= { dm3StatusRectEntry 9 }
+
+dm3StatusRectPhyAddr OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the rectifier physical address (the address on the bus)."
+ ::= { dm3StatusRectEntry 10 }
+
+dm3StatusRectCfg OBJECT-TYPE
+ SYNTAX INTEGER {
+ statusTrue (1),
+ statusFalse (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return statusTrue (1) if the rectifier is present after
+ power-up or set-configuration.
+ statusFalse (2) will be returned if the rectifier is not configured."
+ ::= { dm3StatusRectEntry 11 }
+
+dm3StatusRectPcbRev OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the rectifier device PCB serial number."
+ ::= { dm3StatusRectEntry 12 }
+
+dm3StatusRectFwVer OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the rectifier device firmware revision."
+ ::= { dm3StatusRectEntry 13 }
+
+dm3StatusRectPresent OBJECT-TYPE
+ SYNTAX INTEGER {
+ statusTrue (1),
+ statusFalse (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return statusTrue (1) if the rectifier is present.
+ statusFalse (2) will be returned if the rectifier is not present."
+ ::= { dm3StatusRectEntry 14 }
+
+dm3StatusRectDiagPass OBJECT-TYPE
+ SYNTAX INTEGER {
+ statusTrue (1),
+ statusFalse (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return statusTrue (1) if the rectifier diagnostics have passed.
+ statusFalse (2) will be returned if the rectifier diagnostics have not passed."
+ ::= { dm3StatusRectEntry 15 }
+
+dm3StatusRectState OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the rectifier device state as defined by the device status register."
+ ::= { dm3StatusRectEntry 16 }
+
+dm3StatusSysRectVoltSanity OBJECT-TYPE
+ SYNTAX INTEGER {
+ saneYES (1),
+ saneNO (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Rectifier voltage sanity indicator. Indicates if the rectifier voltage is
+ reasonable. Reasonable is defined based on powerplant type. A value of saneYes (1)
+ indicates voltage is reasonable, a value of saneNo (2) indicates it is not."
+ ::= { dm3StatusRectifier 3 }
+
+dm3StatusSysRectAvailable OBJECT-TYPE
+ SYNTAX INTEGER {
+ statusTrue (1),
+ statusFalse (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return statusTrue (1) if the rectifier is available.
+ statusFalse (2) will be returned if the rectifier is not available."
+ ::= { dm3StatusRectifier 4 }
+
+dm3StatusSysRectType OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the type of rectifier the system has. There can only be a single type of
+ rectifier in the power plant"
+ ::= { dm3StatusRectifier 5 }
+
+dm3StatusSysRectVoltage OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the system level rectifier voltage in thousandths of Volts (mV)."
+ ::= { dm3StatusRectifier 6 }
+
+dm3StatusSysRectCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the system level rectifier current in thousandths of Amps (mA)."
+ ::= { dm3StatusRectifier 7 }
+
+
+-- the dm3StatusConverter group
+
+dm3StatusConvTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of DC powerplant converters viewable
+ by this IP address."
+ ::= { dm3StatusConverter 1 }
+
+dm3StatusConvTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF StatusConvEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for viewing status of the converters. The number of
+ entries is contained in the dm3StatusConvTableSize OID."
+ ::= { dm3StatusConverter 2 }
+
+dm3StatusConvEntry OBJECT-TYPE
+ SYNTAX StatusConvEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The converter to gather status from."
+ INDEX { dm3StatusConvIndex }
+ ::= { dm3StatusConvTable 1 }
+
+StatusConvEntry ::=
+ SEQUENCE {
+ dm3StatusConvIndex INTEGER,
+ dm3StatusConvID INTEGER,
+ dm3StatusConvDesc DisplayString,
+ dm3StatusConvCurrent INTEGER,
+ dm3StatusConvCurrentLimit INTEGER,
+ dm3StatusConvStandby INTEGER,
+ dm3StatusConvFanFail INTEGER,
+ dm3StatusConvFail INTEGER,
+ dm3StatusConvDevType INTEGER,
+ dm3StatusConvPhyAddr INTEGER,
+ dm3StatusConvCfg INTEGER,
+ dm3StatusConvPcbRev INTEGER,
+ dm3StatusConvFwVer INTEGER,
+ dm3StatusConvPresent INTEGER,
+ dm3StatusConvDiagPass INTEGER,
+ dm3StatusConvState INTEGER
+ }
+
+dm3StatusConvIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the DC powerplant converter."
+ ::= { dm3StatusConvEntry 1 }
+
+dm3StatusConvID OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the converter ID. This enumerates the number of the converter within
+ a group of converters."
+ ::= { dm3StatusConvEntry 2 }
+
+dm3StatusConvDesc OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the 16 character converter description."
+ ::= { dm3StatusConvEntry 3 }
+
+dm3StatusConvCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the converter current in thousandths of Amps (mA)."
+ ::= { dm3StatusConvEntry 4 }
+
+dm3StatusConvCurrentLimit OBJECT-TYPE
+ SYNTAX INTEGER {
+ statusTrue (1),
+ statusFalse (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return statusTrue (1) if the converter is in the Current Limit state.
+ statusFalse (2) will be returned if the converter is not in the Current Limit state."
+ ::= { dm3StatusConvEntry 5 }
+
+dm3StatusConvStandby OBJECT-TYPE
+ SYNTAX INTEGER {
+ statusTrue (1),
+ statusFalse (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return statusTrue (1) if the converter is in the Standby state.
+ statusFalse (2) will be returned if the converter is not in the Standby state."
+ ::= { dm3StatusConvEntry 6 }
+
+dm3StatusConvFanFail OBJECT-TYPE
+ SYNTAX INTEGER {
+ statusTrue (1),
+ statusFalse (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return statusTrue (1) if the converter Fan has failed.
+ statusFalse (2) will be returned if the converter Fan has not failed."
+ ::= { dm3StatusConvEntry 7 }
+
+dm3StatusConvFail OBJECT-TYPE
+ SYNTAX INTEGER {
+ statusTrue (1),
+ statusFalse (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return statusTrue (1) if the converter has failed.
+ statusFalse (2) will be returned if the converter has not failed."
+ ::= { dm3StatusConvEntry 8 }
+
+dm3StatusConvDevType OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the converter device type."
+ ::= { dm3StatusConvEntry 9 }
+
+dm3StatusConvPhyAddr OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the converter physical address (the address on the bus)."
+ ::= { dm3StatusConvEntry 10 }
+
+dm3StatusConvCfg OBJECT-TYPE
+ SYNTAX INTEGER {
+ statusTrue (1),
+ statusFalse (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return statusTrue (1) if the converter is present after
+ power-up or set-configuration.
+ statusFalse (2) will be returned if the converter is not configured."
+ ::= { dm3StatusConvEntry 11 }
+
+dm3StatusConvPcbRev OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the converter device PCB serial number."
+ ::= { dm3StatusConvEntry 12 }
+
+dm3StatusConvFwVer OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the converter device firmware version."
+ ::= { dm3StatusConvEntry 13 }
+
+dm3StatusConvPresent OBJECT-TYPE
+ SYNTAX INTEGER {
+ statusTrue (1),
+ statusFalse (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return statusTrue (1) if the converter is present.
+ statusFalse (2) will be returned if the converter is not present."
+ ::= { dm3StatusConvEntry 14 }
+
+dm3StatusConvDiagPass OBJECT-TYPE
+ SYNTAX INTEGER {
+ statusTrue (1),
+ statusFalse (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return statusTrue (1) if the converter diagnostics have passed.
+ statusFalse (2) will be returned if the converter diagnostics have not passed."
+ ::= { dm3StatusConvEntry 15 }
+
+dm3StatusConvState OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the converter state as defined by the device status register."
+ ::= { dm3StatusConvEntry 16 }
+
+dm3StatusSysConvVoltSanity OBJECT-TYPE
+ SYNTAX INTEGER{
+ saneYES (1),
+ saneNO (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Converter voltage sanity indicator. Indicates if the converter voltage is
+ reasonable. Reasonable is defined based on powerplant type. A value of saneYes (1)
+ indicates voltage is reasonable, a value of saneNo (2) indicates it is not."
+ ::= { dm3StatusConverter 3 }
+
+dm3StatusSysConvAvailable OBJECT-TYPE
+ SYNTAX INTEGER {
+ statusTrue (1),
+ statusFalse (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return statusTrue (1) if the converter is available.
+ statusFalse (2) will be returned if the converter is not available."
+ ::= { dm3StatusConverter 4 }
+
+dm3StatusSysConvType OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the converter type."
+ ::= { dm3StatusConverter 5 }
+
+dm3StatusSysConvVoltage OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the system level converter voltage in thousandths of volts (mV)."
+ ::= { dm3StatusConverter 6 }
+
+dm3StatusSysConvCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the system level converter current in thousandths of Amps (mA)."
+ ::= { dm3StatusConverter 7 }
+
+-- the dm3StatusOutputRelays group
+
+dm3StatusOutRlyTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of DC powerplant output relays viewable
+ by this IP address."
+ ::= { dm3StatusOutputRelays 1 }
+
+dm3StatusOutRlyTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF StatusOutRlyEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for viewing status of the output relays. The number of
+ entries is contained in the dm3StatusOutRlyTableSize OID."
+ ::= { dm3StatusOutputRelays 2 }
+
+dm3StatusOutRlyEntry OBJECT-TYPE
+ SYNTAX StatusOutRlyEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The output relay to gather status from."
+ INDEX { dm3StatusOutRlyIndex }
+ ::= { dm3StatusOutRlyTable 1 }
+
+StatusOutRlyEntry ::=
+ SEQUENCE {
+ dm3StatusOutRlyIndex INTEGER,
+ dm3StatusOutRlyName DisplayString,
+ dm3StatusOutRlyStatus INTEGER
+ }
+
+dm3StatusOutRlyIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the DC powerplant output relay."
+ ::= { dm3StatusOutRlyEntry 1 }
+
+dm3StatusOutRlyName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the output relay. The maximum size is
+ 16 characters. The name is set by using the
+ dm3ConfigOutRlyName OID.
+ This OID is provided for informational purposes only."
+ ::= { dm3StatusOutRlyEntry 2 }
+
+dm3StatusOutRlyStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ statusOn (1),
+ statusOff (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return statusOn (1) if the output relay is enabled/on.
+ statusOff (2) will be returned if the output relay is disabled/off."
+ ::= { dm3StatusOutRlyEntry 3 }
+
+
+-- the dm3StatusInputRelays group
+
+dm3StatusInRlyTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of DC powerplant input relays viewable
+ by this IP address."
+ ::= { dm3StatusInputRelays 1 }
+
+dm3StatusInRlyTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF StatusInRlyEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for viewing status of the input relays. The number of
+ entries is contained in the dm3StatusInRlyTableSize OID."
+ ::= { dm3StatusInputRelays 2 }
+
+
+dm3StatusInRlyEntry OBJECT-TYPE
+ SYNTAX StatusInRlyEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The input relays to gather status from."
+ INDEX { dm3StatusInRlyIndex }
+ ::= { dm3StatusInRlyTable 1 }
+
+StatusInRlyEntry ::=
+ SEQUENCE {
+ dm3StatusInRlyIndex INTEGER,
+ dm3StatusInRlyName DisplayString,
+ dm3StatusInRlyStatus INTEGER
+ }
+
+dm3StatusInRlyIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the DC powerplant input relay."
+ ::= { dm3StatusInRlyEntry 1 }
+
+dm3StatusInRlyName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the input relay. The maximum size is
+ 16 characters. The name is set by using the
+ dm3ConfigInRlyName OID.
+ This OID is provided for informational purposes only."
+ ::= { dm3StatusInRlyEntry 2 }
+
+dm3StatusInRlyStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ statusOn (1),
+ statusOff (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return statusOn (1) if the input relay is enabled/on.
+ statusOff (2) will be returned if the input relay is disabled/off."
+ ::= { dm3StatusInRlyEntry 3 }
+
+-- the dm3StatusBreakers group
+
+dm3StatusBreakersTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of DC powerplant circuit breakers viewable
+ by this IP address."
+ ::= { dm3StatusBreakers 1 }
+
+dm3StatusBreakersTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF StatusBreakersEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for viewing status of the circuit breakers. The number of
+ entries is contained in the dm3StatusBreakersTableSize OID."
+ ::= { dm3StatusBreakers 2 }
+
+dm3StatusBreakersEntry OBJECT-TYPE
+ SYNTAX StatusBreakersEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The circuit breaker to gather status from."
+ INDEX { dm3StatusBreakersIndex }
+ ::= { dm3StatusBreakersTable 1 }
+
+StatusBreakersEntry ::=
+ SEQUENCE {
+ dm3StatusBreakersIndex INTEGER,
+ dm3StatusBreakersName DisplayString,
+ dm3StatusBreakersStatus INTEGER
+ }
+
+dm3StatusBreakersIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the DC powerplant circuit breaker."
+ ::= { dm3StatusBreakersEntry 1 }
+
+dm3StatusBreakersName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the circuit breaker. The maximum size is
+ 16 characters. The name is set by using the
+ dm3ConfigBreakersName OID.
+ This OID is provided for informational purposes only."
+ ::= { dm3StatusBreakersEntry 2 }
+
+dm3StatusBreakersStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ statusClosed (1),
+ statusOpen (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return statusClosed (1) if the circuit breaker is closed.
+ statusOpen (2) will be returned if the circuit breaker is open."
+ ::= { dm3StatusBreakersEntry 3 }
+
+-- the dm3StatusFuses group
+
+dm3StatusFusesTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of DC powerplant fuses controllable
+ by this IP address."
+ ::= { dm3StatusFuses 1 }
+
+dm3StatusFusesTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF StatusFusesEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for viewing status of the fuses. The number of
+ entries is contained in the dm3StatusFusesTableSize OID."
+ ::= { dm3StatusFuses 2 }
+
+dm3StatusFusesEntry OBJECT-TYPE
+ SYNTAX StatusFusesEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The fuse to gather status from."
+ INDEX { dm3StatusFusesIndex }
+ ::= { dm3StatusFusesTable 1 }
+
+StatusFusesEntry ::=
+ SEQUENCE {
+ dm3StatusFusesIndex INTEGER,
+ dm3StatusFusesName DisplayString,
+ dm3StatusFusesStatus INTEGER
+ }
+
+dm3StatusFusesIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the DC powerplant fuse."
+ ::= { dm3StatusFusesEntry 1 }
+
+dm3StatusFusesName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the fuse. The maximum size is
+ 16 characters. The name is set by using the
+ dm3ConfigFuseName OID.
+ This OID is provided for informational purposes only."
+ ::= { dm3StatusFusesEntry 2 }
+
+dm3StatusFusesStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ statusClosed (1),
+ statusOpen (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return statusClosed (1) if the fuse is closed.
+ statusOpen (2) will be returned if the fuse is open."
+ ::= { dm3StatusFusesEntry 3 }
+
+-- the atsIdent group
+
+atsIdentHardwareRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The hardware version of the Automatic Transfer Switch.
+ This value is set at the factory."
+ ::= { atsIdent 1 }
+
+atsIdentFirmwareRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A string identifying the Automatic Transfer Switch
+ firmware version."
+ ::= { atsIdent 2 }
+
+atsIdentFirmwareDate OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The date of release for this Automatic Transfer Switch
+ firmware version. "
+ ::= { atsIdent 3 }
+
+atsIdentDateOfManufacture OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The date when the Automatic Transfer Switch was manufactured in mm/dd/yyyy format.
+ This value is set at the factory. "
+ ::= { atsIdent 4 }
+
+atsIdentModelNumber OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A string identifying the model number of the Automatic Transfer Switch.
+ This value is set at the factory."
+ ::= { atsIdent 5 }
+
+atsIdentSerialNumber OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A string identifying the serial number of
+ the Automatic Transfer Switch. This value is set at the factory."
+ ::= { atsIdent 6 }
+
+atsIdentNominalLineVoltage OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "RMS Utility Voltage measured in V."
+ ::= { atsIdent 7 }
+
+atsIdentNominalLineFrequency OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Utility Power Frequency measured in Hz."
+ ::= { atsIdent 8 }
+
+-- the atsCalibration group
+
+-- Input Voltage Calibration Factor table
+
+ atsCalibrationNumInputs OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of inputs to this device."
+ ::= { atsCalibrationInput 1 }
+
+ atsCalibrationNumInputPhases OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of phases per input for this device."
+ ::= { atsCalibrationInput 2 }
+
+ atsCalibrationInputTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ATSCalibrationInputPhaseEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The number of phases per input line to this device."
+ ::= { atsCalibrationInput 3 }
+
+ atsCalibrationInputPhaseEntry OBJECT-TYPE
+ SYNTAX ATSCalibrationInputPhaseEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An entry containing calibration information applicable to a
+ particular input phase."
+ INDEX { atsCalibrationInputTableIndex, atsCalibrationInputPhaseTableIndex }
+ ::= { atsCalibrationInputTable 1 }
+
+ ATSCalibrationInputPhaseEntry ::= SEQUENCE {
+ atsCalibrationInputTableIndex INTEGER,
+ atsCalibrationInputPhaseTableIndex INTEGER,
+ atsLineVoltageCalibrationFactor INTEGER
+ }
+
+ atsCalibrationInputTableIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The input identifier."
+ ::= { atsCalibrationInputPhaseEntry 1 }
+
+ atsCalibrationInputPhaseTableIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The input phase identifier."
+ ::= { atsCalibrationInputPhaseEntry 2 }
+
+ atsLineVoltageCalibrationFactor OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The Line Voltage Calibration factor.
+ This value is set at the factory."
+ ::= { atsCalibrationInputPhaseEntry 3 }
+
+-- Power Supply Voltage Calibration table
+
+ atsCalibrationPowerSupplyVoltages OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of power supply voltages supported by this device.
+ This variable indicates the number of rows in the
+ atsCalibrationPowerSupplyTable. There is one entry per
+ supported voltage: 24V, 12V and 5V"
+ ::= { atsCalibrationPowerSupply 1 }
+
+ atsCalibrationPowerSupplyVoltageTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ATSCalibrationPowerSupplyVoltageEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of Power Supply table entries."
+ ::= { atsCalibrationPowerSupply 2 }
+
+ atsCalibrationPowerSupplyVoltageEntry OBJECT-TYPE
+ SYNTAX ATSCalibrationPowerSupplyVoltageEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An entry containing information applicable to a
+ particular Power Supply Voltage."
+ INDEX { atsCalibrationPowerSupplyVoltageTableIndex }
+ ::= { atsCalibrationPowerSupplyVoltageTable 1 }
+
+ ATSCalibrationPowerSupplyVoltageEntry ::= SEQUENCE {
+ atsCalibrationPowerSupplyVoltageTableIndex INTEGER,
+ atsCalibrationPowerSupplyVoltage INTEGER,
+ atsPowerSupplyVoltageCalibrationFactor INTEGER
+ }
+
+ atsCalibrationPowerSupplyVoltageTableIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The power supply voltage identifier.
+ Three power supply voltages are supported by the ATS:
+ 24V , 12V and 5V .
+ The value of this index indicates the power supply voltage:
+ 1 = 24V
+ 2 = 12V
+ 3 = 5V"
+ ::= { atsCalibrationPowerSupplyVoltageEntry 1 }
+
+ atsCalibrationPowerSupplyVoltage OBJECT-TYPE
+ SYNTAX INTEGER {
+ powerSupply24V(1),
+ powerSupply12V(2),
+ powerSupply(3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This value describes the power supply voltage."
+ ::= { atsCalibrationPowerSupplyVoltageEntry 2 }
+
+ atsPowerSupplyVoltageCalibrationFactor OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The Line Voltage Calibration factor.
+ This value is set at the factory."
+ ::= { atsCalibrationPowerSupplyVoltageEntry 3 }
+
+-- Output Current Calibration table
+
+ atsCalibrationNumOutputs OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of output lines from this device.
+ This variable indicates the number of rows in the
+ atsCalibrationOutputTable."
+ ::= { atsCalibrationOutput 1 }
+
+ atsCalibrationNumOutputPhases OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of output phases utilized in this
+ device."
+ ::= { atsCalibrationOutput 2 }
+
+ atsCalibrationOutputTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ATSCalibrationOutputEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of output table entries."
+ ::= { atsCalibrationOutput 3 }
+
+ atsCalibrationOutputEntry OBJECT-TYPE
+ SYNTAX ATSCalibrationOutputEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An entry containing information applicable to a
+ particular output."
+ INDEX { atsCalibrationOutputTableIndex, atsCalibrationOutputPhasesTableIndex }
+ ::= { atsCalibrationOutputTable 1 }
+
+ ATSCalibrationOutputEntry ::= SEQUENCE {
+ atsCalibrationOutputTableIndex INTEGER,
+ atsCalibrationOutputPhasesTableIndex INTEGER,
+ atsOutputCurrentCalibrationFactor INTEGER
+ }
+
+ atsCalibrationOutputTableIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The output identifier."
+ ::= { atsCalibrationOutputEntry 1 }
+
+ atsCalibrationOutputPhasesTableIndex OBJECT-TYPE
+ SYNTAX INTEGER{
+ phase1(1),
+ phase2(2),
+ phase3(3),
+ neutral(4)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Description of each calibration factor for each
+ output phase utilized in this device and one for neutral. "
+ ::= { atsCalibrationOutputEntry 2 }
+
+ atsOutputCurrentCalibrationFactor OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The output current calibration factor measured in Amps."
+ ::= { atsCalibrationOutputEntry 3 }
+
+
+-- the atsControl group
+
+atsControlResetATS OBJECT-TYPE
+ SYNTAX INTEGER {
+ none(1),
+ reset(2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this variable will cause the Automatic Transfer Switch to
+ perform a power-on reset."
+ ::= { atsControl 1 }
+
+atsControlClearAllAlarms OBJECT-TYPE
+ SYNTAX INTEGER {
+ none(1),
+ clear(2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this variable will clear all alarms in the Automatic Transfer Switch."
+ ::= { atsControl 2 }
+
+-- the atsConfig group
+
+atsConfigProductName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "A configurable character string."
+ ::= { atsConfig 1 }
+
+atsConfigPreferredSource OBJECT-TYPE
+ SYNTAX INTEGER {
+ sourceA(1),
+ sourceB(2),
+ none(3)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "This variable returns the preferred source of power when both sources are OK."
+ ::= { atsConfig 2 }
+
+atsConfigFrontPanelLockout OBJECT-TYPE
+ SYNTAX INTEGER {
+ disableFrontPanel(1),
+ enableFrontPanel(2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Setting this variable to disableFrontPanel(1) will disallow source
+ preference configuration of the Automatic Transfer Switch via the
+ Front Panel. Once this value is set, it can only be re-enabled through
+ the serial interface of the ATS.
+ When this variable is set to enableFrontPanel(2), source preference
+ configuration of the Automatic Transfer Switch via the Front Panel
+ is allowed."
+ ::= { atsConfig 3 }
+
+atsConfigVoltageSensitivity OBJECT-TYPE
+ SYNTAX INTEGER {
+ high(1),
+ low(2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "This variable defines the sensitivity to changes in voltage:
+ high(1) for best protection, low(2) for frequent small line
+ voltage changes."
+ ::= { atsConfig 4 }
+
+atsConfigTransferVoltageRange OBJECT-TYPE
+ SYNTAX INTEGER {
+ wide(1),
+ medium(2),
+ narrow(3)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "This variable defines the range of acceptable voltage from a power source.
+ If the voltage measured from the selected input source is not within this
+ range, the Automatic Transfer Switch will switch over (transfer) to the
+ alternate power source."
+
+ ::= { atsConfig 5 }
+
+atsConfigCurrentLimit OBJECT-TYPE
+ SYNTAX INTEGER (0..20)
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The threshold (in Amps) at which an Over Current Alarm will be generated."
+
+ ::= { atsConfig 6 }
+
+
+atsConfigResetValues OBJECT-TYPE
+ SYNTAX INTEGER {
+ none(1),
+ reset(2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Resets the ATS configuration to its default values."
+
+ ::= { atsConfig 7 }
+
+-- the atsStatus group
+
+ atsStatusCommStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ atsNeverDiscovered(1),
+ atsCommEstablished(2),
+ atsCommLost(3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This variable returns the current communication status
+ of the Automatic Transfer Switch. "
+ ::= { atsStatusDeviceStatus 1 }
+
+ atsStatusSelectedSource OBJECT-TYPE
+ SYNTAX INTEGER {
+ sourceA(1),
+ sourceB(2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This variable returns the current source of power. "
+ ::= { atsStatusDeviceStatus 2 }
+
+ atsStatusRedundancyState OBJECT-TYPE
+ SYNTAX INTEGER {
+ atsRedundancyLost(1),
+ atsFullyRedundant(2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This variable returns the current redundancy state of the ATS.
+ atsRedundancyLost(1) indicates that the ATS is unable to
+ switch over to the alternate power source if the current source fails.
+ atsFullyRedundant(2) indicates that the ATS will switch over to
+ the alternate power source if the current source fails."
+ ::= { atsStatusDeviceStatus 3 }
+
+ atsStatusOverCurrentState OBJECT-TYPE
+ SYNTAX INTEGER {
+ atsOverCurrent(1),
+ atsCurrentOK(2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This variable returns the output current state of the ATS.
+ atsOverCurrent(1) indicates that the ATS has exceeded the output
+ current threshold and will not allow a switch over to the alternate power
+ source if the current source fails.
+ atsCurrentOK(2) indicates that the output current is below the
+ output current threshold."
+ ::= { atsStatusDeviceStatus 4 }
+
+ atsStatus5VPowerSupply OBJECT-TYPE
+ SYNTAX INTEGER {
+ atsPowerSupplyFailure(1),
+ atsPowerSupplyOK(2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This variable returns the current state of the ATS 5-volt power supply.
+ atsPowerSupplyFailure(1) indicates the 5-volt power supply has failed
+ and that the ATS serial port Configuration Menu is not accessible .
+ atsPowerSupplyOK(2) indicates that the ATS 5-volt power supply
+ is operating within tolerance."
+ ::= { atsStatusDeviceStatus 5 }
+
+ atsStatus24VPowerSupply OBJECT-TYPE
+ SYNTAX INTEGER {
+ atsPowerSupplyFailure(1),
+ atsPowerSupplyOK(2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This variable returns the current state of the ATS 24-volt power supply.
+ atsPowerSupplyFailure(1) indicates the 24-volt power supply has failed
+ and the ATS is unable to switch over to the alternate power source if
+ the current source fails.
+ atsPowerSupplyOK(2) indicates that the ATS 24-volt power supply
+ is operating within tolerance."
+ ::= { atsStatusDeviceStatus 6 }
+
+ atsStatusResetMaxMinValues OBJECT-TYPE
+ SYNTAX INTEGER {
+ none(1),
+ reset(2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Resets the maximum and minimum ATS values:
+ atsInputMaxVoltage, atsInputMinVoltage,
+ atsInputMaxCurrent, atsInputMinCurrent,
+ atsInputMaxPower, atsInputMinPower,
+ atsOutputMaxCurrent, atsOutputMinCurrent,
+ atsOutputMaxLoad, atsOutputMinLoad,
+ atsOutputMaxPercentLoad, atsOutputMinPercentLoad,
+ atsOutputMaxPower, atsOutputMinPower,
+ atsOutputMaxPercentPower, atsOutputMinPercentPower.
+ These variables represent the maximum and minimum ATS values
+ since the last time they were read or reset by this OID.
+ Values unsupported by this ATS will return (-1)."
+ ::= { atsStatusResetValues 1 }
+
+--
+-- Input Group
+--
+
+-- Number of Inputs
+
+ atsNumInputs OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of input feeds to this device.
+ This variable indicates the number of rows in the
+ input table."
+ ::= { atsStatusInput 1 }
+
+-- Input Table
+
+ atsInputTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ATSPhaseInputEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of input table entries. The number of entries
+ is given by the value of atsNumInputs."
+ ::= { atsStatusInput 2 }
+
+ atsInputEntry OBJECT-TYPE
+ SYNTAX ATSPhaseInputEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An entry containing information applicable to a
+ particular input."
+ INDEX { atsInputTableIndex }
+ ::= { atsInputTable 1 }
+
+ ATSPhaseInputEntry ::= SEQUENCE {
+ atsInputTableIndex INTEGER,
+ atsNumInputPhases INTEGER,
+ atsInputVoltageOrientation INTEGER,
+ atsInputFrequency INTEGER,
+ atsInputType INTEGER,
+ atsInputName DisplayString
+ }
+
+ atsInputTableIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The input identifier."
+ ::= { atsInputEntry 1 }
+
+ atsNumInputPhases OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of input phases utilized in this
+ device. The sum of all the atsNumInputPhases
+ variable indicates the number of rows in the
+ input phase table."
+ ::= { atsInputEntry 2 }
+
+ atsInputVoltageOrientation OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown(1),
+ singlePhase(2),
+ splitPhase(3),
+ threePhasePhaseToNeutral(4),
+ threePhasePhaseToPhase(5)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The input voltage orientation:
+ 1: unknown for this Source
+ 2: singlePhase - phase 1 voltage is between Phase 1
+ and Neutral.
+ 3: splitPhase - phase 1 voltage is between Phase 1 and
+ Neutral; phase 2 voltage is between Phase 2 and Neutral;
+ phase 3 voltage is between Phase 1 and Phase2.
+ 4: threePhasePhaseToNeutral - phase 1 voltage is between
+ Phase 1 and Neutral; phase 2 voltage is between Phase 2
+ and Neutral; phase 3 voltage is between Phase3 and
+ Neutral.
+ 5: threePhasePhaseToPhase - phase 1 voltage is between
+ Phase 1 and Phase 2; phase 2 voltage is between Phase 2
+ and Phase 3; phase 3 voltage is between Phase 3 and
+ Phase 1."
+ ::= { atsInputEntry 3 }
+
+ atsInputFrequency OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The input frequency in Hertz, or -1 if it's unsupported
+ by this Source."
+ ::= { atsInputEntry 4 }
+
+ atsInputType OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown(1),
+ main(2),
+ bypass(3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The input type."
+ ::= { atsInputEntry 5 }
+
+ atsInputName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "A name given to a particular input."
+ ::= { atsInputEntry 6 }
+
+-- Input Phase Table
+
+ atsInputPhaseTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ATSPhaseInputPhaseEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of input table entries. The number of entries
+ is given by the sum of the atsNumInputPhases."
+ ::= { atsStatusInput 3 }
+
+ atsInputPhaseEntry OBJECT-TYPE
+ SYNTAX ATSPhaseInputPhaseEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An entry containing information applicable to a
+ particular input phase."
+ INDEX { atsInputPhaseTableIndex, atsInputPhaseIndex }
+ ::= { atsInputPhaseTable 1 }
+
+ ATSPhaseInputPhaseEntry ::= SEQUENCE {
+ atsInputPhaseTableIndex INTEGER,
+ atsInputPhaseIndex INTEGER,
+ atsInputVoltage INTEGER,
+ atsInputMaxVoltage INTEGER,
+ atsInputMinVoltage INTEGER,
+ atsInputCurrent INTEGER,
+ atsInputMaxCurrent INTEGER,
+ atsInputMinCurrent INTEGER,
+ atsInputPower INTEGER,
+ atsInputMaxPower INTEGER,
+ atsInputMinPower INTEGER
+ }
+
+ atsInputPhaseTableIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The input identifier."
+ ::= { atsInputPhaseEntry 1 }
+
+ atsInputPhaseIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The input phase identifier."
+ ::= { atsInputPhaseEntry 2 }
+
+ atsInputVoltage OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The input voltage in VAC, or -1 if it's unsupported
+ by this Source."
+ ::= { atsInputPhaseEntry 3 }
+
+ atsInputMaxVoltage OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum input voltage in VAC measured
+ since the last time this variable was read
+ or reset (atsStatusResetMaxMinValues).
+ Returns (-1) if unsupported."
+ ::= { atsInputPhaseEntry 4 }
+
+ atsInputMinVoltage OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The minimum input voltage in VAC measured
+ since the last time this variable was read
+ or reset (atsStatusResetMaxMinValues).
+ Returns (-1) if unsupported."
+ ::= { atsInputPhaseEntry 5 }
+
+ atsInputCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The input current in amperes, or -1 if it's
+ unsupported by this Source."
+ ::= { atsInputPhaseEntry 6 }
+
+ atsInputMaxCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum input current in amperes measured
+ since the last time this variable was read
+ or reset (atsStatusResetMaxMinValues).
+ Returns (-1) if unsupported."
+ ::= { atsInputPhaseEntry 7 }
+
+ atsInputMinCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The minimum input current in amperes measured
+ since the last time this variable was read
+ or reset (atsStatusResetMaxMinValues).
+ Returns (-1) if unsupported."
+ ::= { atsInputPhaseEntry 8 }
+
+ atsInputPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The input power in Watts, or -1 if it's unsupported
+ by this Source."
+ ::= { atsInputPhaseEntry 9 }
+
+ atsInputMaxPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum input power in Watts measured
+ since the last time this variable was read
+ or reset (atsStatusResetMaxMinValues).
+ Returns (-1) if unsupported."
+ ::= { atsInputPhaseEntry 10 }
+
+ atsInputMinPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The minimum input power in Watts measured
+ since the last time this variable was read
+ or reset (atsStatusResetMaxMinValues).
+ Returns (-1) if unsupported."
+ ::= { atsInputPhaseEntry 11 }
+
+ --
+ -- The Output group.
+ --
+
+ -- Number of Outputs
+
+ atsNumOutputs OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of output feeds to this device.
+ This variable indicates the number of rows in the
+ output table."
+ ::= { atsStatusOutput 1 }
+
+ -- Output Table
+
+ atsOutputTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ATSPhaseOutputEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of output table entries. The number of entries
+ is given by the value of atsOutputNumPhases."
+ ::= { atsStatusOutput 2 }
+
+ atsOutputEntry OBJECT-TYPE
+ SYNTAX ATSPhaseOutputEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An entry containing information applicable to a
+ particular output."
+ INDEX { atsOutputTableIndex }
+ ::= { atsOutputTable 1 }
+
+ ATSPhaseOutputEntry ::= SEQUENCE {
+ atsOutputTableIndex INTEGER,
+ atsNumOutputPhases INTEGER,
+ atsOutputVoltageOrientation INTEGER,
+ atsOutputFrequency INTEGER
+ }
+
+ atsOutputTableIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The output identifier."
+ ::= { atsOutputEntry 1 }
+
+ atsNumOutputPhases OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of output phases utilized in this
+ device. The sum of all the atsNumOutputPhases
+ variable indicates the number of rows in the
+ output phase table."
+ ::= { atsOutputEntry 2 }
+
+ atsOutputVoltageOrientation OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown(1),
+ singlePhase(2),
+ splitPhase(3),
+ threePhasePhaseToNeutral(4),
+ threePhasePhaseToPhase(5)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The output voltage orientation:
+ 1: unknown for this ATS
+ 2: singlePhase - phase 1 voltage is between Phase 1
+ and Neutral.
+ 3: splitPhase - phase 1 voltage is between Phase 1 and
+ Neutral; phase 2 voltage is between Phase 2 and Neutral;
+ phase 3 voltage is between Phase 1 and Phase2.
+ 4: threePhasePhaseToNeutral - phase 1 voltage is between
+ Phase 1 and Neutral; phase 2 voltage is between Phase 2
+ and Neutral; phase 3 voltage is between Phase3 and
+ Neutral.
+ 5: threePhasePhaseToPhase - phase 1 voltage is between
+ Phase 1 and Phase 2; phase 2 voltage is between Phase 2
+ and Phase 3; phase 3 voltage is between Phase 3 and
+ Phase 1."
+ ::= { atsOutputEntry 3 }
+
+ atsOutputFrequency OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The output frequency in Hertz, or -1 if it's
+ unsupported by this ATS."
+ ::= { atsOutputEntry 4 }
+
+ -- Output Phase Table
+
+ atsOutputPhaseTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ATSPhaseOutputPhaseEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of output table entries. The number of
+ entries is given by the sum of the atsNumOutputPhases."
+ ::= { atsStatusOutput 3 }
+
+ atsOutputPhaseEntry OBJECT-TYPE
+ SYNTAX ATSPhaseOutputPhaseEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "An entry containing information applicable to a
+ particular output phase."
+ INDEX { atsOutputPhaseTableIndex, atsOutputPhaseIndex }
+ ::= { atsOutputPhaseTable 1 }
+
+ ATSPhaseOutputPhaseEntry ::= SEQUENCE {
+ atsOutputPhaseTableIndex INTEGER,
+ atsOutputPhaseIndex INTEGER,
+ atsOutputVoltage INTEGER,
+ atsOutputCurrent INTEGER,
+ atsOutputMaxCurrent INTEGER,
+ atsOutputMinCurrent INTEGER,
+ atsOutputLoad INTEGER,
+ atsOutputMaxLoad INTEGER,
+ atsOutputMinLoad INTEGER,
+ atsOutputPercentLoad INTEGER,
+ atsOutputMaxPercentLoad INTEGER,
+ atsOutputMinPercentLoad INTEGER,
+ atsOutputPower INTEGER,
+ atsOutputMaxPower INTEGER,
+ atsOutputMinPower INTEGER,
+ atsOutputPercentPower INTEGER,
+ atsOutputMaxPercentPower INTEGER,
+ atsOutputMinPercentPower INTEGER
+ }
+
+ atsOutputPhaseTableIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The output identifier."
+ ::= { atsOutputPhaseEntry 1 }
+
+ atsOutputPhaseIndex OBJECT-TYPE
+ SYNTAX INTEGER{
+ phase1(1),
+ phase2(2),
+ phase3(3),
+ neutral(4)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Description of each output phase utilized in
+ this device and one for neutral. "
+ ::= { atsOutputPhaseEntry 2 }
+
+ atsOutputVoltage OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The output voltage in VAC, or -1 if it's unsupported
+ by this ATS."
+ ::= { atsOutputPhaseEntry 3 }
+
+ atsOutputCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The output current in 0.1 amperes drawn
+ by the load on the ATS, or -1 if it's unsupported
+ by this ATS."
+ ::= { atsOutputPhaseEntry 4 }
+
+ atsOutputMaxCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum output current in 0.1 amperes measured
+ since the last time this variable was read
+ or reset (atsStatusResetMaxMinValues).
+ Returns (-1) if unsupported."
+ ::= { atsOutputPhaseEntry 5 }
+
+ atsOutputMinCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The minimum output current in 0.1 amperes measured
+ since the last time this variable was read
+ or reset (atsStatusResetMaxMinValues).
+ Returns (-1) if unsupported."
+ ::= { atsOutputPhaseEntry 6 }
+
+ atsOutputLoad OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The output load in VA, or -1 if it's unsupported
+ by this ATS."
+ ::= { atsOutputPhaseEntry 7 }
+
+ atsOutputMaxLoad OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum output load in VA measured
+ since the last time this variable was read
+ or reset (atsStatusResetMaxMinValues).
+ Returns (-1) if unsupported."
+ ::= { atsOutputPhaseEntry 8 }
+
+ atsOutputMinLoad OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The minimum output load in VA measured
+ since the last time this variable was read
+ or reset (atsStatusResetMaxMinValues).
+ Returns (-1) if unsupported."
+ ::= { atsOutputPhaseEntry 9 }
+
+ atsOutputPercentLoad OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The percentage of the ATS load capacity in VA at
+ redundancy @ (n + x) presently being used on this
+ output phase, or -1 if it's unsupported by this ATS."
+ ::= { atsOutputPhaseEntry 10 }
+
+ atsOutputMaxPercentLoad OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum percentage of the ATS load capacity in
+ VA measured at redundancy @ (n + x) presently
+ being used on this output phase since the last time
+ this variable was read or reset (atsStatusResetMaxMinValues).
+ Returns (-1) if unsupported."
+ ::= { atsOutputPhaseEntry 11 }
+
+ atsOutputMinPercentLoad OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The minimum percentage of the ATS load capacity in
+ VA measured at redundancy @ (n + x) presently
+ being used on this output phase since the last time
+ this variable was read or reset (atsStatusResetMaxMinValues).
+ Returns (-1) if unsupported."
+ ::= { atsOutputPhaseEntry 12 }
+
+ atsOutputPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The output power in Watts, or -1 if it's
+ unsupported by this ATS."
+ ::= { atsOutputPhaseEntry 13 }
+
+ atsOutputMaxPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum output power in Watts measured
+ since the last time this variable was read
+ or reset (atsStatusResetMaxMinValues).
+ Returns (-1) if unsupported."
+ ::= { atsOutputPhaseEntry 14 }
+
+ atsOutputMinPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The minimum output power in Watts measured
+ since the last time this variable was read
+ or reset (atsStatusResetMaxMinValues).
+ Returns (-1) if unsupported."
+ ::= { atsOutputPhaseEntry 15 }
+
+ atsOutputPercentPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The percentage of the ATSpower capacity in Watts at
+ redundancy @ (n + x) presently being used on this
+ output phase, or -1 if it's unsupported by this ATS."
+ ::= { atsOutputPhaseEntry 16 }
+
+ atsOutputMaxPercentPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The maximum percentage of the ATSpower capacity
+ in Watts measured at redundancy @ (n + x) presently
+ being used on this output phase since the last time
+ this variable was read or reset (atsStatusResetMaxMinValues).
+ Returns (-1) if unsupported."
+ ::= { atsOutputPhaseEntry 17 }
+
+ atsOutputMinPercentPower OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The minimum percentage of the ATSpower capacity
+ in Watts measured at redundancy @ (n + x) presently
+ being used on this output phase since the last time
+ this variable was read or reset (atsStatusResetMaxMinValues).
+ Returns (-1) if unsupported."
+ ::= { atsOutputPhaseEntry 18 }
+
+-- the dcmim2IdentSystem group
+
+dcmim2IdentSysFWVersion OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Integer representation of the power plant Master Controller firmware revision."
+ ::= { dcmim2IdentSystem 1 }
+
+
+-- the dcmim2ControlSystem group
+
+dcmim2ControlRunFunctBatteryTest OBJECT-TYPE
+ SYNTAX INTEGER {
+ battTestOff (1),
+ battTestOn (2)
+}
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return the battery functional test state. If
+ the test is off, the battTestOff (1) value will be returned.
+ If the test is on, the battTestOn (2) value will be
+ returned.
+
+ Setting this OID to battTestOff (1) will turn the battery functional test off.
+ Setting this OID to battTestOn (2) will turn the battery functional test on."
+
+ ::= { dcmim2ControlSystem 1 }
+
+dcmim2ControlRunCapacityBatteryTest OBJECT-TYPE
+ SYNTAX INTEGER {
+ battTestOff (1),
+ battTestOn (2)
+}
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return the battery capacity test state. If
+ the test is off, the battTestOff (1) value will be returned.
+ If the test is on, the battTestOn (2) value will be
+ returned.
+
+ Setting this OID to battTestOff (1) will turn the battery capacity test off.
+ Setting this OID to battTestOn (2) will turn the battery capacity test on."
+
+ ::= { dcmim2ControlSystem 2 }
+
+
+-- the dcmim2ConfigSystem group
+
+dcmim2ConfigSysHighTempTrip OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Trip level (threshold) at which System High Temp alarm condition is created.
+ Range 28 to 100 (degC).
+
+ Values are represented in thousandths of a degree.
+ Units are displayed in the scale shown in
+ the 'dcmim2StatusSysTempUnits' OID (Celsius or Fahrenheit)."
+
+
+ ::= { dcmim2ConfigSystem 1 }
+
+dcmim2ConfigSysHighTempReset OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Level at which System High Temp alarm condition is reset (cleared).
+ Range 25 to (upper temp - 3) (degC).
+
+ Values are represented in thousandths of a degree.
+ Units are displayed in the scale shown in
+ the 'dcmim2StatusSysTempUnits' OID (Celsius or Fahrenheit)."
+
+ ::= { dcmim2ConfigSystem 2 }
+
+dcmim2ConfigSysLowTempTrip OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Trip level (threshold) at which System Low Temp alarm condition is created.
+ Range -100 to 10 (degC).
+ Values are represented in thousandths of a degree.
+ Units are displayed in the scale shown in
+ the 'dcmim2StatusSysTempUnits' OID (Celsius or Fahrenheit)."
+
+ ::= { dcmim2ConfigSystem 3 }
+
+dcmim2ConfigSysLowTempReset OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Level at which System Low Temp alarm condition is reset (cleared).
+ Range (lower temp + 3) to 13 (degC).
+ Values are represented in thousandths of a degree.
+ Units are displayed in the scale shown in
+ the 'dcmim2StatusSysTempUnits' OID (Celsius or Fahrenheit)."
+
+ ::= { dcmim2ConfigSystem 4 }
+
+-- the dcmim2ConfigBattery group
+
+dcmim2ConfigBattFloatVolt OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Battery Float Voltage defined at 25 degrees Celsius.
+
+ Values are represented in thousandths of Volts (mV)."
+
+ ::= { dcmim2ConfigBattery 1 }
+
+dcmim2ConfigBattMaxRecharge OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Battery Maximum Recharge Rate. This is the maximum current used
+ during battery charging.
+
+ Values are represented in thousandths of Amps (mA)."
+
+ ::= { dcmim2ConfigBattery 2 }
+
+dcmim2ConfigBattMfgCapacity OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Battery capacity (Amp-Hour Size) as specified by the battery manufacturer.
+
+ Values are represented in thousandths of Amp hours (mAHr)."
+
+ ::= { dcmim2ConfigBattery 3 }
+
+dcmim2ConfigBattType OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Type of battery in the powerplant
+
+ Valid values range from 0 to 254."
+
+ ::= { dcmim2ConfigBattery 4 }
+
+dcmim2ConfigBattFunctTestDuration OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Duration of the battery functional test.
+
+ Values are represented in thousandths of seconds (mSecs)."
+
+ ::= { dcmim2ConfigBattery 5 }
+
+dcmim2ConfigBattFunctTestThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Threshold the battery voltage of the system must remain above
+ in order to pass the battery functional test.
+
+ Values are represented in thousandths of Volts (mV)."
+
+ ::= { dcmim2ConfigBattery 6 }
+
+dcmim2ConfigBattCapacityTestPercent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Threshold for good battery capacity test results.
+
+ Values range from 0 to 100 percent."
+
+ ::= { dcmim2ConfigBattery 7 }
+
+dcmim2ConfigBattCapacityTestEndThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Safeguard voltage at which battery capacity test will end
+ if there is a battery problem.
+
+ Values are represented in thousandths of Volts (mV)."
+
+ ::= { dcmim2ConfigBattery 8 }
+
+dcmim2ConfigBattCapacityTestCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Constant current value used during battery capacity testing.
+
+ Values are represented in thousandths of Amps (mA)."
+
+ ::= { dcmim2ConfigBattery 9 }
+
+
+-- the dcmim2ConfigLVD group
+
+dcmim2ConfigLVDTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of DC powerplant LVDs controllable
+ by this IP address."
+ ::= { dcmim2ConfigLVD 1 }
+
+dcmim2ConfigLVDTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF DC2ConfigLVDEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for accessing settings of the LVDs. The number of
+ entries is contained in the dcmim2ConfigLVDTableSize OID."
+ ::= { dcmim2ConfigLVD 2 }
+
+dcmim2ConfigLVDEntry OBJECT-TYPE
+ SYNTAX DC2ConfigLVDEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The LVD to configure."
+ INDEX { dcmim2ConfigLVDIndex }
+ ::= { dcmim2ConfigLVDTable 1 }
+
+DC2ConfigLVDEntry ::=
+ SEQUENCE {
+ dcmim2ConfigLVDIndex INTEGER,
+ dcmim2ConfigLVDTrip INTEGER,
+ dcmim2ConfigLVDReset INTEGER,
+ dcmim2ConfigLVDState INTEGER
+ }
+
+dcmim2ConfigLVDIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the DC powerplant LVD."
+ ::= { dcmim2ConfigLVDEntry 1 }
+
+dcmim2ConfigLVDTrip OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "LVD Trip threshold. System bus voltage at which LVD will trip (open)
+ during a battery backup operation.
+
+ Values are represented in thousandths of Volts (mV)."
+ ::= { dcmim2ConfigLVDEntry 2 }
+
+dcmim2ConfigLVDReset OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "LVD Reset threshold. System bus voltage at which LVD will reset (close)
+ after AC power has been restored.
+
+ Values are represented in thousandths of Volts (mV)."
+ ::= { dcmim2ConfigLVDEntry 3 }
+
+dcmim2ConfigLVDState OBJECT-TYPE
+ SYNTAX INTEGER {
+ statusClosed (1),
+ statusOpened (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return statusClosed (1) if the LVD is closed.
+ statusOpened (2) will be returned if the LVD is opened."
+ ::= { dcmim2ConfigLVDEntry 4 }
+
+
+-- the dcmim2StatusSystem group
+
+dcmim2StatusSysRectCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "System (Total Rectifier) current in thousandths of Amps (mA)."
+ ::= { dcmim2StatusSystem 1 }
+
+dcmim2StatusSysLoadCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Load current in thousandths of Amps (mA)."
+ ::= { dcmim2StatusSystem 2 }
+
+dcmim2StatusSysBusVoltage OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "System bus voltage in thousandths of Volts (mV)."
+ ::= { dcmim2StatusSystem 3 }
+
+dcmim2StatusSysAmbientTemp OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "System temperature based on sensor on Master Controller PCB.
+
+ Values are represented in thousandths of a degree.
+ Units are displayed in the scale shown in
+ the 'dcmim2StatusSysTempUnits' OID (Celsius or Fahrenheit)."
+ ::= { dcmim2StatusSystem 4 }
+
+dcmim2StatusSysUpTime OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Length of time since the DC Powerplant controller has been powered up."
+ ::= { dcmim2StatusSystem 5 }
+
+dcmim2StatusSysTempUnits OBJECT-TYPE
+ SYNTAX INTEGER {
+ celsius(1),
+ fahrenheit(2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The temperature scale used to display the temperature
+ in the DC system, Celsius(1) or Fahrenheit(2).
+ This setting is based on the system preferences
+ configuration in the agent."
+ ::= { dcmim2StatusSystem 6 }
+
+
+-- the dcmim2StatusRectifier group
+
+dcmim2StatusRectTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of DC powerplant rectifiers viewable
+ by this IP address."
+ ::= { dcmim2StatusRectifier 1 }
+
+dcmim2StatusRectTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF DC2StatusRectEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for accessing settings of the rectifiers. The number of
+ entries is contained in the dcmim2StatusRectTableSize OID."
+ ::= { dcmim2StatusRectifier 2 }
+
+dcmim2StatusRectEntry OBJECT-TYPE
+ SYNTAX DC2StatusRectEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The rectifier to gather status from."
+ INDEX { dcmim2StatusRectIndex }
+ ::= { dcmim2StatusRectTable 1 }
+
+DC2StatusRectEntry ::=
+ SEQUENCE {
+ dcmim2StatusRectIndex INTEGER,
+ dcmim2StatusRectDevType INTEGER,
+ dcmim2StatusRectID INTEGER,
+ dcmim2StatusRectPhyAddr INTEGER,
+ dcmim2StatusRectFail INTEGER,
+ dcmim2StatusRectCurrent INTEGER
+ }
+
+dcmim2StatusRectIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the DC powerplant rectifier."
+ ::= { dcmim2StatusRectEntry 1 }
+
+dcmim2StatusRectDevType OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the rectifier device type."
+ ::= { dcmim2StatusRectEntry 2 }
+
+dcmim2StatusRectID OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the rectifier ID. This enumerates the number of the rectifier within
+ a group of rectifiers."
+ ::= { dcmim2StatusRectEntry 3 }
+
+dcmim2StatusRectPhyAddr OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the rectifier physical address (the address on the bus)."
+ ::= { dcmim2StatusRectEntry 4 }
+
+dcmim2StatusRectFail OBJECT-TYPE
+ SYNTAX INTEGER {
+ statusTrue (1),
+ statusFalse (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return statusTrue (1) if the rectifier has failed.
+ statusFalse (2) will be returned if the rectifier has not failed."
+ ::= { dcmim2StatusRectEntry 5 }
+
+dcmim2StatusRectCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID shows the individual rectifier current in thousandths of Amps (mA)."
+ ::= { dcmim2StatusRectEntry 6 }
+
+
+-- the dcmim2StatusBattery group
+
+dcmim2StatusBattFloatVolt OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Battery Float Voltage represented in thousandths of Volts (mV)."
+ ::= { dcmim2StatusBattery 1 }
+
+dcmim2StatusBattCurrent OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Battery Current: This OID shows the battery current in thousandths of Amps (mA)."
+ ::= { dcmim2StatusBattery 2 }
+
+dcmim2StatusBattTemp OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Battery Temperature:
+
+ Values are represented in thousandths of a degree.
+ Units are displayed in the scale shown in
+ the 'dcmim2StatusSysTempUnits' OID (Celsius or Fahrenheit)."
+ ::= { dcmim2StatusBattery 3 }
+
+dcmim2StatusBattMfgCapacity OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Battery capacity (Amp-Hour Size) as specified by the battery manufacturer.
+ Values are represented in thousandths of Amp hours (mAHr)."
+ ::= { dcmim2StatusBattery 4 }
+
+dcmim2StatusBattTestCapacity OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Battery capacity (Amp-Hour Size) as determined by the battery capacity test.
+ Values are represented in thousandths of Amp hours (mAHr)."
+ ::= { dcmim2StatusBattery 5 }
+
+dcmim2StatusBattFunctTestResult OBJECT-TYPE
+ SYNTAX INTEGER{
+ functTestNotPerformed (1),
+ functTestInProcess (2),
+ functTestInterrupted (3),
+ functTestPass (4),
+ functTestFail (5)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Results of the last battery functional test that was run."
+ ::= { dcmim2StatusBattery 6 }
+
+dcmim2StatusBattCapacityTestResult OBJECT-TYPE
+ SYNTAX INTEGER{
+ capacityTestNotPerformed (1),
+ capacityTestInProcess (2),
+ capacityTestInterrupted (3),
+ capacityTestPass (4),
+ capacityTestFail (5)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Results of the last battery capacity test that was run."
+ ::= { dcmim2StatusBattery 7 }
+
+
+-- the dcmim2StatusLVD group
+
+dcmim2StatusLVDTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of DC powerplant LVDs accessible
+ by this IP address."
+ ::= { dcmim2StatusLVD 1 }
+
+dcmim2StatusLVDTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF DC2StatusLVDEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for accessing the LVDs. The number of
+ entries is contained in the dcmim2StatusLVDTableSize OID."
+ ::= { dcmim2StatusLVD 2 }
+
+dcmim2StatusLVDEntry OBJECT-TYPE
+ SYNTAX DC2StatusLVDEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The LVD to access."
+ INDEX { dcmim2StatusLVDIndex }
+ ::= { dcmim2StatusLVDTable 1 }
+
+DC2StatusLVDEntry ::=
+ SEQUENCE {
+ dcmim2StatusLVDIndex INTEGER,
+ dcmim2StatusLVDState INTEGER
+ }
+
+dcmim2StatusLVDIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the DC powerplant LVD."
+ ::= { dcmim2StatusLVDEntry 1 }
+
+dcmim2StatusLVDState OBJECT-TYPE
+ SYNTAX INTEGER {
+ statusClosed (1),
+ statusOpened (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this OID will return statusClosed (1) if the LVD is closed.
+ statusOpened (2) will be returned if the LVD is opened."
+ ::= { dcmim2StatusLVDEntry 2 }
+
+
+-- the dcmim2StatusAlarms group
+
+dcmim2StatusAlarmsTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of DC powerplant alarms viewable
+ by this IP address."
+ ::= { dcmim2StatusAlarms 1 }
+
+dcmim2StatusAlarmsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF DC2StatusAlarmsEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for accessing system alarms. The number of
+ entries is contained in the dcmim2StatusAlarmsTableSize OID."
+ ::= { dcmim2StatusAlarms 2 }
+
+dcmim2StatusAlarmsEntry OBJECT-TYPE
+ SYNTAX DC2StatusAlarmsEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The alarm to display."
+ INDEX { dcmim2StatusAlarmsIndex }
+ ::= { dcmim2StatusAlarmsTable 1 }
+
+DC2StatusAlarmsEntry ::=
+ SEQUENCE {
+ dcmim2StatusAlarmsIndex INTEGER,
+ dcmim2StatusAlarmsText DisplayString
+ }
+
+dcmim2StatusAlarmsIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index of the system alarm."
+ ::= { dcmim2StatusAlarmsEntry 1 }
+
+dcmim2StatusAlarmsText OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The 16 character text describing the active alarm condition."
+ ::= { dcmim2StatusAlarmsEntry 2 }
+
+-- External Environmental Monitor
+
+emIdentFirmwareRevision OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The firmware revision of the Environmental Monitor."
+ ::= { emIdent 1 }
+
+emConfigProbesNumProbes OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of temperature and humidity probes available."
+ ::= { emConfig 1 }
+
+emConfigProbesTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF EmConfigProbesEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of probes supported by the Environmental Monitor
+ and their configurations."
+ ::= { emConfig 2 }
+
+emConfigProbesEntry OBJECT-TYPE
+ SYNTAX EmConfigProbesEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The Environmental Monitor probe configurations."
+ INDEX { emConfigProbeNumber }
+ ::= { emConfigProbesTable 1 }
+
+EmConfigProbesEntry ::=
+ SEQUENCE {
+ emConfigProbeNumber
+ INTEGER,
+ emConfigProbeName
+ DisplayString,
+ emConfigProbeHighTempThreshold
+ INTEGER,
+ emConfigProbeLowTempThreshold
+ INTEGER,
+ emConfigProbeTempUnits
+ INTEGER,
+ emConfigProbeHighHumidThreshold
+ INTEGER,
+ emConfigProbeLowHumidThreshold
+ INTEGER,
+ emConfigProbeHighTempEnable
+ INTEGER,
+ emConfigProbeLowTempEnable
+ INTEGER,
+ emConfigProbeHighHumidEnable
+ INTEGER,
+ emConfigProbeLowHumidEnable
+ INTEGER
+ }
+
+emConfigProbeNumber OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index into an Environmental Monitor probe entry."
+ ::= { emConfigProbesEntry 1 }
+
+emConfigProbeName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "A descriptive name of the probe set by the user,
+ possibly denoting its location or purpose."
+ ::= { emConfigProbesEntry 2 }
+
+emConfigProbeHighTempThreshold OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The high temperature alarm threshold for the probe.
+ Units are displayed in the scale selected in
+ the 'emConfigProbeTempUnits' OID (Celsius or Fahrenheit)."
+ ::= { emConfigProbesEntry 3 }
+
+emConfigProbeLowTempThreshold OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The low temperature alarm threshold for the probe.
+ Units are displayed in the scale selected in
+ the 'emConfigProbeTempUnits' OID (Celsius or Fahrenheit)."
+ ::= { emConfigProbesEntry 4 }
+
+emConfigProbeTempUnits OBJECT-TYPE
+ SYNTAX INTEGER {
+ celsius(1),
+ fahrenheit(2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The temperature scale used to display the temperature
+ thresholds of the probe, Celsius(1) or Fahrenheit(2).
+ This setting is based on the system preferences
+ configuration in the agent."
+ ::= { emConfigProbesEntry 5 }
+
+emConfigProbeHighHumidThreshold OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The high humidity alarm threshold for the probe in
+ percent relative humidity."
+ ::= { emConfigProbesEntry 6 }
+
+emConfigProbeLowHumidThreshold OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The low humidity alarm threshold for the probe in
+ percent relative humidity."
+ ::= { emConfigProbesEntry 7 }
+
+emConfigProbeHighTempEnable OBJECT-TYPE
+ SYNTAX INTEGER {
+ disabled(1),
+ enabled(2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The high temperature alarm enable/disable for the
+ probe. No alarm will be generated if this value
+ is set to disabled(1). The alarm will be
+ generated if this value is set to enabled(2) and
+ the threshold has been violated."
+ ::= { emConfigProbesEntry 8 }
+
+emConfigProbeLowTempEnable OBJECT-TYPE
+ SYNTAX INTEGER {
+ disabled(1),
+ enabled(2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The low temperature alarm enable/disable for the
+ probe. No alarm will be generated if this value
+ is set to disabled(1). The alarm will be
+ generated if this value is set to enabled(2) and
+ the threshold has been violated."
+ ::= { emConfigProbesEntry 9 }
+
+emConfigProbeHighHumidEnable OBJECT-TYPE
+ SYNTAX INTEGER {
+ disabled(1),
+ enabled(2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The high humidity alarm enable/disable for the
+ probe. No alarm will be generated if this value
+ is set to disabled(1). The alarm will be
+ generated if this value is set to enabled(2) and
+ the threshold has been violated."
+ ::= { emConfigProbesEntry 10 }
+
+emConfigProbeLowHumidEnable OBJECT-TYPE
+ SYNTAX INTEGER {
+ disabled(1),
+ enabled(2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The low humidity alarm enable/disable for the
+ probe. No alarm will be generated if this value
+ is set to disabled(1). The alarm will be
+ generated if this value is set to enabled(2) and
+ the threshold has been violated."
+ ::= { emConfigProbesEntry 11 }
+
+emConfigContactsNumContacts OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of contacts supported by the Environmental
+ Monitor."
+ ::= { emConfig 3 }
+
+emConfigContactsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF EmConfigContactsEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of contacts supported by the Environmental Monitor
+ and their configurations."
+ ::= { emConfig 4 }
+
+emConfigContactsEntry OBJECT-TYPE
+ SYNTAX EmConfigContactsEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The Environmental Monitor contact configurations."
+ INDEX { emConfigContactNumber }
+ ::= { emConfigContactsTable 1 }
+
+EmConfigContactsEntry ::=
+ SEQUENCE {
+ emConfigContactNumber
+ INTEGER,
+ emConfigContactName
+ DisplayString,
+ emConfigContactEnable
+ INTEGER
+ }
+
+emConfigContactNumber OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index of an Environmental Monitor contact."
+ ::= { emConfigContactsEntry 1 }
+
+emConfigContactName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "A descriptive name for an Environmental Monitor
+ contact set by the user, possibly denoting its
+ location or purpose."
+ ::= { emConfigContactsEntry 2 }
+
+emConfigContactEnable OBJECT-TYPE
+ SYNTAX INTEGER {
+ disabled(1),
+ enabled(2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "An Environmental Monitor contact alarm enable/disable.
+ No alarm will be generated if the contact is disabled(1).
+ An alarm will be generated if the contact is enabled(2)
+ and the contact has been faulted."
+ ::= { emConfigContactsEntry 3 }
+
+emStatusCommStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ noComm(1),
+ comm(2),
+ commLost(3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The communication status between the agent
+ and the Environmental Monitor.
+
+ noComm(1), Communication has never been established.
+ comm(2), Communication has been established.
+ commLost(3), Communication was established, but was lost."
+ ::= { emStatus 1 }
+
+emStatusProbesNumProbes OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of available probes on the Environmental
+ Monitor."
+ ::= { emStatus 2 }
+
+emStatusProbesTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF EmStatusProbesEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of probes supported by the Environmental Monitor
+ and their status."
+ ::= { emStatus 3 }
+
+emStatusProbesEntry OBJECT-TYPE
+ SYNTAX EmStatusProbesEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the probe."
+ INDEX { emStatusProbeNumber }
+ ::= { emStatusProbesTable 1 }
+
+EmStatusProbesEntry ::=
+ SEQUENCE {
+ emStatusProbeNumber
+ INTEGER,
+ emStatusProbeName
+ DisplayString,
+ emStatusProbeStatus
+ INTEGER,
+ emStatusProbeCurrentTemp
+ INTEGER,
+ emStatusProbeTempUnits
+ INTEGER,
+ emStatusProbeCurrentHumid
+ INTEGER,
+ emStatusProbeHighTempViolation
+ INTEGER,
+ emStatusProbeLowTempViolation
+ INTEGER,
+ emStatusProbeHighHumidViolation
+ INTEGER,
+ emStatusProbeLowHumidViolation
+ INTEGER
+ }
+
+emStatusProbeNumber OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index of the probe."
+ ::= { emStatusProbesEntry 1 }
+
+emStatusProbeName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A descriptive name for the probe set by the user,
+ possibly denoting its location or purpose."
+ ::= { emStatusProbesEntry 2 }
+
+emStatusProbeStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ disconnected(1),
+ connected(2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The connected status of the probe, either
+ disconnected(1) or connected(2)."
+ ::= { emStatusProbesEntry 3 }
+
+emStatusProbeCurrentTemp OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The current temperature reading from the probe displayed
+ in the units shown in the 'emStatusProbeTempUnits' OID
+ (Celsius or Fahrenheit)."
+ ::= { emStatusProbesEntry 4 }
+
+emStatusProbeTempUnits OBJECT-TYPE
+ SYNTAX INTEGER {
+ celsius(1),
+ fahrenheit(2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The temperature scale used to display the temperature
+ thresholds of the probe, Celsius(1) or Fahrenheit(2).
+ This setting is based on the system preferences
+ configuration in the agent."
+ ::= { emStatusProbesEntry 5 }
+
+emStatusProbeCurrentHumid OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The current humidity reading from the probe in
+ percent relative humidity."
+ ::= { emStatusProbesEntry 6 }
+
+emStatusProbeHighTempViolation OBJECT-TYPE
+ SYNTAX INTEGER {
+ noViolation(1),
+ highTempViolation(2),
+ disabled(3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The high temperature violation status of the probe
+ temperature reading. This OID will show a highTempViolation(2)
+ if the current temperature reading shown in the
+ 'emStatusProbeCurrentTemp' OID is greater than or equal to
+ the high temperature threshold value, the
+ 'emConfigProbeHighTempThreshold' OID, and the value of the
+ 'emConfigProbeHighTempEnable' OID is enabled. Otherwise it will show
+ noViolation(1). If the 'emConfigProbeHighTempEnable' OID is disabled,
+ this OID will show disabled(3)."
+ ::= { emStatusProbesEntry 7 }
+
+emStatusProbeLowTempViolation OBJECT-TYPE
+ SYNTAX INTEGER {
+ noViolation(1),
+ lowTempViolation(2),
+ disabled(3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The high temperature violation status of the probe
+ temperature reading. This OID will show a lowTempViolation(2)
+ if the current temperature reading shown in the
+ 'emStatusProbeCurrentTemp' OID is less than or equal to
+ the low temperature threshold value, the
+ 'emConfigProbeLowTempThreshold' OID, and the value of the
+ 'emConfigProbeLowTempEnable' OID is enabled. Otherwise it will show
+ noViolation(1). If the 'emConfigProbeLowTempEnable' OID is disabled,
+ this OID will show disabled(3)."
+ ::= { emStatusProbesEntry 8 }
+
+emStatusProbeHighHumidViolation OBJECT-TYPE
+ SYNTAX INTEGER {
+ noViolation(1),
+ highHumidViolation(2),
+ disabled(3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The high humidity violation status of the probe humidity
+ reading. This OID will show a highTempViolation(2)
+ if the current humidity reading shown in the
+ 'emStatusProbeCurrentHumid' OID is greater than or equal to
+ the high humidity threshold value, the
+ 'emConfigProbeHighHumidThreshold' OID, and the value of the
+ 'emConfigProbeHighHumidEnable' OID is enabled. Otherwise it will
+ show noViolation(1). If the 'emConfigProbeHighHumidEnable' OID is
+ disabled, this OID will show disabled(3)"
+ ::= { emStatusProbesEntry 9 }
+
+emStatusProbeLowHumidViolation OBJECT-TYPE
+ SYNTAX INTEGER {
+ noViolation(1),
+ lowHumidViolation(2),
+ disabled(3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The low humidity violation status of the probe humidity
+ reading. This OID will show a lowTempViolation(2)
+ if the current humidity reading shown in the
+ 'emStatusProbeCurrentHumid' OID is less than or equal to
+ the low humidity threshold value, the
+ 'emConfigProbeLowHumidThreshold' OID, and the value of the
+ 'emConfigProbeLowHumidEnable' OID is enabled. Otherwise it will
+ show noViolation(1). If the 'emConfigProbeLowHumidEnable' OID is
+ disabled, this OID will show disabled(3)."
+ ::= { emStatusProbesEntry 10 }
+
+emStatusContactsNumContacts OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of contacts supported by the
+ Environmental Monitor."
+ ::= { emStatus 4 }
+
+emStatusContactsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF EmStatusContactsEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of contacts supported by the Environmental Monitor
+ and their status."
+ ::= { emStatus 5 }
+
+emStatusContactsEntry OBJECT-TYPE
+ SYNTAX EmStatusContactsEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the contact."
+ INDEX { emStatusContactNumber }
+ ::= { emStatusContactsTable 1 }
+
+EmStatusContactsEntry ::=
+ SEQUENCE {
+ emStatusContactNumber
+ INTEGER,
+ emStatusContactName
+ DisplayString,
+ emStatusContactStatus
+ INTEGER
+ }
+
+emStatusContactNumber OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index of the Environmental Monitor contact."
+ ::= { emStatusContactsEntry 1 }
+
+emStatusContactName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A descriptive name for the Environmental Monitor contact
+ set by the user, possibly denoting its location or purpose."
+ ::= { emStatusContactsEntry 2 }
+
+emStatusContactStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ noFault(1),
+ fault(2),
+ disabled(3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the Environmental Monitor contact. The status
+ will show noFault(1) if the contact is in the normal state
+ and the 'emConfigContactEnable' OID is enabled. The status will
+ show a fault(2) if the contact is faulted and the
+ 'emContactEnable' OID is enabled. If the 'emConfigContactEnable'
+ OID is disabled, the status will show disabled(3)."
+ ::= { emStatusContactsEntry 3 }
+
+-- Integrated Environmental Monitor (IEM)
+
+iemIdentHardwareRevision OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The hardware revision of the Integrated Environmental
+ Monitor."
+ ::= { iemIdent 1 }
+
+iemConfigProbesNumProbes OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of temperature and humidity probes available."
+ ::= { iemConfig 1 }
+
+iemConfigProbesTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IemConfigProbesEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of probes supported by the Environmental Monitor
+ and their configurations."
+ ::= { iemConfig 2 }
+
+iemConfigProbesEntry OBJECT-TYPE
+ SYNTAX IemConfigProbesEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The Environmental Monitor probe configurations."
+ INDEX { iemConfigProbeNumber }
+ ::= { iemConfigProbesTable 1 }
+
+IemConfigProbesEntry ::=
+ SEQUENCE {
+ iemConfigProbeNumber
+ INTEGER,
+ iemConfigProbeName
+ DisplayString,
+ iemConfigProbeHighTempThreshold
+ INTEGER,
+ iemConfigProbeLowTempThreshold
+ INTEGER,
+ iemConfigProbeTempUnits
+ INTEGER,
+ iemConfigProbeHighHumidThreshold
+ INTEGER,
+ iemConfigProbeLowHumidThreshold
+ INTEGER,
+ iemConfigProbeHighTempEnable
+ INTEGER,
+ iemConfigProbeLowTempEnable
+ INTEGER,
+ iemConfigProbeHighHumidEnable
+ INTEGER,
+ iemConfigProbeLowHumidEnable
+ INTEGER
+ }
+
+iemConfigProbeNumber OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to a Environmental Monitor probe entry."
+ ::= { iemConfigProbesEntry 1 }
+
+iemConfigProbeName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "A descriptive name for the probe set by the user,
+ possibly denoting its location or purpose."
+ ::= { iemConfigProbesEntry 2 }
+
+iemConfigProbeHighTempThreshold OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The high temperature alarm threshold for the probe.
+ Units are displayed in the scale selected in the
+ 'iemConfigProbeTempUnits' OID (Celsius or Fahrenheit)."
+ ::= { iemConfigProbesEntry 3 }
+
+iemConfigProbeLowTempThreshold OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The low temperature alarm threshold for the probe.
+ Units are displayed in the scale selected in the
+ 'iemConfigProbeTempUnits' OID (Celsius or Fahrenheit)."
+ ::= { iemConfigProbesEntry 4 }
+
+iemConfigProbeTempUnits OBJECT-TYPE
+ SYNTAX INTEGER {
+ celsius(1),
+ fahrenheit(2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The temperature scale used to display the temperature
+ thresholds of the probe, Celsius(1) or Fahrenheit(2).
+ This setting is based on the system preferences
+ configuration in the agent."
+ ::= { iemConfigProbesEntry 5 }
+
+iemConfigProbeHighHumidThreshold OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The high humidity alarm threshold for the probe in
+ percent relative humidity."
+ ::= { iemConfigProbesEntry 6 }
+
+iemConfigProbeLowHumidThreshold OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The low humidity alarm threshold for the probe in
+ percent relative humidity."
+ ::= { iemConfigProbesEntry 7 }
+
+iemConfigProbeHighTempEnable OBJECT-TYPE
+ SYNTAX INTEGER {
+ disabled(1),
+ enabled(2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The high temperature alarm enable/disable for the
+ probe. No alarm will be generated if this value
+ is set to disabled(1). The alarm will be
+ generated if this value is set to enabled(2) and
+ the threshold has been violated."
+ ::= { iemConfigProbesEntry 8 }
+
+iemConfigProbeLowTempEnable OBJECT-TYPE
+ SYNTAX INTEGER {
+ disabled(1),
+ enabled(2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The low temperature alarm enable/disable for the
+ probe. No alarm will be generated if this value
+ is set to disabled(1). The alarm will be
+ generated if this value is set to enabled(2) and
+ the threshold has been violated."
+ ::= { iemConfigProbesEntry 9 }
+
+iemConfigProbeHighHumidEnable OBJECT-TYPE
+ SYNTAX INTEGER {
+ disabled(1),
+ enabled(2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The high humidity alarm enable/disable for the
+ probe. No alarm will be generated if this value
+ is set to disabled(1). The alarm will be
+ generated if this value is set to enabled(2) and
+ the threshold has been violated."
+ ::= { iemConfigProbesEntry 10 }
+
+iemConfigProbeLowHumidEnable OBJECT-TYPE
+ SYNTAX INTEGER {
+ disabled(1),
+ enabled(2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The low humidity alarm enable/disable for the
+ probe. No alarm will be generated if this value
+ is set to disabled(1). The alarm will be
+ generated if this value is set to enabled(2) and
+ the threshold has been violated."
+ ::= { iemConfigProbesEntry 11 }
+
+iemConfigContactsNumContacts OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of contacts available on the Environmental
+ Monitor."
+ ::= { iemConfig 3 }
+
+iemConfigContactsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IemConfigContactsEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of contacts supported by the Environmental Monitor
+ and their configurations."
+ ::= { iemConfig 4 }
+
+iemConfigContactsEntry OBJECT-TYPE
+ SYNTAX IemConfigContactsEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The Environmental Monitor contact configurations."
+ INDEX { iemConfigContactNumber }
+ ::= { iemConfigContactsTable 1 }
+
+IemConfigContactsEntry ::=
+ SEQUENCE {
+ iemConfigContactNumber
+ INTEGER,
+ iemConfigContactName
+ DisplayString,
+ iemConfigContactEnable
+ INTEGER
+ }
+
+iemConfigContactNumber OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index of an Environmental Monitor contact."
+ ::= { iemConfigContactsEntry 1 }
+
+iemConfigContactName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "A descriptive name for the Environmental Monitor contact
+ set by the user, possibly denoting its location or purpose."
+ ::= { iemConfigContactsEntry 2 }
+
+iemConfigContactEnable OBJECT-TYPE
+ SYNTAX INTEGER {
+ disabled(1),
+ enabled(2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "An Environmental Monitor contact alarm enable/disable."
+ ::= { iemConfigContactsEntry 3 }
+
+
+iemStatusProbesNumProbes OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of available probes on the Environmental
+ Monitor."
+ ::= { iemStatus 1 }
+
+iemStatusProbesTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IemStatusProbesEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of probes supported by the Environmental Monitor
+ and their status."
+ ::= { iemStatus 2 }
+
+iemStatusProbesEntry OBJECT-TYPE
+ SYNTAX IemStatusProbesEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the probe."
+ INDEX { iemStatusProbeNumber }
+ ::= { iemStatusProbesTable 1 }
+
+IemStatusProbesEntry ::=
+ SEQUENCE {
+ iemStatusProbeNumber
+ INTEGER,
+ iemStatusProbeName
+ DisplayString,
+ iemStatusProbeStatus
+ INTEGER,
+ iemStatusProbeCurrentTemp
+ INTEGER,
+ iemStatusProbeTempUnits
+ INTEGER,
+ iemStatusProbeCurrentHumid
+ INTEGER,
+ iemStatusProbeHighTempViolation
+ INTEGER,
+ iemStatusProbeLowTempViolation
+ INTEGER,
+ iemStatusProbeHighHumidViolation
+ INTEGER,
+ iemStatusProbeLowHumidViolation
+ INTEGER
+ }
+
+iemStatusProbeNumber OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index of the probe."
+ ::= { iemStatusProbesEntry 1 }
+
+iemStatusProbeName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A descriptive name for the probe set by the user,
+ denoting its location or purpose."
+ ::= { iemStatusProbesEntry 2 }
+
+iemStatusProbeStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ disconnected(1),
+ connected(2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The connected status of the probe, either
+ disconnected(1) or connected(2)."
+ ::= { iemStatusProbesEntry 3 }
+
+iemStatusProbeCurrentTemp OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The current temperature reading from the probe displayed
+ in the units shown in the 'iemStatusProbeTempUnits' OID
+ (Celsius or Fahrenheit)."
+ ::= { iemStatusProbesEntry 4 }
+
+iemStatusProbeTempUnits OBJECT-TYPE
+ SYNTAX INTEGER {
+ celsius(1),
+ fahrenheit(2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The temperature scale used to display the temperature
+ thresholds of the probe, Celsius(1) or Fahrenheit(2).
+ This setting is based on the system preferences
+ configuration in the agent."
+ ::= { iemStatusProbesEntry 5 }
+
+iemStatusProbeCurrentHumid OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The current humidity reading from the probe in percent
+ relative humidity."
+ ::= { iemStatusProbesEntry 6 }
+
+iemStatusProbeHighTempViolation OBJECT-TYPE
+ SYNTAX INTEGER {
+ noViolation(1),
+ highTempViolation(2),
+ disabled(3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The high temperature violation status of the probe
+ temperature reading. This OID will show a highTempViolation(2)
+ if the current temperature reading shown in the
+ 'iemStatusProbeCurrentTemp' OID is greater than or equal to
+ the high temperature threshold value, the
+ 'iemConfigProbeHighTempThreshold' OID, and the value of the
+ 'iemConfigProbeHighTempEnable' OID is enabled. Otherwise it will show
+ noViolation(1). If the 'iemConfigProbeHighTempEnable' OID is disabled,
+ this OID will show disabled(3)."
+ ::= { iemStatusProbesEntry 7 }
+
+iemStatusProbeLowTempViolation OBJECT-TYPE
+ SYNTAX INTEGER {
+ noViolation(1),
+ lowTempViolation(2),
+ disabled(3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The high temperature violation status of the probe
+ temperature reading. This OID will show a lowTempViolation(2)
+ if the current temperature reading shown in the
+ 'iemStatusProbeCurrentTemp' OID is less than or equal to
+ the low temperature threshold value, the
+ 'iemConfigProbeLowTempThreshold' OID, and the value of the
+ 'iemPConfigrobeLowTempEnable' OID is enabled. Otherwise it will show
+ noViolation(1). If the 'iemConfigProbeLowTempEnable' OID is disabled,
+ this OID will show disabled(3)."
+ ::= { iemStatusProbesEntry 8 }
+
+iemStatusProbeHighHumidViolation OBJECT-TYPE
+ SYNTAX INTEGER {
+ noViolation(1),
+ highHumidViolation(2),
+ disabled(3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The high humidity violation status of the probe humidity
+ reading. This OID will show a highTempViolation(2)
+ if the current humidity reading shown in the
+ 'iemStatusProbeCurrentHumid' OID is greater than or equal to
+ the high humidity threshold value, the
+ 'iemConfigProbeHighHumidThreshold' OID, and the value of the
+ 'iemConfigProbeHighHumidEnable' OID is enabled. Otherwise it will
+ show noViolation(1). If the 'iemConfigProbeHighHumidEnable' OID is
+ disabled, this OID will show disabled(3)."
+ ::= { iemStatusProbesEntry 9 }
+
+iemStatusProbeLowHumidViolation OBJECT-TYPE
+ SYNTAX INTEGER {
+ noViolation(1),
+ lowHumidViolation(2),
+ disabled(3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The low humidity violation status of the probe humidity
+ reading. This OID will show a lowTempViolation(2)
+ if the current humidity reading shown in the
+ 'iemStatusProbeCurrentHumid' OID is less than or equal to
+ the low humidity threshold value, the
+ 'iemConfigProbeLowHumidThreshold' OID, and the value of the
+ 'iemConfigProbeLowHumidEnable' OID is enabled. Otherwise it will
+ show noViolation(1). If the 'iemConfigProbeLowHumidEnable' OID is
+ disabled, this OID will show disabled(3)."
+ ::= { iemStatusProbesEntry 10 }
+
+iemStatusContactsNumContacts OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of contacts supported on the
+ Environmental Monitor."
+ ::= { iemStatus 3 }
+
+iemStatusContactsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IemStatusContactsEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of contacts supported by the Environmental Monitor
+ and their status."
+ ::= { iemStatus 4 }
+
+iemStatusContactsEntry OBJECT-TYPE
+ SYNTAX IemStatusContactsEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the contact."
+ INDEX { iemStatusContactNumber }
+ ::= { iemStatusContactsTable 1 }
+
+IemStatusContactsEntry ::=
+ SEQUENCE {
+ iemStatusContactNumber
+ INTEGER,
+ iemStatusContactName
+ DisplayString,
+ iemStatusContactStatus
+ INTEGER
+ }
+
+iemStatusContactNumber OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index of the Environmental Monitor contact."
+ ::= { iemStatusContactsEntry 1 }
+
+iemStatusContactName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A descriptive name for the Environmental Monitor contact
+ set by the user, denoting its location or purpose."
+ ::= { iemStatusContactsEntry 2 }
+
+iemStatusContactStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ noFault(1),
+ fault(2),
+ disabled(3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the Environmental Monitor contact. The status
+ will show noFault(1) if the contact is in the normal state
+ and the 'iemConfigContactEnable' OID is enabled. The status will
+ show a fault(2) if the contact is faulted and the
+ 'iemConfigContactEnable' OID is enabled. If the
+ 'iemConfigContactEnable' OID is disabled, the status will show
+ disabled(3)."
+ ::= { iemStatusContactsEntry 3 }
+
+iemStatusRelaysNumRelays OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of output relays supported on the
+ Environmental Monitor."
+ ::= { iemStatus 6 }
+
+iemStatusRelaysTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IemStatusRelaysEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "A list of output relays supported by the
+ Environmental Monitor and their status."
+ ::= { iemStatus 7 }
+
+iemStatusRelaysEntry OBJECT-TYPE
+ SYNTAX IemStatusRelaysEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the relay."
+ INDEX { iemStatusRelayNumber }
+ ::= { iemStatusRelaysTable 1 }
+
+IemStatusRelaysEntry ::=
+ SEQUENCE {
+ iemStatusRelayNumber
+ INTEGER,
+ iemStatusRelayName
+ DisplayString,
+ iemStatusRelayStatus
+ INTEGER
+ }
+
+iemStatusRelayNumber OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index of the output relay."
+ ::= { iemStatusRelaysEntry 1 }
+
+iemStatusRelayName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A descriptive name for the output relay set by the
+ user, denoting its location or purpose."
+ ::= { iemStatusRelaysEntry 2 }
+
+iemStatusRelayStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ faultState(1),
+ normalState(2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the output relay, either faultState(1) or
+ normalState(2)."
+ ::= { iemStatusRelaysEntry 3 }
+
+-- Environmental Management System (EMS)
+
+-- EMS IDENT
+
+emsIdentEMSName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A character string identifying the
+ device. "
+ ::= { emsIdent 1 }
+
+emsIdentProductNumber OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A character string identifying the model number of
+ the device. This value is set at the factory."
+ ::= { emsIdent 2 }
+
+emsIdentFirmwareRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The firmware revision of the device."
+ ::= { emsIdent 3 }
+
+emsIdentHardwareRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The hardware revision of the device.
+ This value is set at the factory."
+ ::= { emsIdent 4 }
+
+emsIdentDateOfManufacture OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The date when the device was manufactured in mm/dd/yyyy format.
+ This value is set at the factory. "
+ ::= { emsIdent 5 }
+
+emsIdentSerialNumber OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A character string identifying the serial number of
+ the device. This value is set at the factory."
+ ::= { emsIdent 6 }
+
+-- EMS CONTROL
+
+-- EMS OUTPUT RELAY CONTROL STATUS TABLE
+
+emsOutputRelayControlTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF OutputRelayControlEMSEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for control of individual output relays. The number of
+ entries is contained in the emsStatusOutputRelayCount OID."
+ ::= { emsOutputRelayControl 1 }
+
+emsOutputRelayControlEntry OBJECT-TYPE
+ SYNTAX OutputRelayControlEMSEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The output relays to control."
+ INDEX { emsOutputRelayControlOutputRelayIndex }
+ ::= { emsOutputRelayControlTable 1 }
+
+OutputRelayControlEMSEntry ::=
+ SEQUENCE {
+ emsOutputRelayControlOutputRelayIndex INTEGER,
+ emsOutputRelayControlOutputRelayName DisplayString,
+ emsOutputRelayControlOutputRelayCommand INTEGER
+ }
+
+emsOutputRelayControlOutputRelayIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the output relay entry."
+ ::= { emsOutputRelayControlEntry 1 }
+
+emsOutputRelayControlOutputRelayName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the output relay.
+ This OID is provided for informational purposes only."
+ ::= { emsOutputRelayControlEntry 2 }
+
+emsOutputRelayControlOutputRelayCommand OBJECT-TYPE
+ SYNTAX INTEGER {
+ immediateCloseEMS (1),
+ immediateOpenEMS (2)
+ }
+
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this variable will return the output relay state. If
+ the output relay is closed, the immediateCloseEMS (1) value will be returned.
+ If the output relay is open, the immediateOpenEMS (2) value will be
+ returned.
+
+ Setting this variable to immediateCloseEMS (1) will immediately close the relay.
+
+ Setting this variable to immediateOpenEMS (2) will immediately open the relay."
+ ::= { emsOutputRelayControlEntry 3 }
+
+-- EMS OUTLET CONTROL TABLE
+
+emsOutletControlTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF OutletControlEMSEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for control of individual outlet switches. The number of
+ entries is contained in the emsStatusOutletCount OID."
+ ::= { emsOutletControl 1 }
+
+emsOutletControlEntry OBJECT-TYPE
+ SYNTAX OutletControlEMSEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The outlets to control."
+ INDEX { emsOutletControlOutletIndex }
+ ::= { emsOutletControlTable 1 }
+
+OutletControlEMSEntry ::=
+ SEQUENCE {
+ emsOutletControlOutletIndex INTEGER,
+ emsOutletControlOutletName DisplayString,
+ emsOutletControlOutletCommand INTEGER
+ }
+
+emsOutletControlOutletIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the outlet entry."
+ ::= { emsOutletControlEntry 1 }
+
+emsOutletControlOutletName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the outlet.
+ This OID is provided for informational purposes only."
+ ::= { emsOutletControlEntry 2 }
+
+emsOutletControlOutletCommand OBJECT-TYPE
+ SYNTAX INTEGER {
+ immediateOnEMS (1),
+ immediateOffEMS (2)
+ }
+
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this variable will return the outlet state. If
+ the outlet is on, the immediateOnEMS (1) value will be returned.
+ If the outlet is off, the immediateOffEMS (2) value will be
+ returned.
+
+ Setting this variable to immediateOnEMS (1) will immediately turn the outlet on.
+
+ Setting this variable to immediateOffEMS (2) will immediately turn the outlet off."
+ ::= { emsOutletControlEntry 3 }
+
+-- EMS SENSOR CONTROL TABLE
+
+emsSensorControlTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF EMSSensorControlEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for control/reset of individual sensors. The number of
+ entries is contained in the emsStatusSensorCount OID."
+ ::= { emsSensorControl 1 }
+
+emsSensorControlEntry OBJECT-TYPE
+ SYNTAX EMSSensorControlEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The sensors to control/reset."
+ INDEX { emsSensorControlSensorIndex }
+ ::= { emsSensorControlTable 1 }
+
+EMSSensorControlEntry ::=
+ SEQUENCE {
+ emsSensorControlSensorIndex INTEGER,
+ emsSensorControlSensorSystemName DisplayString,
+ emsSensorControlSensorUserName DisplayString,
+ emsSensorControlSensorCommand INTEGER
+ }
+
+emsSensorControlSensorIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the sensor entry."
+ ::= { emsSensorControlEntry 1 }
+
+emsSensorControlSensorSystemName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The system name of the sensor. This describes the hardware system
+ intent of this sensor."
+ ::= { emsSensorControlEntry 2 }
+
+emsSensorControlSensorUserName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the sensor as given by the system user."
+ ::= { emsSensorControlEntry 3 }
+
+emsSensorControlSensorCommand OBJECT-TYPE
+ SYNTAX INTEGER {
+ noCommandEMS (1),
+ resetCommandEMS (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this variable will return noCommandEMS(1).
+
+ Setting this variable to resetCommandEMS(2) will issue a reset command to the
+ sensor. Some sensors cannot be manually reset and will not be affected
+ by this command."
+ ::= { emsSensorControlEntry 4 }
+
+-- EMS ALARM DEVICE CONTROL TABLE
+
+emsAlarmDeviceControlTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF AlarmDeviceControlEMSEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for control of individual alarm devices.
+ Note: Some alarm devices are not controllable. The number of
+ entries is contained in the emsStatusAlarmDeviceCount OID."
+ ::= { emsAlarmDeviceControl 1 }
+
+emsAlarmDeviceControlEntry OBJECT-TYPE
+ SYNTAX AlarmDeviceControlEMSEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The alarm devices to control."
+ INDEX { emsAlarmDeviceControlDeviceIndex }
+ ::= { emsAlarmDeviceControlTable 1 }
+
+AlarmDeviceControlEMSEntry ::=
+ SEQUENCE {
+ emsAlarmDeviceControlDeviceIndex INTEGER,
+ emsAlarmDeviceControlDeviceName DisplayString,
+ emsAlarmDeviceControlDeviceCommand INTEGER
+ }
+
+emsAlarmDeviceControlDeviceIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the alarm device entry."
+ ::= { emsAlarmDeviceControlEntry 1 }
+
+emsAlarmDeviceControlDeviceName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the alarm device.
+ This OID is provided for informational purposes only."
+ ::= { emsAlarmDeviceControlEntry 2 }
+
+emsAlarmDeviceControlDeviceCommand OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmDeviceOnEMS (1),
+ alarmDeviceOffEMS (2),
+ alarmDeviceNotInstalledEMS (3)
+ }
+
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this variable will return the device state. If
+ the device is active, the alarmDeviceOnEMS (1) value will be returned.
+ If the device is inactive, the alarmDeviceOffEMS (2) value will be
+ returned. If the device is not installed, the
+ alarmDeviceNotInstalledEMS (3) value will be returned.
+
+ Actions resulting from setting this variable are device-dependent.
+
+ Setting this variable to alarmDeviceOnEMS (1) will turn that device (ex. Beacon) on.
+ Setting this variable to alarmDeviceOffEMS (2) will turn that device off."
+
+ ::= { emsAlarmDeviceControlEntry 3 }
+
+
+-- EMS CONFIG
+
+emsConfigName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the device."
+ ::= { emsConfig 1 }
+
+emsConfigCheckLogLight OBJECT-TYPE
+ SYNTAX INTEGER {
+ lightDisabled (1),
+ lightOnInformational (2),
+ lightOnWarning (3),
+ lightOnSevere (4)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The setting of this OID determines the level of event that will
+ trigger the check-log light on the EMS. This is not available on the EMU2.
+
+ lightDisabled (1) disables the check-log light.
+ lightOnInformational (2) lights check-log for any event of
+ informational severity or above.
+ lightOnWarning (3) lights check-log for any event of
+ warning severity or above.
+ lightOnSevere (4) lights check-log for any event of severe severity."
+
+ ::= { emsConfig 2 }
+
+-- EMS PROBE CONFIG TABLE
+
+emsProbeConfigTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF EMSProbeConfigEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for configuration of individual probes. The number of
+ entries is contained in the emsStatusProbeCount OID."
+ ::= { emsProbeConfig 1 }
+
+emsProbeConfigEntry OBJECT-TYPE
+ SYNTAX EMSProbeConfigEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The probes to configure."
+ INDEX { emsProbeConfigProbeIndex }
+ ::= { emsProbeConfigTable 1 }
+
+EMSProbeConfigEntry ::=
+ SEQUENCE {
+ emsProbeConfigProbeIndex INTEGER,
+ emsProbeConfigProbeName DisplayString,
+ emsProbeConfigProbeHighTempThresh INTEGER,
+ emsProbeConfigProbeLowTempThresh INTEGER,
+ emsProbeConfigProbeHighHumidityThresh INTEGER,
+ emsProbeConfigProbeLowHumidityThresh INTEGER,
+ emsProbeConfigProbeMaxTempThresh INTEGER,
+ emsProbeConfigProbeMinTempThresh INTEGER,
+ emsProbeConfigProbeDeltaTemp INTEGER,
+ emsProbeConfigProbeMaxHumidityThresh INTEGER,
+ emsProbeConfigProbeMinHumidityThresh INTEGER,
+ emsProbeConfigProbeDeltaHumidity INTEGER,
+ emsProbeConfigProbeSTIncTempVariance INTEGER,
+ emsProbeConfigProbeSTIncTempTime INTEGER,
+ emsProbeConfigProbeSTDecTempVariance INTEGER,
+ emsProbeConfigProbeSTDecTempTime INTEGER,
+ emsProbeConfigProbeLTIncTempVariance INTEGER,
+ emsProbeConfigProbeLTIncTempTime INTEGER,
+ emsProbeConfigProbeLTDecTempVariance INTEGER,
+ emsProbeConfigProbeLTDecTempTime INTEGER
+ }
+
+emsProbeConfigProbeIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the probe entry."
+ ::= { emsProbeConfigEntry 1 }
+
+emsProbeConfigProbeName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the probe."
+ ::= { emsProbeConfigEntry 2 }
+
+emsProbeConfigProbeHighTempThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Probe high temperature threshold.
+
+ Values are represented in whole number degrees.
+ Units are displayed in the scale shown in
+ the emsStatusSysTempUnits OID (Celsius or Fahrenheit)."
+ ::= { emsProbeConfigEntry 3 }
+
+emsProbeConfigProbeLowTempThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Probe low temperature threshold.
+
+ Values are represented in whole number degrees.
+ Units are displayed in the scale shown in
+ the emsStatusSysTempUnits OID (Celsius or Fahrenheit)."
+ ::= { emsProbeConfigEntry 4 }
+
+emsProbeConfigProbeHighHumidityThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Probe high humidity threshold.
+
+ Values are represented in whole number percentage."
+ ::= { emsProbeConfigEntry 5 }
+
+emsProbeConfigProbeLowHumidityThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Probe low humidity threshold.
+
+ Values are represented in whole number percentage."
+ ::= { emsProbeConfigEntry 6 }
+
+emsProbeConfigProbeMaxTempThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Probe maximum temperature threshold.
+
+ Values are represented in whole number degrees.
+ Units are displayed in the scale shown in
+ the emsStatusSysTempUnits OID (Celsius or Fahrenheit)."
+ ::= { emsProbeConfigEntry 7 }
+
+emsProbeConfigProbeMinTempThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Probe minimum temperature threshold.
+
+ Values are represented in whole number degrees.
+ Units are displayed in the scale shown in
+ the emsStatusSysTempUnits OID (Celsius or Fahrenheit)."
+ ::= { emsProbeConfigEntry 8 }
+
+emsProbeConfigProbeDeltaTemp OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Probe delta temperature.
+
+ Values are represented in whole number degrees.
+ Units are displayed in the scale shown in
+ the emsStatusSysTempUnits OID (Celsius or Fahrenheit)."
+ ::= { emsProbeConfigEntry 9 }
+
+emsProbeConfigProbeMaxHumidityThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Probe maximum humidity threshold.
+
+ Values are represented in whole number percentage."
+ ::= { emsProbeConfigEntry 10 }
+
+emsProbeConfigProbeMinHumidityThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Probe minimum humidity threshold.
+
+ Values are represented in whole number percentage."
+ ::= { emsProbeConfigEntry 11 }
+
+emsProbeConfigProbeDeltaHumidity OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Probe delta humidity.
+
+ Values are represented in whole number percentage."
+ ::= { emsProbeConfigEntry 12 }
+
+emsProbeConfigProbeSTIncTempVariance OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Probe short-term increasing temperature variance used for rate of change alarms.
+
+ Values are represented in whole number degrees.
+ Units are displayed in the scale shown in
+ the emsStatusSysTempUnits OID (Celsius or Fahrenheit)."
+ ::= { emsProbeConfigEntry 13 }
+
+emsProbeConfigProbeSTIncTempTime OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Probe short-term increasing temperature time used for rate of change alarms.
+
+ Values are represented in whole number minutes."
+ ::= { emsProbeConfigEntry 14 }
+
+emsProbeConfigProbeSTDecTempVariance OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Probe short-term decreasing temperature variance used for rate of change alarms.
+
+ Values are represented in whole number degrees.
+ Units are displayed in the scale shown in
+ the emsStatusSysTempUnits OID (Celsius or Fahrenheit)."
+ ::= { emsProbeConfigEntry 15 }
+
+emsProbeConfigProbeSTDecTempTime OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Probe short-term decreasing temperature time used for rate of change alarms.
+
+ Values are represented in whole number minutes."
+ ::= { emsProbeConfigEntry 16 }
+
+emsProbeConfigProbeLTIncTempVariance OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Probe long-term increasing temperature variance used for rate of change alarms.
+
+ Values are represented in whole number degrees.
+ Units are displayed in the scale shown in
+ the emsStatusSysTempUnits OID (Celsius or Fahrenheit)."
+ ::= { emsProbeConfigEntry 17 }
+
+emsProbeConfigProbeLTIncTempTime OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Probe long-term increasing temperature time used for rate of change alarms.
+
+ Values are represented in whole number hours."
+ ::= { emsProbeConfigEntry 18 }
+
+emsProbeConfigProbeLTDecTempVariance OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Probe long-term decreasing temperature variance used for rate of change alarms.
+
+ Values are represented in whole number degrees.
+ Units are displayed in the scale shown in
+ the emsStatusSysTempUnits OID (Celsius or Fahrenheit)."
+ ::= { emsProbeConfigEntry 19 }
+
+emsProbeConfigProbeLTDecTempTime OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Probe long-term decreasing temperature time used for rate of change alarms.
+
+ Values are represented in whole number hours."
+ ::= { emsProbeConfigEntry 20 }
+
+
+-- EMS INPUT CONTACT CONFIG STATUS TABLE
+
+emsInputContactConfigTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF EMSInputContactConfigEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for configuration of individual input contacts. The number of
+ entries is contained in the emsStatusInputContactCount OID."
+ ::= { emsInputContactConfig 1 }
+
+emsInputContactConfigEntry OBJECT-TYPE
+ SYNTAX EMSInputContactConfigEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The input contacts to configure."
+ INDEX { emsInputContactConfigInputContactIndex }
+ ::= { emsInputContactConfigTable 1 }
+
+EMSInputContactConfigEntry ::=
+ SEQUENCE {
+ emsInputContactConfigInputContactIndex INTEGER,
+ emsInputContactConfigInputContactName DisplayString,
+ emsInputContactConfigInputContactNormalState INTEGER
+ }
+
+emsInputContactConfigInputContactIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the input contact entry."
+ ::= { emsInputContactConfigEntry 1 }
+
+emsInputContactConfigInputContactName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the input contact."
+ ::= { emsInputContactConfigEntry 2 }
+
+emsInputContactConfigInputContactNormalState OBJECT-TYPE
+ SYNTAX INTEGER {
+ normallyClosedEMS (1),
+ normallyOpenEMS (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this variable will return the normal state of the input contact. If
+ the normal state is closed, the normallyClosedEMS (1) value will be returned.
+ If the normal state is closed, the normallyOpenEMS (2) value will be
+ returned.
+
+ Setting this variable will change the normal state of the input contact"
+ ::= { emsInputContactConfigEntry 3 }
+
+-- EMS OUTPUT RELAY CONFIG STATUS TABLE
+
+emsOutputRelayConfigTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF EMSOutputRelayConfigEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for configuration of individual output relays. The number of
+ entries is contained in the emsStatusOutputRelayCount OID."
+ ::= { emsOutputRelayConfig 1 }
+
+emsOutputRelayConfigEntry OBJECT-TYPE
+ SYNTAX EMSOutputRelayConfigEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The output relays to configure."
+ INDEX { emsOutputRelayConfigOutputRelayIndex }
+ ::= { emsOutputRelayConfigTable 1 }
+
+EMSOutputRelayConfigEntry ::=
+ SEQUENCE {
+ emsOutputRelayConfigOutputRelayIndex INTEGER,
+ emsOutputRelayConfigOutputRelayName DisplayString,
+ emsOutputRelayConfigOutputRelayNormalState INTEGER
+ }
+
+emsOutputRelayConfigOutputRelayIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the output relay entry."
+ ::= { emsOutputRelayConfigEntry 1 }
+
+emsOutputRelayConfigOutputRelayName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the output relay."
+ ::= { emsOutputRelayConfigEntry 2 }
+
+emsOutputRelayConfigOutputRelayNormalState OBJECT-TYPE
+ SYNTAX INTEGER {
+ normallyClosedEMS (1),
+ normallyOpenEMS (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this variable will return the normal state of the output relay. If
+ the normal state is closed, the normallyClosedEMS (1) value will be returned.
+ If the normal state is closed, the normallyOpenEMS (2) value will be
+ returned.
+
+ Setting this variable will change the normal state of the output relay"
+ ::= { emsOutputRelayConfigEntry 3 }
+
+-- EMS OUTLET CONFIG TABLE
+
+emsOutletConfigTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF EMSOutletConfigEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for configuration of individual outlets. The number of
+ entries is contained in the emsStatusOutletCount OID."
+ ::= { emsOutletConfig 1 }
+
+emsOutletConfigEntry OBJECT-TYPE
+ SYNTAX EMSOutletConfigEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The outlets to configure."
+ INDEX { emsOutletConfigOutletIndex }
+ ::= { emsOutletConfigTable 1 }
+
+EMSOutletConfigEntry ::=
+ SEQUENCE {
+ emsOutletConfigOutletIndex INTEGER,
+ emsOutletConfigOutletName DisplayString,
+ emsOutletConfigOutletNormalState INTEGER
+ }
+
+emsOutletConfigOutletIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the outlet entry."
+ ::= { emsOutletConfigEntry 1 }
+
+emsOutletConfigOutletName OBJECT-TYPE
+ SYNTAX DisplayString ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the outlet."
+ ::= { emsOutletConfigEntry 2 }
+
+emsOutletConfigOutletNormalState OBJECT-TYPE
+ SYNTAX INTEGER {
+ normallyOnEMS (1),
+ normallyOffEMS (2)
+ }
+
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this variable will return the normal state of the outlet. If
+ the normal state is on, the normallyOnEMS (1) value will be returned.
+ If the normal state is off, the normallyOffEMS (2) value will be
+ returned.
+
+ Setting this variable will change the normal state of the outlet"
+ ::= { emsOutletConfigEntry 3 }
+
+-- EMS SENSOR CONFIG TABLE
+
+emsSensorConfigTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF EMSSensorConfigEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for configuration of individual sensors. The number of
+ entries is contained in the emsStatusSensorCount OID."
+ ::= { emsSensorConfig 1 }
+
+emsSensorConfigEntry OBJECT-TYPE
+ SYNTAX EMSSensorConfigEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The sensors to configure."
+ INDEX { emsSensorConfigSensorIndex }
+ ::= { emsSensorConfigTable 1 }
+
+EMSSensorConfigEntry ::=
+ SEQUENCE {
+ emsSensorConfigSensorIndex INTEGER,
+ emsSensorConfigSensorSystemName DisplayString,
+ emsSensorConfigSensorUserName DisplayString,
+ emsSensorConfigSensorNormalState INTEGER,
+ emsSensorConfigSensorAlarmDelay INTEGER
+ }
+
+emsSensorConfigSensorIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the sensor entry."
+ ::= { emsSensorConfigEntry 1 }
+
+emsSensorConfigSensorSystemName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The system name of the sensor. This describes the hardware system
+ intent of this sensor."
+ ::= { emsSensorConfigEntry 2 }
+
+emsSensorConfigSensorUserName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the sensor as given by the system user."
+ ::= { emsSensorConfigEntry 3 }
+
+emsSensorConfigSensorNormalState OBJECT-TYPE
+ SYNTAX INTEGER {
+ normallyClosedEMS (1),
+ normallyOpenEMS (2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this variable will return the normal state of the sensor. If
+ the normal state is closed, the normallyClosedEMS (1) value will be returned.
+ If the normal state is closed, the normallyOpenEMS (2) value will be
+ returned.
+
+ Setting this variable will change the normal state of the sensor. Note:
+ Only the AUX sensor in the EMS has a configurable Normal State"
+ ::= { emsSensorConfigEntry 4 }
+
+emsSensorConfigSensorAlarmDelay OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The delay (in seconds) after a sensor detects an alarm condition before the
+ condition is reported."
+ ::= { emsSensorConfigEntry 5 }
+
+-- EMS STATUS
+--- EMS MASTER status
+
+emsStatusEMSName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A character string identifying the
+ device. "
+ ::= { emsStatus 1 }
+
+emsStatusCommStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ noComm(1),
+ comm(2),
+ commLost(3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The communication status between the agent
+ and the device.
+
+ noComm(1), Communication has never been established.
+ comm(2), Communication has been established.
+ commLost(3), Communication was established, but was lost."
+ ::= { emsStatus 2 }
+
+emsStatusProbeCount OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of T/H probes (both local and remote) that
+ is supported by this device."
+ ::= { emsStatus 3 }
+
+emsStatusInputContactCount OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of Input Contacts that
+ is supported by this device."
+ ::= { emsStatus 4 }
+
+emsStatusOutputRelayCount OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of Output Relays that
+ is supported by this device."
+ ::= { emsStatus 5 }
+
+emsStatusOutletCount OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of AC Outlets that
+ is supported by this device."
+ ::= { emsStatus 6 }
+
+emsStatusSensorCount OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of Sensors that
+ is supported by this device."
+ ::= { emsStatus 7 }
+
+emsStatusAlinkAruDeviceCount OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of remote Aru's supported by this device."
+ ::= { emsStatus 8 }
+
+emsStatusAlinkProbeDeviceCount OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of remote T/H probes supported by this device."
+ ::= { emsStatus 9 }
+
+emsStatusAlarmDeviceCount OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of alarm devices supported by this device."
+ ::= { emsStatus 10 }
+
+emsStatusSysTempUnits OBJECT-TYPE
+ SYNTAX INTEGER {
+ celsius(1),
+ fahrenheit(2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The temperature scale used to display the temperature
+ in the system, Celsius(1) or Fahrenheit(2).
+ This setting is based on the system preferences
+ configuration in the agent."
+ ::= { emsStatus 11 }
+
+emsStatusCheckLogLight OBJECT-TYPE
+ SYNTAX INTEGER {
+ lightOff (1),
+ lightOn (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the check-log light on the device.
+ For the EMU2, this will always indicate lightOff(1).
+
+ lightOff (1) indicates the light is off (no new log entries).
+ lightOn (2) indicates the light is on (new log entries present)."
+
+ ::= { emsStatus 12 }
+
+emsStatusHardwareStatus OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the EMS hardware. This integer should be interpreted
+ as a bit map, with each bit representing the presence or absence of
+ a specific hardware error condition.
+
+ 0 indicates there are no error conditions detected in the EMS hardware.
+ 1 indicates a Current Limit error condition related to the Alink port.
+ 2 indicates incorrect hardware is plugged into an EMS port.
+ 3 indicates that both of these error conditions are present."
+
+ ::= { emsStatus 13 }
+
+-- EMS PROBE STATUS TABLE
+
+emsProbeStatusTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF EMSProbeStatusEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for access of individual probes. The number of
+ entries is contained in the emsStatusProbeCount OID."
+ ::= { emsProbeStatus 1 }
+
+emsProbeStatusEntry OBJECT-TYPE
+ SYNTAX EMSProbeStatusEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The probes to access."
+ INDEX { emsProbeStatusProbeIndex }
+ ::= { emsProbeStatusTable 1 }
+
+EMSProbeStatusEntry ::=
+ SEQUENCE {
+ emsProbeStatusProbeIndex INTEGER,
+ emsProbeStatusProbeName DisplayString,
+ emsProbeStatusProbeTemperature INTEGER,
+ emsProbeStatusProbeHighTempThresh INTEGER,
+ emsProbeStatusProbeLowTempThresh INTEGER,
+ emsProbeStatusProbeHumidity INTEGER,
+ emsProbeStatusProbeHighHumidityThresh INTEGER,
+ emsProbeStatusProbeLowHumidityThresh INTEGER,
+ emsProbeStatusProbeSerialNumber DisplayString,
+ emsProbeStatusProbeCommStatus INTEGER,
+ emsProbeStatusProbeAlarmStatus INTEGER,
+ emsProbeStatusProbeMaxTempThresh INTEGER,
+ emsProbeStatusProbeMinTempThresh INTEGER,
+ emsProbeStatusProbeMaxHumidityThresh INTEGER,
+ emsProbeStatusProbeMinHumidityThresh INTEGER
+ }
+
+emsProbeStatusProbeIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the probe entry."
+ ::= { emsProbeStatusEntry 1 }
+
+emsProbeStatusProbeName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the probe."
+ ::= { emsProbeStatusEntry 2 }
+
+emsProbeStatusProbeTemperature OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Probe temperature reading.
+
+ Values are represented in whole number degrees.
+ Units are displayed in the scale shown in
+ the emsStatusSysTempUnits OID (Celsius or Fahrenheit)."
+ ::= { emsProbeStatusEntry 3 }
+
+emsProbeStatusProbeHighTempThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Probe high temperature threshold.
+
+ Values are represented in whole number degrees.
+ Units are displayed in the scale shown in
+ the emsStatusSysTempUnits OID (Celsius or Fahrenheit)."
+ ::= { emsProbeStatusEntry 4 }
+
+emsProbeStatusProbeLowTempThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Probe low temperature threshold.
+
+ Values are represented in whole number degrees.
+ Units are displayed in the scale shown in
+ the emsStatusSysTempUnits OID (Celsius or Fahrenheit)."
+ ::= { emsProbeStatusEntry 5 }
+
+emsProbeStatusProbeHumidity OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Probe humidity reading.
+
+ Values are represented in whole number percentage."
+ ::= { emsProbeStatusEntry 6 }
+
+emsProbeStatusProbeHighHumidityThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Probe high humidity threshold.
+
+ Values are represented in whole number percentage."
+ ::= { emsProbeStatusEntry 7 }
+
+emsProbeStatusProbeLowHumidityThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Probe low humidity threshold.
+
+ Values are represented in whole number percentage."
+ ::= { emsProbeStatusEntry 8 }
+
+emsProbeStatusProbeSerialNumber OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A label indicating the type (Local[L] or Remote[R]) and Number
+ of the probe. For example, the first local probe would be L1 and
+ the third remote probe would be R3."
+ ::= { emsProbeStatusEntry 9 }
+
+emsProbeStatusProbeCommStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ commsNeverDiscovered(1),
+ commsEstablished(2),
+ commsLost(3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ " The state of communications to the probe.
+ commNeverDiscovered(1) indicates there has never been communications with this device.
+ commsEstablished(2) indicates communication is normal and active with this device.
+ commsLost(3) indicates communication had been established, but is no longer."
+ ::= { emsProbeStatusEntry 10 }
+
+emsProbeStatusProbeAlarmStatus OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The alarm status of the probe. This integer should be interpreted
+ as a bit map, with each bit representing the presence or absence of
+ the specific alarm conditions listed below. The bit will be '1' if
+ the condition is present, and '0' if the condition is not present.
+
+ Bit Hex. Value Description
+ 1 0x0001 Maximum temperature exceeded.
+ 2 0x0002 High temperature exceeded.
+ 3 0x0004 Low temperature exceeded.
+ 4 0x0008 Minimum temperature exceeded.
+ 5 0x0010 Short-term increasing temperature rate exceeded.
+ 6 0x0020 Short-term decreasing temperature rate exceeded.
+ 7 0x0040 Long-term increasing temperature rate exceeded.
+ 8 0x0080 Long-term decreasing temperature rate exceeded.
+ 9 0x0100 Maximum humidity exceeded.
+ 10 0x0200 High humidity exceeded.
+ 11 0x0400 Low humidity exceeded.
+ 12 0x0800 Minimum humidity exceeded."
+ ::= { emsProbeStatusEntry 11 }
+
+emsProbeStatusProbeMaxTempThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Probe maximum temperature threshold.
+
+ Values are represented in whole number degrees.
+ Units are displayed in the scale shown in
+ the emsStatusSysTempUnits OID (Celsius or Fahrenheit)."
+ ::= { emsProbeStatusEntry 12 }
+
+emsProbeStatusProbeMinTempThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Probe minimum temperature threshold.
+
+ Values are represented in whole number degrees.
+ Units are displayed in the scale shown in
+ the emsStatusSysTempUnits OID (Celsius or Fahrenheit)."
+ ::= { emsProbeStatusEntry 13 }
+
+emsProbeStatusProbeMaxHumidityThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Probe maximum humidity threshold.
+
+ Values are represented in whole number percentage."
+ ::= { emsProbeStatusEntry 14 }
+
+emsProbeStatusProbeMinHumidityThresh OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Probe minimum humidity threshold.
+
+ Values are represented in whole number percentage."
+ ::= { emsProbeStatusEntry 15 }
+
+
+-- EMS INPUT CONTACT STATUS TABLE
+
+emsInputContactStatusTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF EMSInputContactStatusEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for access of individual input contacts. The number of
+ entries is contained in the emsStatusInputContactCount OID."
+ ::= { emsInputContactStatus 1 }
+
+emsInputContactStatusEntry OBJECT-TYPE
+ SYNTAX EMSInputContactStatusEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The input contacts to access."
+ INDEX { emsInputContactStatusInputContactIndex }
+ ::= { emsInputContactStatusTable 1 }
+
+EMSInputContactStatusEntry ::=
+ SEQUENCE {
+ emsInputContactStatusInputContactIndex INTEGER,
+ emsInputContactStatusInputContactName DisplayString,
+ emsInputContactStatusInputContactState INTEGER,
+ emsInputContactStatusInputContactNormalState INTEGER
+ }
+
+emsInputContactStatusInputContactIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the input contact entry."
+ ::= { emsInputContactStatusEntry 1 }
+
+emsInputContactStatusInputContactName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the input contact."
+ ::= { emsInputContactStatusEntry 2 }
+
+emsInputContactStatusInputContactState OBJECT-TYPE
+ SYNTAX INTEGER {
+ contactClosedEMS (1),
+ contactOpenEMS (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this variable will return the state of the input contact. If
+ the input contact is closed, the contactClosedEMS (1) value will be returned.
+ If the input contact state is open, the contactOpenEMS (2) value will be
+ returned. "
+
+ ::= { emsInputContactStatusEntry 3 }
+
+emsInputContactStatusInputContactNormalState OBJECT-TYPE
+ SYNTAX INTEGER {
+ normallyClosedEMS (1),
+ normallyOpenEMS (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this variable will return the normal state of the input contact. If
+ the normal state is closed, the normallyClosedEMS (1) value will be returned.
+ If the normal state is open, the normallyOpenEMS (2) value will be
+ returned. "
+
+ ::= { emsInputContactStatusEntry 4 }
+
+
+-- EMS OUTPUT RELAY STATUS TABLE
+
+emsOutputRelayStatusTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF EMSOutputRelayStatusEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for access of individual output relays. The number of
+ entries is contained in the emsStatusOutputRelayCount OID."
+ ::= { emsOutputRelayStatus 1 }
+
+emsOutputRelayStatusEntry OBJECT-TYPE
+ SYNTAX EMSOutputRelayStatusEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The output relays to access."
+ INDEX { emsOutputRelayStatusOutputRelayIndex }
+ ::= { emsOutputRelayStatusTable 1 }
+
+EMSOutputRelayStatusEntry ::=
+ SEQUENCE {
+ emsOutputRelayStatusOutputRelayIndex INTEGER,
+ emsOutputRelayStatusOutputRelayName DisplayString,
+ emsOutputRelayStatusOutputRelayState INTEGER,
+ emsOutputRelayStatusOutputRelayNormalState INTEGER
+ }
+
+emsOutputRelayStatusOutputRelayIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the output relay entry."
+ ::= { emsOutputRelayStatusEntry 1 }
+
+emsOutputRelayStatusOutputRelayName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the output relay."
+ ::= { emsOutputRelayStatusEntry 2 }
+
+emsOutputRelayStatusOutputRelayState OBJECT-TYPE
+ SYNTAX INTEGER {
+ relayClosedEMS (1),
+ relayOpenEMS (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this variable will return the state of the output relay. If
+ the output relay is closed, the relayClosedEMS (1) value will be returned.
+ If the output relay is open, the relayOpenEMS (2) value will be
+ returned. "
+
+ ::= { emsOutputRelayStatusEntry 3 }
+
+emsOutputRelayStatusOutputRelayNormalState OBJECT-TYPE
+ SYNTAX INTEGER {
+ normallyClosedEMS (1),
+ normallyOpenEMS (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this variable will return the normal state of the output relay. If
+ the normal state is closed, the normallyClosedEMS (1) value will be returned.
+ If the normal state is open, the normallyOpenEMS (2) value will be
+ returned. "
+
+ ::= { emsOutputRelayStatusEntry 4 }
+
+-- EMS OUTLET STATUS TABLE
+
+emsOutletStatusTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF EMSOutletStatusEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for access of individual outlets. The number of
+ entries is contained in the emsStatusOutletCount OID."
+ ::= { emsOutletStatus 1 }
+
+emsOutletStatusEntry OBJECT-TYPE
+ SYNTAX EMSOutletStatusEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The outlets to access."
+ INDEX { emsOutletStatusOutletIndex }
+ ::= { emsOutletStatusTable 1 }
+
+EMSOutletStatusEntry ::=
+ SEQUENCE {
+ emsOutletStatusOutletIndex INTEGER,
+ emsOutletStatusOutletName DisplayString,
+ emsOutletStatusOutletState INTEGER,
+ emsOutletStatusOutletNormalState INTEGER
+ }
+
+emsOutletStatusOutletIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the outlet entry."
+ ::= { emsOutletStatusEntry 1 }
+
+emsOutletStatusOutletName OBJECT-TYPE
+ SYNTAX DisplayString ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the outlet."
+ ::= { emsOutletStatusEntry 2 }
+
+emsOutletStatusOutletState OBJECT-TYPE
+ SYNTAX INTEGER {
+ outletOnEMS (1),
+ outletOffEMS (2)
+ }
+
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this variable will return the state of the outlet. If
+ the outlet is on, the outletOnEMS (1) value will be returned.
+ If the outlet is off, the outletOffEMS (2) value will be
+ returned. "
+
+ ::= { emsOutletStatusEntry 3 }
+
+emsOutletStatusOutletNormalState OBJECT-TYPE
+ SYNTAX INTEGER {
+ normallyOnEMS (1),
+ normallyOffEMS (2)
+ }
+
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this variable will return the normal state of the outlet. If
+ the normal state is on, the normallyOnEMS (1) value will be returned.
+ If the normal state is off, the normallyOffEMS (2) value will be
+ returned. "
+
+ ::= { emsOutletStatusEntry 4 }
+
+-- EMS ALARM DEVICE STATUS TABLE
+
+emsAlarmDeviceStatusTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF EMSAlarmDeviceStatusEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for access of individual alarm devices. The number of
+ entries is contained in the emsStatusAlarmDeviceCount OID."
+ ::= { emsAlarmDeviceStatus 1 }
+
+emsAlarmDeviceStatusEntry OBJECT-TYPE
+ SYNTAX EMSAlarmDeviceStatusEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The alarm devices to access."
+ INDEX { emsAlarmDeviceStatusDeviceIndex }
+ ::= { emsAlarmDeviceStatusTable 1 }
+
+EMSAlarmDeviceStatusEntry ::=
+ SEQUENCE {
+ emsAlarmDeviceStatusDeviceIndex INTEGER,
+ emsAlarmDeviceStatusDeviceName DisplayString,
+ emsAlarmDeviceStatusDeviceState INTEGER
+ }
+
+emsAlarmDeviceStatusDeviceIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the alarm device entry."
+ ::= { emsAlarmDeviceStatusEntry 1 }
+
+emsAlarmDeviceStatusDeviceName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the alarm device.
+ This OID is provided for informational purposes only."
+ ::= { emsAlarmDeviceStatusEntry 2 }
+
+emsAlarmDeviceStatusDeviceState OBJECT-TYPE
+ SYNTAX INTEGER {
+ alarmDeviceOnEMS (1),
+ alarmDeviceOffEMS (2),
+ alarmDeviceNotInstalledEMS (3)
+ }
+
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this variable will return the device state. If
+ the device is active, the alarmDeviceOnEMS (1) value will be returned.
+ If the device is inactive, the alarmDeviceOffEMS (2) value will be
+ returned. If the device is not installed, the
+ alarmDeviceNotInstalledEMS (3) value will be returned."
+
+ ::= { emsAlarmDeviceStatusEntry 3 }
+
+
+-- EMS SENSOR STATUS TABLE
+
+emsSensorStatusTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF EMSSensorStatusEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for access of individual sensors. The number of
+ entries is contained in the emsStatusSensorCount OID."
+ ::= { emsSensorStatus 1 }
+
+emsSensorStatusEntry OBJECT-TYPE
+ SYNTAX EMSSensorStatusEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The sensors to access."
+ INDEX { emsSensorStatusSensorIndex }
+ ::= { emsSensorStatusTable 1 }
+
+EMSSensorStatusEntry ::=
+ SEQUENCE {
+ emsSensorStatusSensorIndex INTEGER,
+ emsSensorStatusSensorSystemName DisplayString,
+ emsSensorStatusSensorName DisplayString,
+ emsSensorStatusSensorState INTEGER,
+ emsSensorStatusSensorNormalState INTEGER,
+ emsSensorStatusSensorAlarmDelay INTEGER
+ }
+
+emsSensorStatusSensorIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the sensor entry."
+ ::= { emsSensorStatusEntry 1 }
+
+emsSensorStatusSensorSystemName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The system name of the sensor. This describes the hardware system
+ intent of this sensor."
+ ::= { emsSensorStatusEntry 2 }
+
+emsSensorStatusSensorName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the sensor as given by the system user."
+ ::= { emsSensorStatusEntry 3 }
+
+emsSensorStatusSensorState OBJECT-TYPE
+ SYNTAX INTEGER {
+ sensorFaultedEMS (1),
+ sensorOKEMS (2),
+ sensorNotInstalledEMS (3)
+ }
+
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this variable will return the sensor state. If the sensor is faulted,
+ the sensorFaultedEMS (1) value will be returned.
+ If the sensor is not faulted, the sensorOKEMS (2) value will be
+ returned. If the sensor is not installed, the sensorNotInstalledEMS (3)
+ value will be returned."
+ ::= { emsSensorStatusEntry 4 }
+
+emsSensorStatusSensorNormalState OBJECT-TYPE
+ SYNTAX INTEGER {
+ normallyClosedEMS (1),
+ normallyOpenEMS (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "Getting this variable will return the normal state of the sensor. If
+ the normal state is closed, the normallyClosedEMS (1) value will be returned.
+ If the normal state is closed, the normallyOpenEMS (2) value will be
+ returned."
+ ::= { emsSensorStatusEntry 5 }
+
+emsSensorStatusSensorAlarmDelay OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The delay (in seconds) after a sensor detects an alarm condition before the
+ condition is reported."
+ ::= { emsSensorStatusEntry 6 }
+
+
+
+-- airFM AIR CONDITIONER IDENT
+
+airFMIdentName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A character string identifying the
+ device. "
+ ::= { airFMIdent 1 }
+
+airFMIdentTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of entries in the airFMIdentTable. "
+ ::= { airFMIdent 2 }
+
+airFMIdentTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF AirFMIdentTableEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for getting identification information
+ from each module in the system. "
+ ::= { airFMIdent 3 }
+
+airFMIdentTableEntry OBJECT-TYPE
+ SYNTAX AirFMIdentTableEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The module to get information from."
+ INDEX { airFMIdentModuleIndex }
+ ::= { airFMIdentTable 1 }
+
+AirFMIdentTableEntry ::=
+ SEQUENCE {
+ airFMIdentModuleIndex INTEGER,
+ airFMIdentModuleModelNumber DisplayString,
+ airFMIdentModuleDateOfMfg DisplayString,
+ airFMIdentModuleSerialNumber DisplayString,
+ airFMIdentModuleFirmwareRev DisplayString,
+ airFMIdentModuleHardwareRev DisplayString
+ }
+
+airFMIdentModuleIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index of the module information."
+ ::= { airFMIdentTableEntry 1 }
+
+airFMIdentModuleModelNumber OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A character string identifying the
+ model number. "
+ ::= { airFMIdentTableEntry 2 }
+
+airFMIdentModuleDateOfMfg OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A character string identifying the
+ manufacture date. "
+ ::= { airFMIdentTableEntry 3 }
+
+airFMIdentModuleSerialNumber OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A character string identifying the
+ unit serial number. "
+ ::= { airFMIdentTableEntry 4 }
+
+airFMIdentModuleFirmwareRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A character string identifying the
+ firmware revision. "
+ ::= { airFMIdentTableEntry 5 }
+
+airFMIdentModuleHardwareRev OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A character string identifying the
+ hardware revision. "
+ ::= { airFMIdentTableEntry 6 }
+
+-- airFM AIR CONDITIONER STATUS
+
+airFMStatusSystemOn OBJECT-TYPE
+ SYNTAX INTEGER {
+ statusOn (1),
+ statusOff (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The operating state of the system. "
+ ::= { airFMStatus 1 }
+
+airFMStatusSystemAverageRetTempC OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The system average return air
+ temperature in tenths of degrees Celsius. "
+ ::= { airFMStatus 2 }
+
+airFMStatusSystemAverageRetTempF OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The system average return air
+ temperature in tenths of degrees Fahrenheit. "
+ ::= { airFMStatus 3 }
+
+airFMStatusSystemAverageRetHum OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The system average return air
+ humidity. "
+ ::= { airFMStatus 4 }
+
+airFMStatusSystemActionTempC OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The system action air
+ temperature in tenths of degrees Celsius. "
+ ::= { airFMStatus 5 }
+
+airFMStatusSystemActionTempF OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The system action air
+ temperature in tenths of degrees Fahrenheit. "
+ ::= { airFMStatus 6 }
+
+airFMStatusSystemActionHum OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The system action air humidity. "
+ ::= { airFMStatus 7 }
+
+airFMStatusSystemRemoteHighTempC OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The system remote high air
+ temperature in tenths of degrees Celsius. "
+ ::= { airFMStatus 8 }
+
+airFMStatusSystemRemoteHighTempF OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The system remote high air
+ temperature in tenths of degrees Fahrenheit. "
+ ::= { airFMStatus 9 }
+
+airFMStatusSystemRemoteAvgTempC OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The system remote average air
+ temperature in tenths of degrees Celsius. "
+ ::= { airFMStatus 10 }
+
+airFMStatusSystemRemoteAvgTempF OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The system remote average air
+ temperature in tenths of degrees Fahrenheit. "
+ ::= { airFMStatus 11 }
+
+airFMStatusSystemRemoteAvgHum OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The system remote average air
+ humidity. "
+ ::= { airFMStatus 12 }
+
+airFMStatusSystemRemoteLowTempC OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The system remote low air
+ temperature in tenths of degrees Celsius. "
+ ::= { airFMStatus 13 }
+
+airFMStatusSystemRemoteLowTempF OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The system remote low air
+ temperature in tenths of degrees Fahrenheit. "
+ ::= { airFMStatus 14 }
+
+airFMStatusSystemCoolingEnabled OBJECT-TYPE
+ SYNTAX INTEGER {
+ enabledYes (1),
+ enabledNo (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The state of the system cooling
+ function enable. "
+ ::= { airFMStatus 15 }
+
+airFMStatusSystemReheatingEnabled OBJECT-TYPE
+ SYNTAX INTEGER {
+ enabledYes (1),
+ enabledNo (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The state of the system reheating
+ function enable. "
+ ::= { airFMStatus 16 }
+
+airFMStatusSystemHumidifyEnabled OBJECT-TYPE
+ SYNTAX INTEGER {
+ enabledYes (1),
+ enabledNo (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The state of the system humidify
+ function enable. "
+ ::= { airFMStatus 17 }
+
+airFMStatusSystemDehumidifyEnabled OBJECT-TYPE
+ SYNTAX INTEGER {
+ enabledYes (1),
+ enabledNo (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The state of the system dehumidify
+ function enable. "
+ ::= { airFMStatus 18 }
+
+airFMStatusModuleTableSize OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of entries in the airFMStatusModuleTable. "
+ ::= { airFMStatus 19 }
+
+airFMStatusModuleTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF AirFMStatusModuleEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for getting information from each module
+ in the system. "
+ ::= { airFMStatus 20 }
+
+airFMStatusModuleEntry OBJECT-TYPE
+ SYNTAX AirFMStatusModuleEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The module to get status from."
+ INDEX { airFMStatusModuleIndex }
+ ::= { airFMStatusModuleTable 1 }
+
+AirFMStatusModuleEntry ::=
+ SEQUENCE {
+ airFMStatusModuleIndex INTEGER,
+ airFMStatusModuleOutputCapacity INTEGER,
+ airFMStatusModuleSupplyTempC INTEGER,
+ airFMStatusModuleSupplyTempF INTEGER,
+ airFMStatusModuleSupplyHum INTEGER,
+ airFMStatusModuleReturnTempC INTEGER,
+ airFMStatusModuleReturnTempF INTEGER,
+ airFMStatusModuleReturnHum INTEGER
+ }
+
+airFMStatusModuleIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index of the module information."
+ ::= { airFMStatusModuleEntry 1 }
+
+airFMStatusModuleOutputCapacity OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The module output capacity in kilowatts."
+ ::= { airFMStatusModuleEntry 2 }
+
+airFMStatusModuleSupplyTempC OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The module supply air temperature in
+ tenths of degrees Celsius. "
+ ::= { airFMStatusModuleEntry 3 }
+
+airFMStatusModuleSupplyTempF OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The module supply air temperature in
+ tenths of degrees Fahrenheit. "
+ ::= { airFMStatusModuleEntry 4 }
+
+airFMStatusModuleSupplyHum OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The module supply air humidity. "
+ ::= { airFMStatusModuleEntry 5 }
+
+airFMStatusModuleReturnTempC OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The module return air temperature in
+ tenths of degrees Celsius. "
+ ::= { airFMStatusModuleEntry 6 }
+
+airFMStatusModuleReturnTempF OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The module return air temperature in
+ tenths of degrees Fahrenheit. "
+ ::= { airFMStatusModuleEntry 7 }
+
+airFMStatusModuleReturnHum OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The module return air humidity. "
+ ::= { airFMStatusModuleEntry 8 }
+
+-- airFM AIR CONDITIONER GROUP DATA
+
+airFMGroupSysStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ statusOnLine (1),
+ statusIdle (2),
+ statusLoadShare (3),
+ statusOffLine (4),
+ statusFailed (5)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of this system within the group. "
+ ::= { airFMGroup 1 }
+
+airFMGroupSysRuntime OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The number of hours the system has been running. "
+ ::= { airFMGroup 2 }
+
+airFMGroupSysRole OBJECT-TYPE
+ SYNTAX INTEGER {
+ rolePrimary (1),
+ roleBackup (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The role of this system within the group. "
+ ::= { airFMGroup 3 }
+
+-- airPA Portable Air Conditioner Ident
+
+airPAIdentName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A character string identifying the device name. "
+ ::= { airPAIdent 1 }
+
+airPAModelNumber OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A character string identifying the device model number. "
+ ::= { airPAIdent 2 }
+
+airPADateOfManufacture OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A character string identifying when the device was produced. "
+ ::= { airPAIdent 3 }
+
+airPASerialNumber OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A character string identifying the device serial number. "
+ ::= { airPAIdent 4 }
+
+airPAFirmwareRevision OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A character string identifying the device firmware revision. "
+ ::= { airPAIdent 5 }
+
+airPAHardwareRevision OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A character string identifying the device hardware revision. "
+ ::= { airPAIdent 6 }
+
+-- airPA Portable Air Conditioner Status
+
+airPASystemPower OBJECT-TYPE
+ SYNTAX INTEGER {
+ powerON (1),
+ powerOFF (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The status of the unit's system power setting.
+
+ ON(1) The system power is turned on.
+ OFF(2) The system power is turned off. "
+ ::= { airPAStatus 1 }
+
+airPAOperatingMode OBJECT-TYPE
+ SYNTAX INTEGER {
+ modeOFF (1),
+ modeVENTING (2),
+ modeCOOLING (3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The current operating mode of the unit.
+
+ OFF(1) The system is off.
+ VENTING(2) The system's venting function is active.
+ COOLING(3) The system's cooling function is active. "
+ ::= { airPAStatus 2 }
+
+airPASetpointTempF OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The temperature setpoint in Fahrenheit to which the unit is controlling. "
+ ::= { airPAStatus 3 }
+
+airPASetpointTempC OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The temperature setpoint in Celsius to which the unity is controlling. "
+ ::= { airPAStatus 4 }
+
+airPABlowerSpeed OBJECT-TYPE
+ SYNTAX INTEGER {
+ speedLOW (1),
+ speedHIGH (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The unit's blower speed setting.
+
+ LOW(1) The blower speed is low.
+ HIGH(2) The blower speed is high. "
+ ::= { airPAStatus 5 }
+
+airPACompressor OBJECT-TYPE
+ SYNTAX INTEGER {
+ statusON (1),
+ statusOFF (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The unit's compressor status.
+
+ ON(1) The compressor is turned on.
+ OFF(2) The compressor is turned off. "
+ ::= { airPAStatus 6 }
+
+airPACondenserFan OBJECT-TYPE
+ SYNTAX INTEGER {
+ statusON (1),
+ statusOFF (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The unit's condenser fan status.
+
+ ON(1) The condenser fan is turned on.
+ OFF(2) The condenser fan is turned off. "
+ ::= { airPAStatus 7 }
+
+airPACondensatePump OBJECT-TYPE
+ SYNTAX INTEGER {
+ statusON (1),
+ statusOFF (2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The unit's condensate pump status.
+
+ ON(1) The condensate pump is turned on.
+ OFF(2) The condensate pump is turned off. "
+ ::= { airPAStatus 8 }
+
+airPASupplyTempF OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The supply temperature in degrees Fahrenheit. "
+ ::= { airPAStatus 9 }
+
+airPASupplyTempC OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The supply temperature in degrees Celsius. "
+ ::= { airPAStatus 10 }
+
+airPAReturnTempF OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The return temperature in degrees Fahrenheit. "
+ ::= { airPAStatus 11 }
+
+airPAReturnTempC OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The return temperature in degrees Celsius. "
+ ::= { airPAStatus 12 }
+
+airPARemoteTempF OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The remote temperature in degrees Fahrenheit. "
+ ::= { airPAStatus 13 }
+
+airPARemoteTempC OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The remote temperature in degrees Celsius. "
+ ::= { airPAStatus 14 }
+
+airPARemoteHumidity OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The remote humidity. "
+ ::= { airPAStatus 15 }
+
+-- RACK AIR REMOVAL UNIT IDENT
+
+rARUIdentTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF IdentRARUEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for query of the individual devices.
+ The number of entries is contained in the
+ rARUStatusAruDeviceCount OID."
+ ::= { rARUIdent 1 }
+
+rARUIdentEntry OBJECT-TYPE
+ SYNTAX IdentRARUEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The device to query."
+ INDEX { rARUIdentIndex}
+ ::= { rARUIdentTable 1 }
+
+IdentRARUEntry ::=
+ SEQUENCE {
+ rARUIdentIndex INTEGER,
+ rARUIdentName DisplayString
+ }
+
+rARUIdentIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the device entry."
+ ::= { rARUIdentEntry 1 }
+
+rARUIdentName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "A character string identifying the
+ device. "
+ ::= { rARUIdentEntry 2 }
+
+
+-- RACK AIR REMOVAL UNIT CONFIGURATION
+
+rARUConfigTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ConfigRARUEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for configuration of individual ARUs. The number of
+ entries is contained in the rARUStatusAruDeviceCount OID."
+ ::= { rARUConfig 1 }
+
+rARUConfigEntry OBJECT-TYPE
+ SYNTAX ConfigRARUEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The ARUs to configure."
+ INDEX { rARUConfigAruIndex }
+ ::= { rARUConfigTable 1 }
+
+ConfigRARUEntry ::=
+ SEQUENCE {
+ rARUConfigAruIndex INTEGER,
+ rARUConfigAruName DisplayString,
+ rARUConfigAruRemoteSetpoint INTEGER,
+ rARUConfigAruTempOvrdEnableDisable INTEGER,
+ rARUConfigAruTempOvrdSetpoint INTEGER
+ }
+
+rARUConfigAruIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the device entry."
+ ::= { rARUConfigEntry 1 }
+
+rARUConfigAruName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the ARU."
+ ::= { rARUConfigEntry 2 }
+
+rARUConfigAruRemoteSetpoint OBJECT-TYPE
+ SYNTAX INTEGER {
+ aruOff (1),
+ aru85F-29C (2),
+ aru90F-32C (3),
+ aru95F-35C (4),
+ aru100F-38C (5),
+ aru7kW (6),
+ aru5kW (7),
+ aru3kW (8),
+ aru2kW (9)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "This OID is the Remote setpoint of the ARU.
+ NOTE: -1 will be returned if the ARU is not communicating."
+
+ ::= { rARUConfigEntry 3 }
+
+rARUConfigAruTempOvrdEnableDisable OBJECT-TYPE
+ SYNTAX INTEGER {
+ disabled(1),
+ enabled(2)
+ }
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "This OID is used to enable/disable the remote temperature override setting of the ARU.
+
+ If this OID is set to 1, the remote setting for temperature override is disabled.
+ If this OID is set to 2, the remote setting for temperature override is enabled."
+ ::= { rARUConfigEntry 4 }
+
+rARUConfigAruTempOvrdSetpoint OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-write
+ STATUS mandatory
+ DESCRIPTION
+ "This OID is the Temperature Override setpoint of the ARU.
+ NOTE: -1 will be returned if the ARU is not communicating."
+
+ ::= { rARUConfigEntry 5 }
+
+-- RACK AIR REMOVAL UNIT STATUS
+
+rARUStatusAruDeviceCount OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The total number of ARUs accessible from this IP."
+ ::= { rARUStatus 1 }
+
+rARUStatusSysTempUnits OBJECT-TYPE
+ SYNTAX INTEGER {
+ celsius(1),
+ fahrenheit(2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The temperature scale used to display the temperature
+ in the system, Celsius(1) or Fahrenheit(2).
+ This setting is based on the system preferences
+ configuration in the agent."
+ ::= { rARUStatus 2 }
+
+rARUStatusTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF StatusRARUEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "Allows for access of individual ARUs. The number of
+ entries is contained in the rARUStatusAruDeviceCount OID."
+ ::= { rARUStatus 3 }
+
+rARUStatusEntry OBJECT-TYPE
+ SYNTAX StatusRARUEntry
+ ACCESS not-accessible
+ STATUS mandatory
+ DESCRIPTION
+ "The ARUs to access."
+ INDEX { rARUStatusAruIndex }
+ ::= { rARUStatusTable 1 }
+
+StatusRARUEntry ::=
+ SEQUENCE {
+ rARUStatusAruIndex INTEGER,
+ rARUStatusAruName DisplayString,
+ rARUStatusAruRemoteSetpoint INTEGER,
+ rARUStatusAruManualSetpoint INTEGER,
+ rARUStatusAruTemp1 INTEGER,
+ rARUStatusAruTemp2 INTEGER,
+ rARUStatusAruTemp3 INTEGER,
+ rARUStatusAruTempOvrdEnableDisable INTEGER,
+ rARUStatusAruTempOvrdSetpoint INTEGER,
+ rARUStatusAruAlarmState DisplayString,
+ rARUStatusAruCommStatus INTEGER
+ }
+
+rARUStatusAruIndex OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The index to the ARU entry."
+ ::= { rARUStatusEntry 1 }
+
+rARUStatusAruName OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The name of the ARU."
+ ::= { rARUStatusEntry 2 }
+
+rARUStatusAruRemoteSetpoint OBJECT-TYPE
+ SYNTAX INTEGER {
+ aruOff (1),
+ aru85F-29C (2),
+ aru90F-32C (3),
+ aru95F-35C (4),
+ aru100F-38C (5),
+ aru7kW (6),
+ aru5kW (7),
+ aru3kW (8),
+ aru2kW (9)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "ARU remote setpoint temperature setting.
+
+ NOTE: -1 will be returned if the ARU is not communicating.
+
+ Values are represented in whole number degrees.
+ Units are displayed in the scale shown in
+ the rARUStatusSysTempUnits OID (Celsius or Fahrenheit)."
+ ::= { rARUStatusEntry 3 }
+
+rARUStatusAruManualSetpoint OBJECT-TYPE
+ SYNTAX INTEGER {
+ aruOff (1),
+ aru85F-29C (2),
+ aru90F-32C (3),
+ aru95F-35C (4),
+ aru100F-38C (5),
+ aru7kW (6),
+ aru5kW (7),
+ aru3kW (8),
+ aru2kW (9),
+ aruRem (10)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "ARU manual setpoint temperature setting.
+
+ NOTE: -1 will be returned if the ARU is not communicating.
+
+ Values are represented in whole number degrees.
+ If the manual setpoint is set to Remote, this OID will return 0.
+ Units are displayed in the scale shown in
+ the rARUStatusSysTempUnits OID (Celsius or Fahrenheit)."
+ ::= { rARUStatusEntry 4 }
+
+rARUStatusAruTemp1 OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "ARU temperature probe #1 reading.
+
+ NOTE: -1 will be returned if the ARU is not communicating.
+
+ Values are represented in whole number degrees.
+ Units are displayed in the scale shown in
+ the rARUStatusSysTempUnits OID (Celsius or Fahrenheit)."
+ ::= { rARUStatusEntry 5 }
+
+rARUStatusAruTemp2 OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "ARU temperature probe #2 reading.
+
+ NOTE: -1 will be returned if the ARU is not communicating.
+
+ Values are represented in whole number degrees.
+ Units are displayed in the scale shown in
+ the rARUStatusSysTempUnits OID (Celsius or Fahrenheit)."
+ ::= { rARUStatusEntry 6 }
+
+rARUStatusAruTemp3 OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "ARU temperature probe #3 reading.
+
+ NOTE: -1 will be returned if the ARU is not communicating.
+
+ Values are represented in whole number degrees.
+ Units are displayed in the scale shown in
+ the rARUStatusSysTempUnits OID (Celsius or Fahrenheit)."
+ ::= { rARUStatusEntry 7 }
+
+rARUStatusAruTempOvrdEnableDisable OBJECT-TYPE
+ SYNTAX INTEGER {
+ disabled(1),
+ enabled(2)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "This OID indicates whether the ARU remote temperature override is enabled or disabled.
+ If this OID is a 1, the remote setting for temperature override is disabled.
+ If this OID is a 2, the remote setting for temperature override is enabled."
+ ::= { rARUStatusEntry 8 }
+
+rARUStatusAruTempOvrdSetpoint OBJECT-TYPE
+ SYNTAX INTEGER
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "ARU remote temperature override setpoint setting.
+
+ NOTE: -1 will be returned if the ARU is not communicating.
+
+ Values are represented in whole number degrees.
+ Units are displayed in the scale shown in
+ the rARUStatusSysTempUnits OID (Celsius or Fahrenheit)."
+ ::= { rARUStatusEntry 9 }
+
+rARUStatusAruAlarmState OBJECT-TYPE
+ SYNTAX DisplayString
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "An ASCII string containing the 8 flags representing
+ the current alarm state of the ARU. If the state of
+ the ARU is unknown, this variable is set to �UNKNOWN�.
+
+ The flags are numbered 1 to 8, read from left to
+ right. The flags are defined as follows:
+
+ Flag 1: Fan Fail 1
+ Flag 2: Fan Fail 2
+ Flag 3: Fan Fail 3
+ Flag 4: Smoke
+
+ Flag 5: High Temp (Out of Thermal Control)
+ Flag 6: Over Temp (Exhaust Temp. Exceeds Override Setpoint)
+ Flag 7: Reserved
+ Flag 8: Reserved"
+ ::= { rARUStatusEntry 10 }
+
+rARUStatusAruCommStatus OBJECT-TYPE
+ SYNTAX INTEGER {
+ commsNeverDiscovered(1),
+ commsEstablished(2),
+ commsLost(3)
+ }
+ ACCESS read-only
+ STATUS mandatory
+ DESCRIPTION
+ "The state of communications to the device.
+ commNeverDiscovered(1) indicates there has never been communications with this device.
+ commsEstablished(2) indicates communication is normal and active with this device.
+ commsLost(3) indicates communication had been established, but is no device."
+ ::= { rARUStatusEntry 11 }
+
+-- Traps
+-- Annotations are provided for Novell's NMS product
+--
+-- Each trap has at least one variable (mtrapargsString) which always appears
+-- as the last variable in the list. This variable contains either a static
+-- or dynamically-constructed string which provides an enhanced description of
+-- the trap's purpose and any pertinent information about the trap.
+
+communicationLost TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Communication to the UPS has been lost. Steps
+ to reestablish communication are in progress."
+ --#TYPE "APC UPS: Communication lost"
+ --#SUMMARY "Communication lost between the agent and the UPS."
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 1
+
+upsOverload TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The UPS has sensed a load greater than 100 percent
+ of its rated capacity."
+ --#TYPE "APC UPS: Overload"
+ --#SUMMARY "The UPS has sensed a load greater than 100 percent of its rated capacity."
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 2
+
+upsDiagnosticsFailed TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The UPS failed its internal diagnostic self-test."
+ --#TYPE "APC UPS: Failed self-test"
+ --#SUMMARY "The UPS has failed its internal self-test."
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 3
+
+upsDischarged TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The UPS batteries are discharged; if utility power fails
+ an immediate low battery condition will exist. Sufficient runtime
+ for necessary action cannot be guaranteed."
+ --#TYPE "APC UPS: batteries are discharged"
+ --#SUMMARY "The UPS batteries are discharged."
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 4
+
+upsOnBattery TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: The UPS has switched to battery backup power."
+ --#TYPE "APC UPS: On battery"
+ --#SUMMARY "The UPS has switched to battery backup power."
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 5
+
+smartBoostOn TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: The UPS has enabled SmartBoost(TM)."
+ --#TYPE "APC UPS: SmartBoost(TM)"
+ --#SUMMARY "The UPS has enabled SmartBoost(TM); low incoming line voltage."
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 6
+
+lowBattery TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The UPS batteries are low and will soon be exhausted.
+ If utility power is not restored the UPS will put itself
+ to 'sleep' and immediately cut power to the load."
+ --#TYPE "APC UPS: Low battery"
+ --#SUMMARY "The UPS system's batteries are low and will soon be exhausted."
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 7
+
+communicationEstablished TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Communication with the UPS has been established."
+ --#TYPE "APC UPS: Communication established"
+ --#SUMMARY "UPS communication has been established."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 8
+
+powerRestored TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Utility power has been restored."
+ --#TYPE "APC UPS: Utility power restored"
+ --#SUMMARY "Returned from battery backup power; utility power restored."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 9
+
+upsDiagnosticsPassed TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The UPS passed its internal self-test."
+ --#TYPE "APC UPS: Passed self-test"
+ --#SUMMARY "The UPS passed internal self-test."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 10
+
+returnFromLowBattery TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The UPS has returned from a low battery
+ condition."
+ --#TYPE "APC UPS: Returned from Low-Battery condition"
+ --#SUMMARY "The UPS has returned from a Low-Battery condition."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 11
+
+upsTurnedOff TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: The UPS has been turned 'off' by the management station."
+ --#TYPE "APC UPS: Turned off"
+ --#SUMMARY "The UPS has been switched off by a management station."
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE NONOPERATIONAL
+ ::= 12
+
+upsSleeping TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: The UPS is entering 'sleep' mode. Power
+ to the load will be cut off."
+ --#TYPE "APC UPS: Entered sleep mode"
+ --#SUMMARY "The UPS entered sleep mode. Power to the load will be cut off."
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE NONOPERATIONAL
+ ::= 13
+
+upsWokeUp TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATION: The UPS has returned from 'sleep' mode. Power
+ to the load has been restored."
+ --#TYPE "APC UPS: Wake up"
+ --#SUMMARY "The UPS has returned from sleep mode. Power to the load has been restored."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 14
+
+upsRebootStarted TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: The UPS has started its reboot sequence.
+ The UPS will reboot itself at this time."
+ --#TYPE "APC UPS: Starting reboot"
+ --#SUMMARY "The UPS has started its reboot sequence."
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE NONOPERATIONAL
+ ::= 15
+
+upsDipSwitchChanged TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: The dip switch settings on the UPS have been
+ changed, possibly altering UPS performance."
+ --#TYPE "APC UPS: DIP switch altered"
+ --#SUMMARY "The DIP switch settings on the UPS have been changed."
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 16
+
+upsBatteryNeedsReplacement TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The batteries of the UPS need immediate replacement."
+ --#TYPE "APC UPS: UPS batteries need replacement"
+ --#SUMMARY "The UPS batteries require immediate replacement."
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 17
+
+
+-- the Environmental Monitor traps
+
+contactFault TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: One of the contacts on the Environmental Monitor has
+ changed from its default position. The first variable is
+ the contact number that is faulted."
+ --#TYPE "APC Environment: Contact fault"
+ --#SUMMARY "An Environment contact closure has faulted."
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 18
+
+contactFaultResolved TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A fault on one of the Environmental Monitor contacts
+ has been resolved. The first variable is
+ the contact number that has been resolved."
+ --#TYPE "APC Environment: Contact fault cleared."
+ --#SUMMARY "A Environment contact closure has returned to it's default state."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 19
+
+-- the Matrix-UPS traps
+
+hardwareFailureBypass TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "SEVERE: UPS on bypass due to internal fault"
+ --#TYPE "APC UPS: On bypass due to internal fault"
+ --#SUMMARY "The UPS is on bypass due to an internal fault."
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 20
+
+softwareBypass TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: UPS on bypass - user set via software or panel"
+ --#TYPE "APC UPS: On bypass by user via software or panel"
+ --#SUMMARY "UPS put on bypass by user via software or front UPS panel."
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 21
+
+switchedBypass TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: UPS on bypass - initiated by user"
+ --#TYPE "APC UPS: On bypass initiated by user"
+ --#SUMMARY "UPS put on bypass by user."
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 22
+
+returnFromBypass TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: UPS has returned from bypass"
+ --#TYPE "APC UPS: UPS has returned from bypass"
+ --#SUMMARY "The UPS has returned from bypass mode."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 23
+
+bypassPowerSupplyFailure TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Base module bypass power supply needs repair"
+ --#TYPE "APC UPS: Base module bypass power supply needs repair"
+ --#SUMMARY "The base module bypass power supply needs repair."
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE NONOPERATIONAL
+ ::= 24
+
+baseFanFailure TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Base module fan needs repair"
+ --#TYPE "APC UPS: Base module fan needs repair"
+ --#SUMMARY "The base module fan needs repair."
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE NONOPERATIONAL
+ ::= 25
+
+batteryPackCommLost TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Check installation of external battery packs signal cable"
+ --#TYPE "APC UPS: Communication lost with battery packs"
+ --#SUMMARY "Communication lost with external battery packs, check battery signal cable."
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 26
+
+batteryPackCommEstablished TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: UPS is communicating with the external battery packs."
+ --#TYPE "APC UPS: Communication established with battery packs"
+ --#SUMMARY "Communication established with external battery packs."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 27
+
+calibrationStart TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A battery calibration test has been initiated on the UPS."
+ --#TYPE "APC UPS: Calibration initiated"
+ --#SUMMARY "A battery run time calibration test has been initiated."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 28
+
+-- Misc. Traps
+
+restartAgent TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Agent restarting as commanded by manager."
+ --#TYPE "APC SNMP Agent: Agent restarting"
+ --#SUMMARY "Agent restarting as commanded by manager."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 29
+
+upsTurnedOn TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A UPS is turned on."
+ --#TYPE "APC UPS: A UPS is turned on."
+ --#SUMMARY " A UPS is turned on."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 30
+
+smartAvrReducing TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: The UPS is reducing the line voltage via SmartTrim(TM)."
+ --#TYPE "APC UPS: SmartTrim(TM) reducing"
+ --#SUMMARY "The UPS has enabled SmartTrim(TM) voltage reduction."
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 31
+
+codeAuthenticationDone TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mconfigTFTPServerIP, newCodeAuthentViaTFTP }
+ DESCRIPTION
+ "INFORMATIONAL: Authentication on agent code image is done."
+ --#TYPE "APC CODE: Authentication on agent code image is done."
+ --#SUMMARY "Authentication on agent code image is done."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 32
+
+upsOverloadCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The overload condition has been cleared."
+ --#TYPE "APC UPS: Overload cleared."
+ --#SUMMARY "The overload condition has been cleared. ."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 33
+
+smartBoostOff TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The UPS has returned from SmartBoost(TM)."
+ --#TYPE "APC UPS: SmartBoost(TM) off."
+ --#SUMMARY "The UPS has returned from SmartBoost(TM)."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 34
+
+smartAvrReducingOff TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The UPS has returned from SmartTrim(TM)."
+ --#TYPE "APC UPS: SmartTrim(TM) reducing off"
+ --#SUMMARY "The UPS has returned from SmartTrim(TM) voltage reduction."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 35
+
+upsBatteryReplaced TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A bad battery fault has been cleared."
+ --#TYPE "APC UPS: Bad battery replaced"
+ --#SUMMARY "The UPS has returned from a bad battery fault."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 36
+
+calibrationEnd TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The UPS has finished calibrating."
+ --#TYPE "APC UPS: Calibration end"
+ --#SUMMARY "The UPS has finished calibrating"
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 37
+
+dischargeCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A UPS discharge condition has been cleared."
+ --#TYPE "APC UPS: Discharge cleared."
+ --#SUMMARY "The UPS discharge condition has been cleared."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 38
+
+gracefullShutdown TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A graceful shutdown has been initiated."
+ --#TYPE "APC UPS: A graceful shutdown has been initiated."
+ --#SUMMARY "A graceful shutdown has been initiated."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 39
+
+
+outletOn TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { sPDUOutletControlIndex }
+ DESCRIPTION
+ "WARNING: The specified PDU outlet has turned on.
+ If sPDUOutletControlIndex equals zero, then all outlets have
+ turned on."
+ --#TYPE "APC PDU: Outlet has been turned on."
+ --#SUMMARY "Outlet has been turned on"
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 41
+
+
+outletOff TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { sPDUOutletControlIndex }
+ DESCRIPTION
+ "WARNING: The specified PDU outlet has turned off.
+ If sPDUOutletControlIndex equals zero, then all outlets
+ have turned off."
+ --#TYPE "APC PDU: Outlet has turned off."
+ --#SUMMARY "Outlet has turned off."
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 42
+
+outletReboot TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { sPDUOutletControlIndex }
+ DESCRIPTION
+ "WARNING: The specified PDU outlet has rebooted.
+ If sPDUOutletControlIndex equals zero, then all outlets
+ have rebooted."
+ --#TYPE "APC PDU: Outlet has rebooted."
+ --#SUMMARY "Outlet has rebooted."
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 43
+
+configChangeSNMP TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: The SNMP configuration has been changed."
+ --#TYPE "APC: The SNMP configuration has been changed."
+ --#SUMMARY "The SNMP configuration has been changed."
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 44
+
+
+configChangeOutlet TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { sPDUOutletConfigIndex }
+ DESCRIPTION
+ "WARNING: The specified PDU outlet has changed configuration.
+ If sPDUOutletConfigIndex equals zero, then the Master outlet
+ has changed configuration."
+ --#TYPE "APC PDU: Outlet configuration has been changed."
+ --#SUMMARY "Outlet configuration has been changed."
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 45
+
+accessViolationConsole TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: Someone has attempted to login via the console with the incorrect password."
+ --#TYPE "APC: Access violation via the console."
+ --#SUMMARY "Three unsuccessful logins have been attempted via the console."
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 46
+
+accessViolationHTTP TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: Someone has attempted to login via HTTP with the incorrect password."
+ --#TYPE "APC: Access violation via HTTP."
+ --#SUMMARY "An unsuccessful attempt to login via HTTP."
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 47
+
+passwordChange TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: The password for the device has been changed."
+ --#TYPE "APC: Password change for the device."
+ --#SUMMARY "Someone has changed the password on the device."
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 48
+
+badVoltage TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: The output voltage is not within acceptable range."
+ --#TYPE "APC UPS: Bad output voltage."
+ --#SUMMARY "The output voltage is not within acceptable range."
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 49
+
+badVoltageCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The output voltage has returned to an acceptable level."
+ --#TYPE "APC UPS: The bad voltage output condition has been cleared."
+ --#SUMMARY "The output voltage has returned to an acceptable level."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 50
+
+chargerFailure TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: The battery charger has failed."
+ --#TYPE "APC UPS: The battery charger has failed."
+ --#SUMMARY "The battery charger has failed."
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 51
+
+chargerFailureCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The battery charger failure condition has been cleared."
+ --#TYPE "APC UPS: The battery charger failure condition cleared"
+ --#SUMMARY "The battery charger failure condition has been cleared."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 52
+
+batteryOverTemperature TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: The battery temperature threshold has been violated."
+ --#TYPE "APC UPS: The battery temperature threshold has been violated."
+ --#SUMMARY "The battery temperature threshold has been violated."
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 53
+
+batteryOverTemperatureCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The battery over temperature has been cleared."
+ --#TYPE "APC UPS: The battery over temperature has been cleared."
+ --#SUMMARY "The battery over temperature has been cleared."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 54
+
+ smartRelayFault TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: SmartBoost(TM) or SmartTrim(TM) relay fault."
+ --#TYPE "APC UPS: SmartBoost(TM) or SmartTrim(TM) relay fault."
+ --#SUMMARY "SmartBoost(TM) or SmartTrim(TM) relay fault."
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 55
+
+smartRelayFaultCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: SmartBoost(TM) or SmartTrim(TM) relay fault has been cleared."
+ --#TYPE "APC UPS: SmartBoost(TM) or SmartTrim(TM) relay fault cleared."
+ --#SUMMARY "SmartBoost(TM) or SmartTrim(TM) relay fault has been cleared."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 56
+
+humidityThresholdViolation1 TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Probe 1 humidity threshold violated. The
+ first variable is the current humidity."
+ --#TYPE "APC Environmental Monitor: Probe 1 humidity threshold violation"
+ --#SUMMARY "A humidity threshold has been violated on probe 1."
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 57
+
+humidityThresholdViolationCleared1 TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: An Environmental Monitor humidity threshold violation has been cleared on probe 1."
+ --#TYPE "APC Environmental Monitor: Probe 1 humidity violation cleared"
+ --#SUMMARY "A humidity threshold violation has been cleared on probe 1."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 58
+
+temperatureThresholdViolation1 TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: An Environmental Monitor temperature threshold has been violated on probe 1.
+ The first variable is the current temperature."
+ --#TYPE "APC Environmental Monitor: Probe 1 temperature violation"
+ --#SUMMARY "A temperature threshold has been violated on probe 1."
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 59
+
+temperatureThresholdViolationCleared1 TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: An Environmental Monitor temperature threshold violation has been cleared on probe 1."
+ --#TYPE "APC Environmental Monitor: Probe 1 temperature violation cleared"
+ --#SUMMARY "A temperature threshold violation has been cleared on probe 1."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 60
+
+humidityThresholdViolation2 TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: An Environmental Monitor humidity threshold has been violated on probe 2.
+ The first variable is the current humidity."
+ --#TYPE "APC Environmental Monitor: Probe 2 humidity violation"
+ --#SUMMARY "A humidity threshold has been violated on probe 2."
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 61
+
+humidityThresholdViolationCleared2 TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: An Environmental Monitor humidity threshold violation has been cleared on probe 2."
+ --#TYPE "APC Environmental Monitor: Probe 2 humidity violation cleared"
+ --#SUMMARY "A humidity threshold violation has been cleared on probe 2."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 62
+
+temperatureThresholdViolation2 TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: An Environmental Monitor temperature threshold has been violated on probe 2.
+ The first variable is the current temperature."
+ --#TYPE "APC Environmental Monitor: Probe 2 temperature violation"
+ --#SUMMARY "A temperature threshold has been violated on probe 2."
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 63
+
+temperatureThresholdViolationCleared2 TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: An Environmental Monitor temperature threshold violation has been cleared on probe 2."
+ --#TYPE "APC Environmental Monitor: Probe 2 temperature violation cleared"
+ --#SUMMARY "A temperature threshold violation has been cleared on probe 2."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 64
+
+mupsCommunicationEstablished TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Communication with the Environmental Monitor has been established."
+ --#TYPE "APC Environmental Monitor: Communication established"
+ --#SUMMARY "Communication established between the agent and the Environmental Monitor."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 65
+
+mupsCommunicationLost TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Communication to the Environmental Monitor has been lost. Steps
+ to reestablish communication are in progress."
+ --#TYPE "APC Environmental Monitor: Communication failure"
+ --#SUMMARY "Communication lost between the agent and the Environmental Monitor."
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 66
+
+batteryIncrease TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The number of batteries has increased."
+ --#TYPE "APC UPS: The number of batteries has increased."
+ --#SUMMARY "The number of batteries has increased."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 67
+
+batteryDecrease TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The number of batteries has decreased."
+ --#TYPE "APC UPS: The number of batteries has decreased."
+ --#SUMMARY "The number of batteries has decreased."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 68
+
+powerModuleIncrease TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The number of power modules has increased."
+ --#TYPE "APC UPS: The number of power modules has increased."
+ --#SUMMARY "The number of power modules has increased."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 69
+
+powerModuleDecrease TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The number of power modules has decreased."
+ --#TYPE "APC UPS: The number of power modules has decreased."
+ --#SUMMARY "The number of power modules has decreased."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 70
+
+intelligenceModuleInserted TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: An intelligence module has been inserted."
+ --#TYPE "APC UPS: An intelligence module has been inserted."
+ --#SUMMARY "An intelligence module has been inserted."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 71
+
+intelligenceModuleRemoved TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: An intelligence module has been removed."
+ --#TYPE "APC UPS: An intelligence module has been removed."
+ --#SUMMARY "An intelligence module has been removed."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 72
+
+rintelligenceModuleInserted TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A redundant intelligence module has been inserted."
+ --#TYPE "APC UPS: A redundant intelligence module has been inserted."
+ --#SUMMARY "A redundant intelligence module has been inserted."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 73
+
+rintelligenceModuleRemoved TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A redundant intelligence module has been removed."
+ --#TYPE "APC UPS: A redundant intelligence module has been removed."
+ --#SUMMARY "A redundant intelligence module has been removed."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 74
+
+extBatteryFrameIncease TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: An external battery frame has been added."
+ --#TYPE "APC UPS: An external battery frame has been added."
+ --#SUMMARY "An external battery frame has been added."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 75
+
+extBatteryFrameDecrease TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: An external battery frame has been removed."
+ --#TYPE "APC UPS: An external battery frame has been removed."
+ --#SUMMARY "An external battery frame has been removed."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 76
+
+abnormalCondition TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: An abnormal condition has been detected.
+ The first variable is the fault condition."
+ --#TYPE "APC: An abnormal condition has been detected."
+ --#SUMMARY "An abnormal condition has been detected."
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 77
+
+abnormalConditionCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: An abnormal condition has been cleared.
+ The first variable is the fault condition."
+ --#TYPE "APC: An abnormal condition has been cleared."
+ --#SUMMARY "An abnormal condition has been cleared."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 78
+
+deviceStatusChange TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString}
+ DESCRIPTION
+ "INFORMATIONAL: The status of the device being monitored has changed."
+ --#TYPE "APC : The status of the device being monitored has changed."
+ --#SUMMARY "The status of the device being monitored has changed."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 79
+
+noBatteries TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: The UPS has no batteries attached."
+ --#TYPE "APC UPS: No batteries attached."
+ --#SUMMARY "The UPS has no batteries attached."
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 80
+
+noBatteriesCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The UPS's batteries have been attached."
+ --#TYPE "APC UPS: The no batteries attached condition has been cleared."
+ --#SUMMARY "The UPS's batteries have been attached."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 81
+
+userAdded TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A new user has been added."
+ --#TYPE "APC: A new user has been added."
+ --#SUMMARY "A new user has been added."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 82
+
+userDeleted TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A user has been deleted."
+ --#TYPE "APC: A user has been deleted."
+ --#SUMMARY "A user has been deleted."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 83
+
+userModified TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A user has been modified."
+ --#TYPE "APC: A user has been modified."
+ --#SUMMARY "A user has been modified."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 84
+
+-- MasterSwitch Vm Traps
+
+msvmCommunicationEstablished TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { sPDUMasterControlVMIndex, sPDUMasterControlVMName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Communications with the MasterSwitch VM has been established."
+ --#TYPE "APC: Communications established with the MasterSwitch VM."
+ --#SUMMARY "Communications with the MasterSwitch VM has been established."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 85
+
+msvmCommunicationLost TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { sPDUMasterControlVMIndex, sPDUMasterControlVMName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Communications with the MasterSwitch VM has been lost."
+ --#TYPE "APC: Communications lost with the MasterSwitch VM."
+ --#SUMMARY "Communications with the MasterSwitch VM has been lost."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 86
+
+msvmOverload TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { sPDUMasterControlVMIndex, sPDUMasterControlVMName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The MasterSwitch VM in an overload condition."
+ --#TYPE "APC: The MasterSwitch VM is near or at an overload condition."
+ --#SUMMARY "The MasterSwitch VM is near or at an overload condition."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 87
+
+msvmOverloadCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { sPDUMasterControlVMIndex, sPDUMasterControlVMName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The overload condition on the MasterSwitch VM has been cleared."
+ --#TYPE "APC: The overload condition cleared on the MasterSwitch VM."
+ --#SUMMARY "The overload condition on the MasterSwitch VM has been cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 88
+
+msvmOutletOn TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { sPDUMasterControlVMIndex, sPDUMasterControlVMName,
+ sPDUOutletControlVMOutletIndex, sPDUOutletControlVMOutletName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: An outlet on the MasterSwitch VM has turned on."
+ --#TYPE "APC: An outlet on the MasterSwitch VM has turned on."
+ --#SUMMARY "An outlet on the MasterSwitch VM has turned on."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 89
+
+msvmOutletOff TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { sPDUMasterControlVMIndex, sPDUMasterControlVMName,
+ sPDUOutletControlVMOutletIndex, sPDUOutletControlVMOutletName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: An outlet on the MasterSwitch VM has turned off."
+ --#TYPE "APC: An outlet on the MasterSwitch VM has turned off."
+ --#SUMMARY "An outlet on the MasterSwitch VM has turned off."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 90
+
+msvmDeviceConfigChange TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { sPDUMasterControlVMIndex, sPDUMasterControlVMName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A device configuration change has been made on a MasterSwitch VM."
+ --#TYPE "APC: A device configuration change on a MasterSwitch VM."
+ --#SUMMARY "A device configuration change has been made on a MasterSwitch VM."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 91
+
+msvmOutletConfigChange TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { sPDUMasterControlVMIndex, sPDUMasterControlVMName,
+ sPDUOutletControlVMOutletIndex, sPDUOutletControlVMOutletName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: An outlet configuration change has been made on a MasterSwitch VM."
+ --#TYPE "APC: An outlet configuration change on a MasterSwitch VM."
+ --#SUMMARY "An outlet configuration change has been made on a MasterSwitch VM."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 92
+
+msvmLowLoad TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { sPDUMasterControlVMIndex, sPDUMasterControlVMName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The MasterSwitch VM has violated the low load threshold."
+ --#TYPE "APC: The MasterSwitch VM has violated the low load threshold."
+ --#SUMMARY "The MasterSwitch VM has violated the low load threshold."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 93
+
+msvmLowLoadCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { sPDUMasterControlVMIndex, sPDUMasterControlVMName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The low load condition on the MasterSwitch VM has been cleared."
+ --#TYPE "APC: The low load condition cleared on the MasterSwitch VM."
+ --#SUMMARY "The low load condition on the MasterSwitch VM has been cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 94
+
+msvmNearOverload TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { sPDUMasterControlVMIndex, sPDUMasterControlVMName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The MasterSwitch VM is approaching an overload condition."
+ --#TYPE "APC: The MasterSwitch VM is near or at an overload condition."
+ --#SUMMARY "The MasterSwitch VM is near or at an overload condition."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 95
+
+msvmNearOverloadCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { sPDUMasterControlVMIndex, sPDUMasterControlVMName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The near overload condition on the MasterSwitch VM has been cleared."
+ --#TYPE "APC: The overload condition cleared on the MasterSwitch VM."
+ --#SUMMARY "The overload condition on the MasterSwitch VM has been cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 96
+
+msvmPowerSupplyStatusChange TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { sPDUMasterControlVMIndex, sPDUMasterControlVMName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "WARNING: The power supply status of the MasterSwitch VM has changed."
+ --#TYPE "APC: The power supply status changed on MasterSwitch VM"
+ --#SUMMARY "The power supply status of the MasterSwitch VM has changed."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 97
+
+-- MasterSwitch plus (MSP) Traps
+
+mspCommunicationEstablished TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { sPDUMasterControlMSPIndex, sPDUMasterControlMSPName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Communications with the MasterSwitch plus has been established."
+ --#TYPE "APC: Communications established with the MasterSwitch plus."
+ --#SUMMARY "Communications with the MasterSwitch plus has been established."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 98
+
+mspCommunicationLost TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { sPDUMasterControlMSPIndex, sPDUMasterControlMSPName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Communications with the MasterSwitch plus has been lost."
+ --#TYPE "APC: Communications lost with the MasterSwitch plus."
+ --#SUMMARY "Communications with the MasterSwitch plus has been lost."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 99
+
+mspOutletOn TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { sPDUMasterControlMSPIndex, sPDUMasterControlMSPName,
+ sPDUOutletControlMSPOutletIndex, sPDUOutletControlMSPOutletName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: An outlet on the MasterSwitch plus has turned on."
+ --#TYPE "APC: An outlet on the MasterSwitch plus has turned on."
+ --#SUMMARY "An outlet on the MasterSwitch plus has turned on."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 100
+
+mspOutletOff TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { sPDUMasterControlMSPIndex, sPDUMasterControlMSPName,
+ sPDUOutletControlMSPOutletIndex, sPDUOutletControlMSPOutletName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: An outlet on the MasterSwitch plus has turned off."
+ --#TYPE "APC: An outlet on the MasterSwitch plus has turned off."
+ --#SUMMARY "An outlet on the MasterSwitch plus has turned off."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 101
+
+mspDeviceConfigChange TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { sPDUMasterControlMSPIndex, sPDUMasterControlMSPName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A device configuration change has been made on a MasterSwitch plus."
+ --#TYPE "APC: A device configuration change on a MasterSwitch plus."
+ --#SUMMARY "A device configuration change has been made on a MasterSwitch plus."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 102
+
+mspOutletConfigChange TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { sPDUMasterControlMSPIndex, sPDUMasterControlMSPName, sPDUOutletControlMSPOutletIndex, sPDUOutletControlMSPOutletName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: An outlet configuration change has been made on a MasterSwitch plus."
+ --#TYPE "APC: An outlet configuration change on a MasterSwitch plus."
+ --#SUMMARY "An outlet configuration change has been made on a MasterSwitch plus."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 103
+
+rsSourceSwitched TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsInteger02, mtrapargsString03, mtrapargsInteger, mtrapargsString02, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The Redundant Switch has switched source.
+ The first variable is an integer representing the current source: 0=A, 1=B.
+ The second variable is the 32-character name of the current source.
+ The third variable is an integer representing the transfer cause:
+ 0=No Transfers Recorded, 1=Due to user action or preferred switching,
+ 3=Due to line notch or spike, 5=Due to low line voltage,
+ 7=Transfer due to high line voltage,
+ 9=Transfer due to frequency out of range.
+ The fourth variable is a character string listing the transfer cause."
+ --#TYPE "APC Redundant Switch: The Redundant Switch has switched source"
+ --#SUMMARY "The Redundant Switch has switched source."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 104
+
+rsLostRedundancy TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsInteger, mtrapargsString02, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The Redundant Switch has lost redundancy.
+ The first variable is an integer representing the source which is no longer available: 0=A, 1=B.
+ The second variable is the 32-character name of the source which is no longer available."
+ --#TYPE "APC Redundant Switch: The Redundant Switch has lost redundancy"
+ --#SUMMARY "The Redundant Switch has has lost redundancy."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 105
+
+rsRedundancyRestored TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsInteger, mtrapargsString02, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Redundancy has been restored to the Redundant Switch .
+ The first variable is an integer representing the source which has been restored: 0=A, 1=B.
+ The second variable is the 32-character name of the source which has been restored."
+ --#TYPE "APC Redundant Switch: Redundancy has been restored."
+ --#SUMMARY "Redundancy has been restored to the Redundant Switch ."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 106
+
+rsConfigChange TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A configuration change has been made on a Redundant Switch."
+ --#TYPE "APC: A configuration change on a Redundant Switch."
+ --#SUMMARY "A configuration change has been made on a Redundant Switch."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 107
+
+rsCommunicationEstablished TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Communications with the Redundant Switch has been established."
+ --#TYPE "APC: Communications established with the Redundant Switch."
+ --#SUMMARY "Communications with the Redundant Switch has been established."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 108
+
+rsCommunicationLost TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Communications with the Redundant Switch has been lost."
+ --#TYPE "APC: Communications lost with the Redundant Switch."
+ --#SUMMARY "Communications with the Redundant Switch has been lost."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 109
+
+dcCommunicationEstablished TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Communications with the DC power plant has been established."
+ --#TYPE "APC: Communications established with the DC power plant."
+ --#SUMMARY "Communications with the DC power plant has been established."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 110
+
+dcCommunicationLost TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Communications with the DC power plant has been lost."
+ --#TYPE "APC: Communications lost with the DC power plant."
+ --#SUMMARY "Communications with the DC power plant has been lost."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 111
+
+dcPINChanged TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The active PIN on the DC controller has been changed."
+ --#TYPE "APC: The active PIN on the DC controller has been changed."
+ --#SUMMARY "The active PIN on the DC controller has been changed."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 112
+
+dcMajorAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "SEVERE: A Major alarm is active in the DC power plant."
+ --#TYPE "APC: A Major alarm is active in the DC power plant."
+ --#SUMMARY "A Major alarm is active in the DC power plant."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 113
+
+dcMajorAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A Major alarm is no longer active in the DC power plant."
+ --#TYPE "APC: A Major alarm is no longer active in the DC power plant."
+ --#SUMMARY "A Major alarm is no longer active in the DC power plant."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 114
+
+dcMinorAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: A Minor alarm is active in the DC power plant."
+ --#TYPE "APC: A Minor alarm is active in the DC power plant."
+ --#SUMMARY "A Minor alarm is active in the DC power plant."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 115
+
+dcMinorAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A Minor alarm is no longer active in the DC power plant."
+ --#TYPE "APC: A Minor alarm is no longer active in the DC power plant."
+ --#SUMMARY "A Minor alarm is no longer active in the DC power plant."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 116
+
+dcOutputRelayOn TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { dm3StatusOutRlyIndex, dm3StatusOutRlyName, mtrapargsString }
+ DESCRIPTION
+ "WARNING: An output relay for the powerplant has been activated (state changed to on).
+ The first variable is an integer representing the output relay number that has gone on.
+ The second variable is the 16-character name of the output relay."
+ --#TYPE "APC: An output relay has gone on."
+ --#SUMMARY "An output relay has gone on in the DC power plant."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 117
+
+dcOutputRelayOff TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { dm3StatusOutRlyIndex, dm3StatusOutRlyName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: An output relay for the powerplant has been deactivated (state changed to off).
+ The first variable is an integer representing the output relay number that has gone off.
+ The second variable is the 16-character name of the output relay."
+ --#TYPE "APC: An output relay has gone off."
+ --#SUMMARY "An output relay has gone off in the DC power plant."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 118
+
+dcInputRelayOn TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { dm3StatusInRlyIndex, dm3StatusInRlyName, mtrapargsString }
+ DESCRIPTION
+ "WARNING: An input relay for the powerplant has been activated (state changed to on).
+ The first variable is an integer representing the input relay number that has gone on.
+ The second variable is the 16-character name of the input relay."
+ --#TYPE "APC: An input relay has gone on."
+ --#SUMMARY "An input relay has gone on in the DC power plant."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 119
+
+dcInputRelayOff TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { dm3StatusInRlyIndex, dm3StatusInRlyName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: An input relay for the powerplant has been deactivated (state changed to off).
+ The first variable is an integer representing the input relay number that has gone off.
+ The second variable is the 16-character name of the input relay."
+ --#TYPE "APC: An input relay has gone off."
+ --#SUMMARY "An input relay has gone off in the DC power plant."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 120
+
+logicPowerSuppliesIncreased TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The number of system power supplies has increased."
+ --#TYPE "APC UPS: The number of system power supplies has increased."
+ --#SUMMARY "The number of system power supplies has increased."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 121
+
+logicPowerSuppliesDecreased TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The number of system power supplies has decreased."
+ --#TYPE "APC UPS: The number of system power supplies has decreased."
+ --#SUMMARY "The number of system power supplies has decreased."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 122
+
+externalSwitchGearClosed TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString02, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: External Switch Gear closed."
+ --#TYPE "APC UPS: External Switch Gear closed."
+ --#SUMMARY "External Switch Gear closed."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 123
+
+externalSwitchGearOpened TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString02, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: External Switch Gear opened."
+ --#TYPE "APC UPS: External Switch Gear opened."
+ --#SUMMARY "External Switch Gear opened."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 124
+
+generalDeviceEvent TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: APC Device event."
+ --#TYPE "APC Device event"
+ --#SUMMARY "APC Device event."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 125
+
+atsSourceSwitched TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsInteger, mtrapargsString02, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The Automatic Transfer Switch has switched source.
+ The first variable is an integer representing the current source: 0=A, 1=B.
+ The second variable is the 32-character name of the current source."
+ --#TYPE "APC Automatic Transfer Switch: The ATS has switched source"
+ --#SUMMARY "The Automatic Transfer Switch has switched source."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 126
+
+atsLostRedundancy TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsInteger, mtrapargsString02, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The Automatic Transfer Switch has lost redundancy.
+ The first variable is an integer representing the source which is no longer available: 0=A, 1=B.
+ The second variable is the 32-character name of the source which is no longer available."
+ --#TYPE "APC Automatic Transfer Switch: The ATS has lost redundancy. "
+ --#SUMMARY "The Automatic Transfer Switch has has lost redundancy."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 127
+
+atsRedundancyRestored TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsInteger, mtrapargsString02, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Redundancy has been restored to the Automatic Transfer Switch .
+ The first variable is an integer representing the source which has been restored: 0=A, 1=B.
+ The second variable is the 32-character name of the source which has been restored."
+ --#TYPE "APC Automatic Transfer Switch: Redundancy has been restored."
+ --#SUMMARY "Redundancy has been restored to the Automatic Transfer Switch ."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 128
+
+atsConfigChange TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A configuration change has been made on the Automatic Transfer Switch.
+ The first variable is an integer representing the configuration setting which changed:
+ 0=Transfer Voltage Range, 1=Sensitivity 2=Preferred Source
+ 3=Front Panel Lockout 4=Current Limit"
+ --#TYPE "APC Automatic Transfer Switch: ATS configuration changed."
+ --#SUMMARY "A configuration change has been made on a Automatic Transfer Switch."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 129
+
+atsCommunicationEstablished TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Communications with the Automatic Transfer Switch has been established."
+ --#TYPE "APC Automatic Transfer Switch: Communications established."
+ --#SUMMARY "Communications with the Automatic Transfer Switch has been established."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 130
+
+atsCommunicationLost TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Communications with the Automatic Transfer Switch has been lost."
+ --#TYPE "APC Automatic Transfer Switch: Communications lost."
+ --#SUMMARY "Communications with the Automatic Transfer Switch has been lost."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 131
+
+atsOverCurrent TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Output Current has exceeded threshold."
+ --#TYPE "APC Automatic Transfer Switch: Output Current exceeded threshold"
+ --#SUMMARY "Output Current has exceeded Threshold. "
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 132
+
+atsOverCurrentCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Output Current has returned below threshold."
+ --#TYPE "APC Automatic Transfer Switch: Output Current below threshold."
+ --#SUMMARY "Output Current has returned below threshold."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 133
+
+atsPowerSupplyFailure TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The Automatic Transfer Switch Power Supply has failed.
+ The first variable is an integer representing the Power Supply which
+ has failed: 0=24V, 1=12V 2=5V."
+ --#TYPE "APC Automatic Transfer Switch: The ATS Power Supply has failed."
+ --#SUMMARY "The Automatic Transfer Switch Power Supply has failed."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 134
+
+atsPowerSupplyFailureCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The Automatic Transfer Power Supply Failure Cleared.
+ The first variable is an integer representing the Power Supply which
+ has cleared: 0=24V, 1=12V 2=5V."
+ --#TYPE "APC Automatic Transfer Switch: Power Supply Failure Cleared."
+ --#SUMMARY "The Automatic Transfer Switch Power Supply Failure Cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 135
+
+dcMainsFailAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: A Mains Fail alarm is active in the DC power plant."
+ --#TYPE "APC: A Mains Fail alarm is active in the DC power plant."
+ --#SUMMARY "A Mains Fail alarm is active in the DC power plant."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 136
+
+dcMainsFailAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Mains Fail alarm is no longer active in the DC power plant."
+ --#TYPE "APC: Mains Fail alarm is no longer active in the DC power plant."
+ --#SUMMARY "Mains Fail alarm is no longer active in the DC power plant."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 137
+
+dcFanFailAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: A Fan Fail alarm is active in the DC power plant."
+ --#TYPE "APC: A Fan Fail alarm is active in the DC power plant."
+ --#SUMMARY "A Fan Fail alarm is active in the DC power plant."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 138
+
+dcFanFailAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A Fan Fail alarm is no longer active in the DC power plant."
+ --#TYPE "APC: A Fan Fail alarm is no longer active in the DC power plant."
+ --#SUMMARY "A Fan Fail alarm is no longer active in the DC power plant."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 139
+
+dcRectifierOvertempAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: Rect. Overtemp alarm is active in the power plant."
+ --#TYPE "APC: Rect. Overtemp alarm is active in the power plant."
+ --#SUMMARY "Rect. Overtemp alarm is active in the power plant."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 140
+
+dcRectifierOvertempAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Rect. Overtemp alarm is no longer active in the power plant."
+ --#TYPE "APC: Rect. Overtmp alarm is no longer active in the power plant."
+ --#SUMMARY "Rect. Overtmp alarm is no longer active in the power plant."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 141
+
+dcCurrentLimitAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: A Current Limit alarm is active in the power plant."
+ --#TYPE "APC: A Current Limit alarm is active in the power plant."
+ --#SUMMARY "A Current Limit alarm is active in the power plant."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 142
+
+dcCurrentLimitAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Current Limit alarm is no longer active in the power plant."
+ --#TYPE "APC: Current Limit alarm is no longer active in the power plant."
+ --#SUMMARY "Current Limit alarm is no longer active in the power plant."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 143
+
+dcRectifierFailAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: A Rect. Fail alarm is active in the power plant."
+ --#TYPE "APC: A Rect. Fail alarm is active in the power plant."
+ --#SUMMARY "A Rect. Fail alarm is active in the power plant."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 144
+
+dcRectifierFailAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Rect. Fail alarm is no longer active in the power plant."
+ --#TYPE "APC: Rect. Fail alarm is no longer active in the power plant."
+ --#SUMMARY "Rect. Fail alarm is no longer active in the power plant."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 145
+
+dcMultRectFailAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: Multiple Rect. Fail alarm is active in the powerplant."
+ --#TYPE "APC: Multiple Rect. Fail alarm is active in the powerplant."
+ --#SUMMARY "Multiple Rect. Fail alarm is active in the powerplant."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 146
+
+dcMultRectFailAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Mult Rect Fail alarm is no longer active in the powerplant."
+ --#TYPE "APC: Mult Rect Fail alarm is no longer active in the powerplant."
+ --#SUMMARY "Mult Rect Fail alarm is no longer active in the powerplant."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 147
+
+dcBatteryBreakerAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: Batt. Breaker alarm is active in the power plant."
+ --#TYPE "APC: Batt. Breaker alarm is active in the power plant."
+ --#SUMMARY "Batt. Breaker alarm is active in the power plant."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 148
+
+dcBatteryBreakerAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Batt. Breaker alarm is no longer active in the power plant."
+ --#TYPE "APC: Batt. Breaker alarm is no longer active in the power plant."
+ --#SUMMARY "Batt. Breaker alarm is no longer active in the power plant."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 149
+
+dcRectifierOVPAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: A Rect. OVP alarm is active in the power plant."
+ --#TYPE "APC: A Rect. OVP alarm is active in the power plant."
+ --#SUMMARY "A Rect. OVP alarm is active in the power plant."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 150
+
+dcRectifierOVPAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A Rect. OVP alarm is no longer active in the power plant."
+ --#TYPE "APC: A Rect. OVP alarm is no longer active in the power plant."
+ --#SUMMARY "A Rect. OVP alarm is no longer active in the power plant."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 151
+
+dcLVDImminentAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: A LVD Imminent alarm is active in the powerplant."
+ --#TYPE "APC: A LVD Imminent alarm is active in the powerplant."
+ --#SUMMARY "A LVD Imminent alarm is active in the powerplant."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 152
+
+dcLVDImminentAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A LVD Imminent alarm is no longer active in the powerplant."
+ --#TYPE "APC: A LVD Imminent alarm is no longer active in the powerplant."
+ --#SUMMARY "A LVD Imminent alarm is no longer active in the powerplant."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 153
+
+dcFuseCBAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: A Fuse/CB alarm is active in the DC power plant."
+ --#TYPE "APC: A Fuse/CB alarm alarm is active in the DC power plant."
+ --#SUMMARY "A Fuse/CB alarm is active in the DC power plant."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 154
+
+dcFuseCBAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A Fuse/CB alarm is no longer active in the DC power plant."
+ --#TYPE "APC: A Fuse/CB alarm is no longer active in the DC power plant."
+ --#SUMMARY "A Fuse/CB alarm is no longer active in the DC power plant."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 155
+
+dcBatteryTestFail TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: A Battery Test failed in the DC power plant."
+ --#TYPE "APC: A Battery Test failed in the DC power plant."
+ --#SUMMARY "A Battery Test failed in the DC power plant."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 156
+
+dcTemperatureAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: A Temperature is active in the power plant."
+ --#TYPE "APC: A Temperature alarm is active in the power plant."
+ --#SUMMARY "A Temperature alarm is active in the power plant."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 157
+
+dcTemperatureAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A Temperature alarm is no longer active in the power plant."
+ --#TYPE "APC: A Temperature alarm is no longer active in the power plant."
+ --#SUMMARY "A Temperature alarm is no longer active in the power plant."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 158
+
+dcHumidityAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: A Humidity alarm is active in the DC power plant."
+ --#TYPE "APC: A Humidity alarm is active in the DC power plant."
+ --#SUMMARY "A Humidity alarm is active in the DC power plant."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 159
+
+dcHumidityAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A Humidity alarm is no longer active in the DC power plant."
+ --#TYPE "APC: A Humidity alarm is no longer active in the DC power plant."
+ --#SUMMARY "A Humidity alarm is no longer active in the DC power plant."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 160
+
+dcBBCommunicationEstablished TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Power plant bridging board communications established."
+ --#TYPE "APC: Power plant bridging board communications established."
+ --#SUMMARY "Power plant bridging board communications established."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 161
+
+dcBBCommunicationLost TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Power plant bridging board communications lost."
+ --#TYPE "APC: Power plant bridging board communications lost."
+ --#SUMMARY "Power plant bridging board communications lost."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 162
+
+iemHighTempThresholdViolation TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { iemStatusProbeCurrentTemp, iemStatusProbeTempUnits, iemStatusProbeNumber,
+ iemStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: High temperature threshold violated on Integrated
+ Environmental Monitor probe. The first variable is the
+ current temperature. The second variable is the temperature
+ scale. The third variable is the probe number. The fourth
+ variable is the probe name."
+ --#TYPE "APC IEM: High temperature threshold violation."
+ --#SUMMARY "High temperature threshold violation."
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 163
+
+iemHighTempThresholdViolationCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { iemStatusProbeNumber, iemStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: High temperature threshold violated on Integrated
+ Environmental Monitor probe has been cleared. The first variable
+ is the probe number. The second variable is the probe name."
+ --#TYPE "APC IEM: High temperature threshold violation cleared."
+ --#SUMMARY "High temperature threshold violation has been cleared."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 164
+
+iemLowTempThresholdViolation TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { iemStatusProbeCurrentTemp, iemStatusProbeTempUnits, iemStatusProbeNumber,
+ iemStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Low temperature threshold violated on integrated
+ probe. The first variable is the current temperature. The
+ second variable is the temperature scale. The third
+ variable is the probe number. The fourth variable is the
+ probe name."
+ --#TYPE "APC IEM: Low temperature threshold violation."
+ --#SUMMARY "Low temperature threshold violation."
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 165
+
+iemLowTempThresholdViolationCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { iemStatusProbeNumber, iemStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Low temperature threshold violated on integrated
+ probe has been cleared. The first variable is the probe number.
+ The second variable is the probe name."
+ --#TYPE "APC IEM: Low temperature threshold violation cleared."
+ --#SUMMARY "Low temperature threshold violation has been cleared."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 166
+
+iemHighHumidThresholdViolation TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { iemStatusProbeCurrentHumid, iemStatusProbeNumber, iemStatusProbeName,
+ mtrapargsString }
+ DESCRIPTION
+ "SEVERE: High humidity threshold violated on integrated
+ probe. The first variable is the current humidity. The
+ second variable is the probe number. The third variable
+ is the probe name."
+ --#TYPE "APC IEM: High humidity threshold violation."
+ --#SUMMARY "High humidity threshold violation."
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 167
+
+iemHighHumidThresholdViolationCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { iemStatusProbeNumber, iemStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: High humidity threshold violated on integrated
+ probe cleared. The first variable is the probe number. The second
+ variable is the probe name."
+ --#TYPE "APC IEM: High humidity threshold violation cleared."
+ --#SUMMARY "High humidity threshold violation has been cleared."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 168
+
+iemLowHumidThresholdViolation TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { iemStatusProbeCurrentHumid, iemStatusProbeNumber, iemStatusProbeName,
+ mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Low humidity threshold violated on integrated
+ probe. The first variable is the current humidity. The
+ second variable is the probe number. The third variable
+ is the probe name."
+ --#TYPE "APC IEM: Low humidity threshold violation."
+ --#SUMMARY "Low humidity threshold violation."
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 169
+
+iemLowHumidThresholdViolationCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { iemStatusProbeNumber, iemStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Low humidity threshold violated on integrated
+ probe cleared. The first variable is the probe number. The second
+ variable is the probe name."
+ --#TYPE "APC IEM: Low humidity threshold violation cleared."
+ --#SUMMARY "Low humidity threshold violation has been cleared."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 170
+
+iemProbeDisconnected TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: The temperature/humidity probe on the Integrated
+ Environmental Monitor has been disconnected. This trap is
+ generated when a probe that has been in communication with
+ the Environmental Monitor has been disconnected or can no
+ longer communicate."
+ --#TYPE "APC IEM: Probe disconnected."
+ --#SUMMARY "Probe has been disconnected."
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 171
+
+iemProbeConnected TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The temperature/humidity probe on the Integrated
+ Environmental Monitor has been connected. This trap is generated
+ when the Environmental Monitor establishes communication with a
+ probe that had previously not been connected."
+ --#TYPE "APC IEM: Probe Connected."
+ --#SUMMARY "Probe has been connected."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 172
+
+iemContactFault TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { iemStatusContactNumber, iemStatusContactName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: There is a contact fault on the Integrated
+ Environmental Monitor. The first argument is the number
+ of the contact. The second argument is the name of the
+ contact."
+ --#TYPE "APC IEM: Contact fault."
+ --#SUMMARY "Contact fault."
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 173
+
+iemContactFaultCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { iemStatusContactNumber, iemStatusContactName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The contact fault on the Integrated
+ Environmental Monitor has been cleared. The first
+ argument is the number of the contact. The second
+ argument is the name of the contact."
+ --#TYPE "APC IEM: Contact fault."
+ --#SUMMARY "Contact fault cleared."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 174
+
+iemRelayFault TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { iemStatusRelayNumber, iemStatusRelayName, mtrapargsString02, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The output relay on the Integrated Environmental
+ Monitor has switched to the fault state. The first
+ argument is the number of the output relay. The second
+ argument is the name of the output relay. The third
+ argument is the event that caused the fault."
+ --#TYPE "APC IEM: Output relay fault."
+ --#SUMMARY "Output relay has faulted."
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 175
+
+iemRelayFaultCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { iemStatusRelayNumber, iemStatusRelayName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The fault condition on the output relay on the
+ Integrated Environmental Monitor has cleared. The first
+ argument is the number of the output relay. The second
+ argument is the name of the output relay."
+ --#TYPE "APC IEM: Output relay fault condition cleared."
+ --#SUMMARY "Output relay fault cleared."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 176
+
+bmBatManCommEstab TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Serial Communications Established with Battery Manager."
+ --#TYPE "BatMan : Communications Established."
+ --#SUMMARY "Communications Established."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 177
+
+bmBatManCommLost TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Serial Communications Lost with Battery Manager."
+ --#TYPE "BatMan : Communications Lost."
+ --#SUMMARY "Communications Lost."
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 178
+
+bmBatManKneeAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Battery Voltage Knee Threshold Alarm Detected."
+ --#TYPE "BatMan : Knee Alarm Detected."
+ --#SUMMARY "Knee Alarm Detected."
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 179
+
+bmBatManKneeAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Battery Voltage Knee Threshold Alarm Cleared."
+ --#TYPE "BatMan : Knee Alarm Cleared."
+ --#SUMMARY "Knee Alarm Cleared."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 180
+
+bmBatManChargerAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "WARNING: Charger Alarm Detected."
+ --#TYPE "BatMan : Charger Alarm Detected."
+ --#SUMMARY "Charger Alarm Detected."
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 181
+
+bmBatManChargerAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Charger Alarm Cleared."
+ --#TYPE "BatMan : Charger Alarm Cleared."
+ --#SUMMARY "Charger Alarm Cleared."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 182
+
+bmBatManBatteryAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "WARNING: Battery Alarm Detected."
+ --#TYPE "BatMan : Battery Alarm Detected."
+ --#SUMMARY "Battery Alarm Detected."
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 183
+
+bmBatManBatteryAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Battery Alarm Cleared."
+ --#TYPE "BatMan : Battery Alarm Cleared."
+ --#SUMMARY "Battery Alarm Cleared."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 184
+
+bmBatManEnvironmentAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "WARNING: Environment Alarm Detected."
+ --#TYPE "BatMan : Environment Alarm Detected."
+ --#SUMMARY "Environment Alarm Detected."
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 185
+
+bmBatManEnvironmentAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Environment Alarm Cleared."
+ --#TYPE "BatMan : Environment Alarm Cleared."
+ --#SUMMARY "Environment Alarm Cleared."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 186
+
+bmBatManMaintenanceAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Maintenance Alarm Detected."
+ --#TYPE "BatMan : Maintenance Due Alarm Detected."
+ --#SUMMARY "Maintenance Due Alarm Detected."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 187
+
+bmBatManMaintenanceAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Maintenance Alarm Cleared."
+ --#TYPE "BatMan : Maintenance Due Alarm Cleared."
+ --#SUMMARY "Maintenance Due Alarm Cleared."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 188
+
+pduCommunicationEstablished TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Communication Established.
+ The first argument is the serial number.
+ The second argument is the device name."
+ --#TYPE "APC PDU: Communication Established."
+ --#SUMMARY "Communication Established."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 189
+
+pduCommunicationLost TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Communication Lost.
+ The first argument is the serial number.
+ The second argument is the device name."
+ --#TYPE "APC PDU: Communication Lost."
+ --#SUMMARY "Communication Lost."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 190
+
+pduUtilityLineUndervoltage TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Utility Line Undervoltage.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the phase number."
+ --#TYPE "APC PDU: Utility Line Undervoltage."
+ --#SUMMARY "Utility Line Undervoltage."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 191
+
+pduUtilityLineUndervoltageCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Utility Line Undervoltage Cleared.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the phase number."
+ --#TYPE "APC PDU: Utility Line Undervoltage Cleared."
+ --#SUMMARY "Utility Line Undervoltage Cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 192
+
+pduUtilityLineOvervoltage TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Utility Line Overvoltage.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the phase number."
+ --#TYPE "APC PDU: Utility Line Overvoltage."
+ --#SUMMARY "Utility Line Overvoltage."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 193
+
+pduUtilityLineOvervoltageCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Utility Line Overvoltage Cleared.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the phase number."
+ --#TYPE "APC PDU: Utility Line Overvoltage Cleared."
+ --#SUMMARY "Utility Line Overvoltage Cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 194
+
+pduGroundOvercurrent TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Ground Overcurrent.
+ The first argument is the serial number.
+ The second argument is the device name."
+ --#TYPE "APC PDU: Ground Overcurrent."
+ --#SUMMARY "Ground Overcurrent."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 195
+
+pduGroundOvercurrentCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Ground Overcurrent Cleared.
+ The first argument is the serial number.
+ The second argument is the device name."
+ --#TYPE "APC PDU: Ground Overcurrent Cleared."
+ --#SUMMARY "Ground Overcurrent Cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 196
+
+pduCircuitPanelInputUndervoltage TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Circuit Panel Input Undervoltage.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the phase number."
+ --#TYPE "APC PDU: Circuit Panel Input Undervoltage."
+ --#SUMMARY "Circuit Panel Input Undervoltage."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 197
+
+pduCircuitPanelInputUndervoltageCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Circuit Panel Input Undervoltage Cleared.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the phase number."
+ --#TYPE "APC PDU: Circuit Panel Input Undervoltage Cleared."
+ --#SUMMARY "Circuit Panel Input Undervoltage Cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 198
+
+pduCircuitPanelInputOvervoltage TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Circuit Panel Input Overvoltage.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the phase number."
+ --#TYPE "APC PDU: Circuit Panel Input Overvoltage."
+ --#SUMMARY "Circuit Panel Input Overvoltage."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 199
+
+pduCircuitPanelInputOvervoltageCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Circuit Panel Input Overvoltage Cleared.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the phase number."
+ --#TYPE "APC PDU: Circuit Panel Input Overvoltage Cleared."
+ --#SUMMARY "Circuit Panel Input Overvoltage Cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 200
+
+pduCircuitPanelInputUndercurrent TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Circuit Panel Input Undercurrent.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the phase number."
+ --#TYPE "APC PDU: Circuit Panel Input Undercurrent."
+ --#SUMMARY "Circuit Panel Input Undercurrent."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 201
+
+pduCircuitPanelInputUndercurrentCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Circuit Panel Input Undercurrent Cleared.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the phase number."
+ --#TYPE "APC PDU: Circuit Panel Input Undercurrent Cleared."
+ --#SUMMARY "Circuit Panel Input Undercurrent Cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 202
+
+pduCircuitPanelInputOvercurrent TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Circuit Panel Input Overcurrent.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the phase number."
+ --#TYPE "APC PDU: Circuit Panel Input Overcurrent."
+ --#SUMMARY "Circuit Panel Input Overcurrent."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 203
+
+pduCircuitPanelInputOvercurrentCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Circuit Panel Input Overcurrent Cleared.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the phase number."
+ --#TYPE "APC PDU: Circuit Panel Input Overcurrent Cleared."
+ --#SUMMARY "Circuit Panel Input Overcurrent Cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 204
+
+pduCircuitPanelFrequencyOutOfRange TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Circuit Panel Input Frequency Out Of Range.
+ The first argument is the serial number.
+ The second argument is the device name."
+ --#TYPE "APC PDU: Circuit Panel Input Frequency Out Of Range."
+ --#SUMMARY "Circuit Panel Input Frequency Out Of Range."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 205
+
+pduCircuitPanelFrequencyOutofRangeCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Circuit Panel Input Frequency No Longer Out Of Range.
+ The first argument is the serial number.
+ The second argument is the device name."
+ --#TYPE "APC PDU: Circuit Panel Input Frequency No Longer Out Of Range."
+ --#SUMMARY "Circuit Panel Input Frequency No Longer Out Of Range."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 206
+
+pduCircuitPanelNeutralOvercurrent TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Circuit Panel Input Neutral Overcurrent.
+ The first argument is the serial number.
+ The second argument is the device name."
+ --#TYPE "APC PDU: Circuit Panel Input Neutral Overcurrent."
+ --#SUMMARY "Circuit Panel Input Neutral Overcurrent."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 207
+
+pduCircuitPanelNeutralOvercurrentCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Circuit Panel Input Neutral Overcurrent Cleared.
+ The first argument is the serial number.
+ The second argument is the device name."
+ --#TYPE "APC PDU: Circuit Panel Input Neutral Overcurrent Cleared."
+ --#SUMMARY "Circuit Panel Input Neutral Overcurrent Cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 208
+
+pduSystemOff TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: PDU System Off.
+ The first argument is the serial number.
+ The second argument is the device name."
+ --#TYPE "APC PDU: System Off."
+ --#SUMMARY "PDU System Off."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 209
+
+pduOnBatteryMode TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: PDU is in On Battery Mode.
+ The first argument is the serial number.
+ The second argument is the device name."
+ --#TYPE "APC PDU: On Battery Mode."
+ --#SUMMARY "PDU is in On Battery Mode."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 210
+
+pduMaintenanceBypassMode TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: PDU is in Maintenance Bypass Mode.
+ The first argument is the serial number.
+ The second argument is the device name."
+ --#TYPE "APC PDU: Maintenance Bypass Mode."
+ --#SUMMARY "PDU is in Maintenance Bypass Mode."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 211
+
+pduAtypicalBypassMode TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
+ DESCRIPTION
+ "WARNING: PDU is in Atypical Bypass Mode.
+ The first argument is the serial number.
+ The second argument is the device name."
+ --#TYPE "APC PDU: Atypical Bypass Mode."
+ --#SUMMARY "PDU is in Atypical Bypass Mode."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 212
+
+pduNoPanelFeedMode TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: PDU is in No Panel Feed Mode.
+ The first argument is the serial number.
+ The second argument is the device name."
+ --#TYPE "APC PDU: No Panel Feed Mode."
+ --#SUMMARY "PDU is in No Panel Feed Mode."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 213
+
+pduUpsOperationMode TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: PDU is in Ups Operation Mode.
+ The first argument is the serial number.
+ The second argument is the device name."
+ --#TYPE "APC PDU: Ups Operation Mode."
+ --#SUMMARY "PDU is in Ups Operation Mode."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 214
+
+pduForcedBypassMode TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
+ DESCRIPTION
+ "WARNING: PDU is in Forced Bypass Mode.
+ The first argument is the serial number.
+ The second argument is the device name."
+ --#TYPE "APC PDU: Forced Bypass Mode."
+ --#SUMMARY "PDU is in Forced Bypass Mode."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 215
+
+pduInputTransformerOverTemperature TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Input Transformer Over Temperature.
+ The first argument is the serial number.
+ The second argument is the device name."
+ --#TYPE "APC PDU: Input Transformer Over Temperature."
+ --#SUMMARY "Input Transformer Over Temperature."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 216
+
+pduInputTransformerOverTemperatureCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Input Transformer Over Temperature Cleared.
+ The first argument is the serial number.
+ The second argument is the device name."
+ --#TYPE "APC PDU: Input Transformer Over Temperature Cleared."
+ --#SUMMARY "Input Transformer Over Temperature Cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 217
+
+pduUPSInputVoltageLost TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: UPS Input Voltage phase-N Lost.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the phase number."
+ --#TYPE "APC PDU: UPS Input Voltage phase-N Lost."
+ --#SUMMARY "UPS Input Voltage phase-N Lost."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 218
+
+pduUPSInputVoltageRestored TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: UPS Input Voltage phase-N Restored.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the phase number."
+ --#TYPE "APC PDU: UPS Input Voltage phase-N Restored."
+ --#SUMMARY "UPS Input Voltage phase-N Restored."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 219
+
+pduContactFault TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: A contact closure in the PDU is in an abnormal position.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the number of the contact."
+ --#TYPE "APC PDU: Contact Abnormal."
+ --#SUMMARY "Contact Abnormal."
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 220
+
+pduContactFaultCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A contact closure in the PDU is in a normal position.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the number of the contact."
+ --#TYPE "APC PDU: Contact Normal."
+ --#SUMMARY "Contact Normal."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 221
+
+rPDUBankPhaseLowLoad TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { rPDUIdentSerialNumber, rPDUIdentName,
+ rPDULoadStatusBankNumber, rPDULoadStatusPhaseNumber, mtrapargsString }
+ DESCRIPTION
+ "WARNING: A bank or phase on the Rack PDU has violated the low load threshold.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the bank number (0 if this is phase data).
+ The fourth argument is the phase number (0 if this is bank data)."
+ --#TYPE "APC Rack PDU: Violation of bank or phase low load threshold."
+ --#SUMMARY "A bank or phase on the Rack PDU has violated the low load threshold."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 222
+
+rPDUBankPhaseLowLoadCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { rPDUIdentSerialNumber, rPDUIdentName,
+ rPDULoadStatusBankNumber, rPDULoadStatusPhaseNumber, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The bank or phase low load condition on a Rack PDU has been
+ cleared.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the bank number (0 if this is phase data).
+ The fourth argument is the phase number (0 if this is bank data)."
+ --#TYPE "APC Rack PDU: Bank or phase low load condition cleared."
+ --#SUMMARY "The bank or phase low load condition on a Rack PDU has been cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 223
+
+rPDUBankPhaseNearOverload TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { rPDUIdentSerialNumber, rPDUIdentName,
+ rPDULoadStatusBankNumber, rPDULoadStatusPhaseNumber, mtrapargsString }
+ DESCRIPTION
+ "WARNING: A bank or phase of the Rack PDU is near an overload condition.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the bank number (0 if this is phase data).
+ The fourth argument is the phase number (0 if this is bank data)."
+ --#TYPE "APC Rack PDU: Bank or phase near an overload condition."
+ --#SUMMARY "A bank or phase of the Rack PDU is near an overload condition."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 224
+
+rPDUBankPhaseNearOverloadCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { rPDUIdentSerialNumber, rPDUIdentName,
+ rPDULoadStatusBankNumber, rPDULoadStatusPhaseNumber, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The bank or phase near overload condition on a Rack PDU has
+ been cleared.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the bank number (0 if this is phase data).
+ The fourth argument is the phase number (0 if this is bank data)."
+ --#TYPE "APC Rack PDU: Bank or phase near overload condition has cleared."
+ --#SUMMARY "Rack PDU bank or phase near overload condition has cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 225
+
+rPDUBankPhaseOverload TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { rPDUIdentSerialNumber, rPDUIdentName,
+ rPDULoadStatusBankNumber, rPDULoadStatusPhaseNumber, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: A bank or phase of the Rack PDU is in an overload condition.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the phase number.
+ The third argument is the bank number (0 if this is phase data).
+ The fourth argument is the phase number (0 if this is bank data)."
+ --#TYPE "APC Rack PDU: Bank or phase overload condition."
+ --#SUMMARY "A bank or phase of the Rack PDU is in an overload condition."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 226
+
+rPDUBankPhaseOverloadCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { rPDUIdentSerialNumber, rPDUIdentName,
+ rPDULoadStatusBankNumber, rPDULoadStatusPhaseNumber, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The bank or phase overload condition on a Rack PDU has been
+ cleared.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the bank number (0 if this is phase data).
+ The fourth argument is the phase number (0 if this is bank data)."
+ --#TYPE "APC Rack PDU: Bank or phase overload condition has cleared."
+ --#SUMMARY "The bank or phase overload condition on a Rack PDU has cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 227
+
+aruDeviceConfigChange TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName,
+ rARUStatusAruIndex, rARUStatusAruName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Remote ARU Device Configurtion change.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the ARU number.
+ The fourth argument is the ARU name."
+ --#TYPE "APC ARU: ARU Device configuration change."
+ --#SUMMARY "ARU device configuration change."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 228
+
+rmPDUCommunicationLost TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Communication Lost.
+ The first argument is the serial number.
+ The second argument is the device name."
+ --#TYPE "APC RM PDU: Communication Lost."
+ --#SUMMARY "Communication Lost."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 229
+
+emsCommunicationEstablished TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Communication Established.
+ The first argument is the serial number.
+ The second argument is the device name."
+ --#TYPE "APC EMS: Communication Established."
+ --#SUMMARY "Communication Established."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 230
+
+emsCommunicationLost TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Communication Lost.
+ The first argument is the serial number.
+ The second argument is the device name."
+ --#TYPE "APC EMS: Communication Lost."
+ --#SUMMARY "Communication Lost."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 231
+
+emsProbeConnected TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName,
+ emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A probe has been connected to the EMS.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the probe number.
+ The fourth argument is the probe name."
+ --#TYPE "APC EMS: Probe Connected."
+ --#SUMMARY "Probe Connected."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 232
+
+emsProbeDisconnected TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName,
+ emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: A probe has been disconnected from the EMS.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the probe number.
+ The fourth argument is the probe name."
+ --#TYPE "APC EMS: Probe Disconnected."
+ --#SUMMARY "Probe Disconnected."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 233
+
+emsSensorConnected TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName,
+ emsSensorStatusSensorIndex, emsSensorStatusSensorName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A sensor has been connected to the EMS.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the sensor number.
+ The fourth argument is the sensor name."
+ --#TYPE "APC EMS: Sensor Connected."
+ --#SUMMARY "Sensor Connected."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 234
+
+emsSensorDisconnected TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName,
+ emsSensorStatusSensorIndex, emsSensorStatusSensorName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: A sensor has been disconnected from the EMS.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the sensor number.
+ The fourth argument is the sensor name."
+ --#TYPE "APC EMS: Sensor Disconnected."
+ --#SUMMARY "Sensor Disconnected."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 235
+
+emsSensorFault TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName,
+ emsSensorStatusSensorIndex, emsSensorStatusSensorName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: A EMS sensor is in the fault condition.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the sensor number.
+ The fourth argument is the sensor name."
+ --#TYPE "APC EMS: Sensor Fault."
+ --#SUMMARY "Sensor Fault."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 236
+
+emsSensorFaultCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName,
+ emsSensorStatusSensorIndex, emsSensorStatusSensorName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A EMS sensor fault condition has cleared.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the sensor number.
+ The fourth argument is the sensor name."
+ --#TYPE "APC EMS: Sensor Fault Cleared."
+ --#SUMMARY "Sensor Fault Cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 237
+
+emsBeaconConnected TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A beacon has been connected to the EMS.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC EMS: Beacon Connected."
+ --#SUMMARY "Beacon Connected."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 238
+
+emsBeaconDisconnected TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: A beacon has been disconnected from the EMS.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC EMS: Beacon Disconnected."
+ --#SUMMARY "Beacon Disconnected."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 239
+
+emsBeaconOn TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A EMS beacon has gone on.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC EMS: Beacon On."
+ --#SUMMARY "Beacon On."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 240
+
+emsBeaconOff TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A EMS beacon has gone off.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC EMS: Beacon Off."
+ --#SUMMARY "Beacon Off."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 241
+
+emsMajorAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: A Major Alarm is present in the EMS.
+ The first argument is the EMS serial number.
+ The second argument is the EMS name."
+ --#TYPE "APC EMS: Major Alarm."
+ --#SUMMARY "Major Alarm."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 242
+
+emsMajorAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A Major Alarm condition has been cleared in the EMS.
+ The first argument is the EMS serial number.
+ The second argument is the EMS name."
+ --#TYPE "APC EMS: Major Alarm Cleared."
+ --#SUMMARY "Major Alarm Cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 243
+
+emsMinorAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: A Minor Alarm is present in the EMS.
+ The first argument is the EMS serial number.
+ The second argument is the EMS name."
+ --#TYPE "APC EMS: Minor Alarm."
+ --#SUMMARY "Minor Alarm."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 244
+
+emsMinorAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A Minor Alarm condition has been cleared in the EMS.
+ The first argument is the EMS serial number.
+ The second argument is the EMS name."
+ --#TYPE "APC EMS: Minor Alarm Cleared."
+ --#SUMMARY "Minor Alarm Cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 245
+
+emsOutletStateAbnormal TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsOutletStatusOutletIndex, emsOutletStatusOutletName,
+ emsOutletStatusOutletState, emsOutletStatusOutletNormalState, mtrapargsString }
+ DESCRIPTION
+ "WARNING: An outlet on the EMS has changed to its abnormal state.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the outlet number.
+ The fourth argument is the outlet name.
+ The fifth argument is the current outlet state (1=ON, 2=OFF).
+ The sixth argument is the configured normal outlet state (1=ON, 2=OFF)."
+ --#TYPE "APC EMS: Outlet has changed to its abnormal state."
+ --#SUMMARY "Outlet has changed to its abnormal state."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 246
+
+emsOutletStateNormal TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsOutletStatusOutletIndex, emsOutletStatusOutletName,
+ emsOutletStatusOutletState, emsOutletStatusOutletNormalState, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: An outlet on the EMS has changed to its normal state.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the outlet number.
+ The fourth argument is the outlet name.
+ The fifth argument is the current outlet state (1=ON, 2=OFF).
+ The sixth argument is the configured normal outlet state (1=ON, 2=OFF)."
+ --#TYPE "APC EMS: Outlet has changed to its normal state."
+ --#SUMMARY "Outlet has changed to its normal state."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 247
+
+emsInputContactStateAbnormal TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsInputContactStatusInputContactIndex,
+ emsInputContactStatusInputContactName, emsInputContactStatusInputContactState,
+ emsInputContactStatusInputContactNormalState, mtrapargsString }
+ DESCRIPTION
+ "WARNING: An input contact on the EMS has changed to its abnormal state.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the input contact number.
+ The fourth argument is the input contact name.
+ The fifth argument is the input contact state (1=CLOSED, 2=OPEN).
+ The sixth argument is the configured normal input contact state (1=CLOSED, 2=OPEN)."
+ --#TYPE "APC EMS: Input contact has changed to its abnormal state."
+ --#SUMMARY "Input contact has changed to its abnormal state."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 248
+
+emsInputContactStateNormal TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsInputContactStatusInputContactIndex,
+ emsInputContactStatusInputContactName, emsInputContactStatusInputContactState,
+ emsInputContactStatusInputContactNormalState, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: An input contact on the EMS has changed to its normal state.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the input contact number.
+ The fourth argument is the input contact name.
+ The fifth argument is the input contact state (1=CLOSED, 2=OPEN).
+ The sixth argument is the configured normal input contact state (1=CLOSED, 2=OPEN)."
+ --#TYPE "APC EMS: Input contact has changed to its normal state."
+ --#SUMMARY "Input contact has changed to its normal state."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 249
+
+emsOutputRelayStateAbnormal TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsOutputRelayStatusOutputRelayIndex,
+ emsOutputRelayStatusOutputRelayName, emsOutputRelayStatusOutputRelayState,
+ emsOutputRelayStatusOutputRelayNormalState, mtrapargsString }
+ DESCRIPTION
+ "WARNING: An output relay on the EMS has changed to its abnormal state.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the output relay number.
+ The fourth argument is the output relay name.
+ The fifth argument is the current output relay state (1=CLOSED, 2=OPEN).
+ The sixth argument is the configured normal output relay state (1=CLOSED, 2=OPEN)."
+ --#TYPE "APC EMS: Output Relay has changed to its abnormal state."
+ --#SUMMARY "Output Relay has changed to its abnormal state."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 250
+
+emsOutputRelayStateNormal TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsOutputRelayStatusOutputRelayIndex,
+ emsOutputRelayStatusOutputRelayName, emsOutputRelayStatusOutputRelayState,
+ emsOutputRelayStatusOutputRelayNormalState, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: An output relay on the EMS has changed to its normal state.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the output relay number.
+ The fourth argument is the output relay name.
+ The fifth argument is the current output relay state (1=CLOSED, 2=OPEN).
+ The sixth argument is the configured normal output relay state (1=CLOSED, 2=OPEN)."
+ --#TYPE "APC EMS: Output Relay has changed to its normal state."
+ --#SUMMARY "Output Relay has changed to its normal state."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 251
+
+emsDeviceConfigChange TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A device configuration change has been made on the EMS.
+ The first argument is the EMS serial number.
+ The second argument is the EMS name."
+ --#TYPE "APC: A device configuration change on a EMS."
+ --#SUMMARY "A device configuration change has been made on a EMS."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 252
+
+envHighTempThresholdViolation TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits,
+ emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: High temperature threshold violated on the probe.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the current temperature.
+ The fourth argument is the temperature scale.
+ The fifth argument is the probe number.
+ The sixth argument is the probe name."
+ --#TYPE "APC ENV: High temperature threshold violation."
+ --#SUMMARY "High temperature threshold violation."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 253
+
+envHighTempThresholdViolationCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits,
+ emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: High temperature threshold violation cleared on the probe.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the current temperature.
+ The fourth argument is the temperature scale.
+ The fifth argument is the probe number.
+ The sixth argument is the probe name."
+ --#TYPE "APC ENV: High temperature threshold violation cleared."
+ --#SUMMARY "High temperature threshold violation cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 254
+
+envLowTempThresholdViolation TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits,
+ emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Low temperature threshold violated on the probe.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the current temperature.
+ The fourth argument is the temperature scale.
+ The fifth argument is the probe number.
+ The sixth argument is the probe name."
+ --#TYPE "APC ENV: Low temperature threshold violation."
+ --#SUMMARY "Low temperature threshold violation."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 255
+
+envLowTempThresholdViolationCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits,
+ emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Low temperature threshold violation cleared on the probe.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the current temperature.
+ The fourth argument is the temperature scale.
+ The fifth argument is the probe number.
+ The sixth argument is the probe name."
+ --#TYPE "APC ENV: Low temperature threshold violation cleared."
+ --#SUMMARY "Low temperature threshold violation cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 256
+
+envHighHumidityThresholdViolation TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeHumidity,
+ emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: High humidity threshold violated on the probe.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the current humidity
+ The fourth argument is the probe number.
+ The fifth argument is the probe name."
+ --#TYPE "APC ENV: High humidity threshold violation."
+ --#SUMMARY "High humidity threshold violation."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 257
+
+envHighHumidityThresholdViolationCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeHumidity,
+ emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: High humidity threshold violation cleared on the probe.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the current humidity.
+ The fourth argument is the probe number.
+ The fifth argument is the probe name."
+ --#TYPE "APC ENV: High humidity threshold violation cleared."
+ --#SUMMARY "High humidity threshold violation cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 258
+
+envLowHumidityThresholdViolation TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeHumidity,
+ emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Low humidity threshold violated on the probe.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the current humidity
+ The fourth argument is the probe number.
+ The fifth argument is the probe name."
+ --#TYPE "APC ENV: Low humidity threshold violation."
+ --#SUMMARY "Low humidity threshold violation."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 259
+
+envLowHumidityThresholdViolationCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeHumidity,
+ emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Low humidity threshold violation cleared on the probe.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the current humidity.
+ The fourth argument is the probe number.
+ The fifth argument is the probe name."
+ --#TYPE "APC ENV: Low humidity threshold violation cleared."
+ --#SUMMARY "Low humidity threshold violation cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 260
+
+
+-- Switched and Metered Rack PDU Traps
+
+rPDUCommunicationEstablished TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Communication with a Rack PDU has been established.
+ The first argument is the serial number.
+ The second argument is the device name."
+ --#TYPE "APC Rack PDU: Communication established."
+ --#SUMMARY "Communication with a Rack PDU established."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 266
+
+rPDUCommunicationLost TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Communication with a Rack PDU has been lost.
+ The first argument is the serial number.
+ The second argument is the device name."
+ --#TYPE "APC Rack PDU: Communication lost."
+ --#SUMMARY "Communication with a Rack PDU has been lost."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 267
+
+rPDUOutletOn TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { rPDUIdentSerialNumber, rPDUIdentName,
+ rPDUOutletControlIndex, rPDUOutletControlOutletName,
+ mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: An outlet on a Switched Rack PDU has turned on.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the outlet index number.
+ The fourth argument is the outlet name."
+ --#TYPE "APC Switched Rack PDU: An outlet has turned on."
+ --#SUMMARY "An outlet on a Switched Rack PDU has turned on."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 268
+
+rPDUOutletOff TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { rPDUIdentSerialNumber, rPDUIdentName,
+ rPDUOutletControlIndex, rPDUOutletControlOutletName,
+ mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: An outlet on a Switched Rack PDU has turned off.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the outlet index number.
+ The fourth argument is the outlet name."
+ --#TYPE "APC Switched Rack PDU: An outlet has turned off."
+ --#SUMMARY "An outlet on a Switched Rack PDU has turned off."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 269
+
+rPDUDeviceConfigChange TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A device configuration change has been made on a
+ Rack PDU.
+ The first argument is the serial number.
+ The second argument is the device name."
+ --#TYPE "APC Rack PDU: Device configuration change made."
+ --#SUMMARY "Device configuration change has been made on a Rack PDU."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 270
+
+rPDUOutletConfigChange TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { rPDUIdentSerialNumber, rPDUIdentName,
+ rPDUOutletControlIndex, rPDUOutletControlOutletName,
+ mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: An outlet configuration change has been made on a
+ Switched Rack PDU.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the outlet index number.
+ The fourth argument is the outlet name."
+ --#TYPE "APC Switched Rack PDU: Outlet configuration change made."
+ --#SUMMARY "Outlet configuration change has been made on a Switched Rack PDU."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 271
+
+rPDULowLoad TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { rPDUIdentSerialNumber, rPDUIdentName,
+ rPDULoadStatusPhaseNumber, mtrapargsString }
+ DESCRIPTION
+ "WARNING: A Rack PDU has violated the low load threshold.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the phase number."
+ --#TYPE "APC Rack PDU: Violation of low load threshold."
+ --#SUMMARY "A Rack PDU has violated the low load threshold."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 272
+
+rPDULowLoadCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { rPDUIdentSerialNumber, rPDUIdentName,
+ rPDULoadStatusPhaseNumber, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The low load condition on a Rack PDU has been
+ cleared.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the phase number."
+ --#TYPE "APC Rack PDU: Low load condition cleared."
+ --#SUMMARY "The low load condition on a Rack PDU has been cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 273
+
+rPDUNearOverload TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { rPDUIdentSerialNumber, rPDUIdentName,
+ rPDULoadStatusPhaseNumber, mtrapargsString }
+ DESCRIPTION
+ "WARNING: A Rack PDU is near an overload condition.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the phase number."
+ --#TYPE "APC Rack PDU: Near an overload condition."
+ --#SUMMARY "A Rack PDU is near an overload condition."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 274
+
+rPDUNearOverloadCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { rPDUIdentSerialNumber, rPDUIdentName,
+ rPDULoadStatusPhaseNumber, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The near overload condition on a Rack PDU has
+ been cleared.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the phase number."
+ --#TYPE "APC Rack PDU: Near overload condition has cleared."
+ --#SUMMARY "Rack PDU near overload condition has cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 275
+
+rPDUOverload TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { rPDUIdentSerialNumber, rPDUIdentName,
+ rPDULoadStatusPhaseNumber, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: A Rack PDU is in an overload condition.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the phase number."
+ --#TYPE "APC Rack PDU: Overload condition."
+ --#SUMMARY "A Rack PDU is in an overload condition."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 276
+
+rPDUOverloadCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { rPDUIdentSerialNumber, rPDUIdentName,
+ rPDULoadStatusPhaseNumber, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The overload condition on a Rack PDU has been
+ cleared.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the phase number."
+ --#TYPE "APC Rack PDU: Overload condition has cleared."
+ --#SUMMARY "The overload condition on a Rack PDU has cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 277
+
+rPDUPowerSupply1Fail TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Power Supply 1 on Rack PDU is in FAIL state.
+ The first argument is the serial number.
+ The second argument is the device name."
+ --#TYPE "APC Rack PDU: Power Supply 1 is in FAIL state."
+ --#SUMMARY "Power Supply 1 on Rack PDU is in FAIL state."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 278
+
+rPDUPowerSupply1Ok TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Power Supply 1 on Rack PDU is operating normally.
+ The first argument is the serial number.
+ The second argument is the device name."
+ --#TYPE "APC Rack PDU: Power Supply 1 is operating normally."
+ --#SUMMARY "Power Supply 1 on Rack PDU is operating normally."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 279
+
+rPDUPowerSupply2Fail TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Power Supply 2 on Rack PDU is in FAIL state.
+ The first argument is the serial number.
+ The second argument is the device name."
+ --#TYPE "APC Rack PDU: Power Supply 2 is in FAIL state."
+ --#SUMMARY "Power Supply 2 on Rack PDU is in FAIL state."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 280
+
+rPDUPowerSupply2Ok TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Power Supply 2 on Rack PDU is operating normally.
+ The first argument is the serial number.
+ The second argument is the device name."
+ --#TYPE "APC Rack PDU: Power Supply 2 is operating normally."
+ --#SUMMARY "Power Supply 2 on Rack PDU is operating normally."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 281
+
+rPDUPhaseConfigChange TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { rPDUIdentSerialNumber, rPDUIdentName,
+ rPDULoadPhaseConfigIndex, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A phase configuration change has been made on a
+ Rack PDU.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the phase index number."
+ --#TYPE "APC Rack PDU: Phase configuration change made."
+ --#SUMMARY "Phase configuration change has been made on a Rack PDU."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 282
+
+rPDUCancelPendingCommand TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { rPDUIdentSerialNumber, rPDUIdentName,
+ rPDUOutletControlIndex, rPDUOutletControlOutletName,
+ mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A cancel pending command has been made on a
+ Switched Rack PDU.
+ The first argument is the serial number.
+ The second argument is the device name.
+ The third argument is the outlet index number (0 indicates all outlets).
+ The fourth argument is the outlet name (or device name if all outlets)."
+ --#TYPE "APC Switched Rack PDU: Cancel Pending Command made."
+ --#SUMMARY "A Cancel Pending Command has been made on a Switched Rack PDU."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 283
+
+aruAlinkCommunicationEstablished TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName,
+ rARUStatusAruIndex, rARUStatusAruName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Remote ARU Communication Established.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the ARU number.
+ The fourth argument is the ARU name."
+ --#TYPE "APC ARU: Communication Established."
+ --#SUMMARY "Communication Established."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 284
+
+aruAlinkCommunicationLost TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName,
+ rARUStatusAruIndex, rARUStatusAruName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Remote ARU Communication Lost.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the ARU number.
+ The fourth argument is the ARU name."
+ --#TYPE "APC ARU: Communication Lost."
+ --#SUMMARY "Communication Lost."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 285
+
+aruFanFail TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName,
+ rARUStatusAruIndex, rARUStatusAruName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Remote ARU Fan Fail.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the ARU number.
+ The fourth argument is the ARU name."
+ --#TYPE "APC ARU: Fan Fail."
+ --#SUMMARY "Fan Fail."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 286
+
+aruFanFailCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName,
+ rARUStatusAruIndex, rARUStatusAruName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Remote ARU Fan Fail Cleared.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the ARU number.
+ The fourth argument is the ARU name."
+ --#TYPE "APC ARU: Fan Fail Cleared."
+ --#SUMMARY "Fan Fail Cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 287
+
+aruSmokeAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName,
+ rARUStatusAruIndex, rARUStatusAruName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Remote ARU Smoke Alarm.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the ARU number.
+ The fourth argument is the ARU name."
+ --#TYPE "APC ARU: Smoke Alarm."
+ --#SUMMARY "Smoke Alarm."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 288
+
+aruSmokeAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName,
+ rARUStatusAruIndex, rARUStatusAruName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Remote ARU Smoke Alarm Cleared.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the ARU number.
+ The fourth argument is the ARU name."
+ --#TYPE "APC ARU: Smoke Alarm Cleared."
+ --#SUMMARY "Smoke Alarm Cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 289
+
+aruHighTemperatureAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName,
+ rARUStatusAruIndex, rARUStatusAruName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Remote ARU High Temperature Alarm.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the ARU number.
+ The fourth argument is the ARU name."
+ --#TYPE "APC ARU: High Temperature Alarm."
+ --#SUMMARY "High Temperature Alarm."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 290
+
+aruHighTemperatureAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName,
+ rARUStatusAruIndex, rARUStatusAruName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Remote ARU High Temperature Alarm Cleared.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the ARU number.
+ The fourth argument is the ARU name."
+ --#TYPE "APC ARU: High Temperature Alarm Cleared."
+ --#SUMMARY "High Temperature Alarm Cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 291
+
+aruExhaustTemperatureAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName,
+ rARUStatusAruIndex, rARUStatusAruName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Remote ARU Exhaust Temperature Alarm.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the ARU number.
+ The fourth argument is the ARU name."
+ --#TYPE "APC ARU: Exhaust Temperature Alarm."
+ --#SUMMARY "Exhaust Temperature Alarm."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 292
+
+aruExhaustTemperatureAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName,
+ rARUStatusAruIndex, rARUStatusAruName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Remote ARU Exhaust Temperature Alarm Cleared.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the ARU number.
+ The fourth argument is the ARU name."
+ --#TYPE "APC ARU: Exhaust Temperature Alarm Cleared."
+ --#SUMMARY "Exhaust Temperature Alarm Cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 293
+
+envAlinkCommunicationEstablished TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName,
+ emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Remote Probe Communication Established.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the probe number.
+ The fourth argument is the probe name."
+ --#TYPE "APC ENV: Communication Established."
+ --#SUMMARY "Communication Established."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 294
+
+envAlinkCommunicationLost TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName,
+ emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Remote Probe Communication Lost.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the probe number.
+ The fourth argument is the probe name."
+ --#TYPE "APC ENV: Communication Lost."
+ --#SUMMARY "Communication Lost."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 295
+
+emsAlinkPowerOverload TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Alink Power Overload.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC EMS: Alink Power Overload."
+ --#SUMMARY "Alink Power Overload."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 296
+
+emsAlinkPowerOverloadCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Alink Power Overload Cleared.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC EMS: Alink Power Overload Cleared."
+ --#SUMMARY "Alink Power Overload Cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 297
+
+upsOutletGroupTurnedOn TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { upsOutletGroupControlIndex, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The specified Outlet Group turned on."
+ --#TYPE "APC UPS: Outlet Group turned on."
+ --#SUMMARY "Outlet Group turned on"
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 298
+
+upsOutletGroupTurnedOff TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { upsOutletGroupControlIndex, mtrapargsString }
+ DESCRIPTION
+ "WARNING: The specified Outlet Group turned off."
+ --#TYPE "APC UPS: Outlet Group turned off."
+ --#SUMMARY "Outlet Group turned off."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 299
+
+smwCriticalCondition TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsGauge, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: A Symmetra MW UPS critical condition has been detected.
+ The first variable is the fault condition."
+ --#TYPE "APC Symmetra MW UPS: A critical condition has been detected."
+ --#SUMMARY "A critical condition has been detected."
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 300
+
+smwCriticalConditionCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsGauge, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A Symmetra MW UPS critical condition has been cleared.
+ The first variable is the fault condition."
+ --#TYPE "APC Symmetra MW UPS: A critical condition has been cleared."
+ --#SUMMARY "A critical condition has been cleared."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 301
+
+smwWarningCondition TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsGauge, mtrapargsString }
+ DESCRIPTION
+ "WARNING: A Symmetra MW UPS warning condition has been detected.
+ The first variable is the fault condition."
+ --#TYPE "APC Symmetra MW UPS: A warning condition has been detected."
+ --#SUMMARY "A warning condition has been detected."
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 302
+
+smwWarningConditionCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsGauge, mtrapargsString }
+ DESCRIPTION
+ "WARNING: A Symmetra MW UPS warning condition has been cleared.
+ The first variable is the fault condition."
+ --#TYPE "APC Symmetra MW UPS: A warning condition has been cleared."
+ --#SUMMARY "A warning condition has been cleared."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 303
+
+smwInformationalCondition TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsGauge, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A Symmetra MW UPS informational condition has been detected.
+ The first variable is the fault condition."
+ --#TYPE "APC Symmetra MW UPS: Informational condition detected."
+ --#SUMMARY "An informational condition has been detected."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 304
+
+smwInformationalConditionCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsGauge, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A Symmetra MW UPS informational condition has been cleared.
+ The first variable is the fault condition."
+ --#TYPE "APC Symmetra MW UPS: Informational condition cleared."
+ --#SUMMARY "An informational condition has been cleared."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 305
+
+airCriticalCondition TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: An Air critical condition was detected.
+ The first variable is the error condition text message.
+ The second variable is the error number."
+ --#TYPE "APC Air: A critical condition was detected. "
+ --#SUMMARY "A critical condition was detected. "
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 306
+
+airCriticalConditionCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: An Air critical condition was cleared.
+ The first variable is the error condition text message.
+ The second variable is the error number."
+ --#TYPE "APC Air: A critical condition was cleared. "
+ --#SUMMARY "A critical condition was cleared. "
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 307
+
+airWarningCondition TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "WARNING: An Air warning condition was detected.
+ The first variable is the error condition text message.
+ The second variable is the error number."
+ --#TYPE "APC Air: A warning condition was detected. "
+ --#SUMMARY "A warning condition was detected. "
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 308
+
+airWarningConditionCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "WARNING: An Air warning condition was cleared.
+ The first variable is the error condition text message.
+ The second variable is the error number."
+ --#TYPE "APC Air: A warning condition was cleared. "
+ --#SUMMARY "A warning condition was cleared. "
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 309
+
+airInformationalCondition TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: An Air informational condition was detected.
+ The first variable is the error condition text message.
+ The second variable is the error number."
+ --#TYPE "APC Air: Informational condition detected. "
+ --#SUMMARY "An informational condition was detected. "
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 310
+
+airInformationalConditionCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: An Air informational condition was cleared.
+ The first variable is the error condition text message.
+ The second variable is the error number."
+ --#TYPE "APC Air: Informational condition was cleared. "
+ --#SUMMARY "An informational condition was cleared. "
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 311
+
+-- xPDU Traps (part 1)
+
+xPDUInputVoltageLowAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
+ DESCRIPTION
+ "WARNING: Three-phase input voltage to the device is outside the specified limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the phase
+ (1=L1-N, 2=L2-N, 3=L3-N, 4=unused, 5=L1-L2, 6=L2-L3, 7=L3-L1).
+ The fourth argument is the measured voltage in tenths of Volts.
+ The fifth argument is the threshold, in tenths of Volts, from which the alarm was generated."
+ --#TYPE "APC XPDU: Main input voltage out-of-range alarm."
+ --#SUMMARY "Input voltage is out-of-range."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 312
+
+xPDUInputVoltageLowAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Three-phase input voltage to the device is back within the specified limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the phase (1=L1-N, 2=L2-N, 3=L3-N, 4=unused, 5=L1-L2, 6=L2-L3, 7=L3-L1).
+ The fourth argument is the measured voltage in tenths of Volts."
+ --#TYPE "APC XPDU: Main input voltage back in range."
+ --#SUMMARY "Input voltage in range."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 313
+
+
+xPDUInputVoltageHighAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
+ DESCRIPTION
+ "WARNING: Three-phase input voltage to the device is outside the specified limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the phase
+ (1=L1-N, 2=L2-N, 3=L3-N, 4=unused, 5=L1-L2, 6=L2-L3, 7=L3-L1).
+ The fourth argument is the measured voltage in tenths of Volts.
+ The fifth argument is the threshold, in tenths of Volts, above which the alarm was generated."
+ --#TYPE "APC XPDU: Main input voltage out-of-range alarm."
+ --#SUMMARY "Input voltage is out-of-range."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 314
+
+xPDUInputVoltageHighAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Three-phase input voltage to the device is back within the specified limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the phase (1=L1-N, 2=L2-N, 3=L3-N, 4=unused, 5=L1-L2, 6=L2-L3, 7=L3-L1).
+ The fourth argument is the measured voltage in tenths of Volts."
+ --#TYPE "APC XPDU: Main input voltage back in range."
+ --#SUMMARY "Input voltage in range."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 315
+
+xPDUBypassVoltageLowAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
+ DESCRIPTION
+ "WARNING: Three-phase bypass input voltage to the device is outside the specified limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the phase (1=L1-N, 2=L2-N, 3=L3-N).
+ The fourth argument is the measured voltage in tenths of Volts.
+ The fifth argument is the threshold, in tenths of Volts, from which the alarm was generated."
+ --#TYPE "APC XPDU: Bypass input voltage out-of-range alarm."
+ --#SUMMARY "Bypass input voltage is out-of-range."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 316
+
+xPDUBypassVoltageLowAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Three-phase bypass input voltage to the device is back within the specified limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the phase (1=L1-N, 2=L2-N, 3=L3-N).
+ The fourth argument is the measured voltage in tenths of Volts."
+ --#TYPE "APC XPDU: Bypass input voltage back in range."
+ --#SUMMARY "Bypass input voltage in range."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 317
+
+xPDUBypassVoltageHighAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
+ DESCRIPTION
+ "WARNING: Three-phase bypass input voltage to the device is outside the specified limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the phase (1=L1-N, 2=L2-N, 3=L3-N).
+ The fourth argument is the measured voltage in tenths of Volts.
+ The fifth argument is the threshold, in tenths of Volts, above which the alarm was generated."
+ --#TYPE "APC XPDU: Bypass input voltage out-of-range alarm."
+ --#SUMMARY "Bypass input voltage is out-of-range."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 318
+
+xPDUBypassVoltageHighAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Three-phase bypass input voltage to the device is back within the specified limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the phase (1=L1-N, 2=L2-N, 3=L3-N).
+ The fourth argument is the measured voltage in tenths of Volts."
+ --#TYPE "APC XPDU: Bypass input voltage back in range."
+ --#SUMMARY "Bypass input voltage in range."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 319
+
+xPDUOutputVoltageLowAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
+ DESCRIPTION
+ "WARNING: The device three-phase output voltage of the device is outside the specified limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the phase (1=L1-N, 2=L2-N, 3=L3-N).
+ The fourth argument is the measured voltage in tenths of Volts.
+ The fifth argument is the threshold, in tenths of Volts, from which the alarm was generated."
+ --#TYPE "APC XPDU: Output voltage out-of-range alarm."
+ --#SUMMARY "Output voltage is out-of-range."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 320
+
+xPDUOutputVoltageLowAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The devices three-phase output voltage is back within the specified limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the phase (1=L1-N, 2=L2-N, 3=L3-N).
+ The fourth argument is the measured voltage in tenths of Volts."
+ --#TYPE "APC XPDU: Output voltage back in range."
+ --#SUMMARY "Output voltage in range."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 321
+
+xPDUOutputVoltageHighAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
+ DESCRIPTION
+ "WARNING: The device three-phase output voltage of the device is outside the specified limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the phase (1=L1-N, 2=L2-N, 3=L3-N).
+ The fourth argument is the measured voltage in tenths of Volts.
+ The fifth argument is the threshold, in tenths of Volts, above which the alarm was generated."
+ --#TYPE "APC XPDU: Output voltage out-of-range alarm."
+ --#SUMMARY "Output voltage is out-of-range."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 322
+
+xPDUOutputVoltageHighAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The devices three-phase output voltage is back within the specified limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the phase (1=L1-N, 2=L2-N, 3=L3-N).
+ The fourth argument is the measured voltage in tenths of Volts."
+ --#TYPE "APC XPDU: Output voltage back in range."
+ --#SUMMARY "Output voltage in range."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 323
+
+xPDUOutputCurrentLowAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The devices three-phase load current is outside the specified limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the phase (1=L1, 2=L2, 3=L3).
+ The fourth argument is the measured current in tenths of Amps.
+ The fifth argument is the threshold, in Amps, from which the alarm was generated."
+ --#TYPE "APC XPDU: Output (load) current out-of-range alarm."
+ --#SUMMARY "Output current is out-of-range."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 324
+
+xPDUOutputCurrentLowAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The devices three-phase output current is back within the specified limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the phase (1=L1, 2=L2, 3=L3).
+ The fourth argument is the measured current in tenths of Amps."
+ --#TYPE "APC XPDU: Output (load) current back in range."
+ --#SUMMARY "Output current in range."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 325
+
+xPDUOutputCurrentHighAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The devices three-phase load current is outside the specified limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the phase (1=L1, 2=L2, 3=L3).
+ The fourth argument is the measured current in tenths of Amps.
+ The fifth argument is the threshold, in Amps, above which the alarm was generated."
+ --#TYPE "APC XPDU: Output (load) current out-of-range alarm."
+ --#SUMMARY "Output current is out-of-range."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 326
+
+xPDUOutputCurrentHighAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The devices three-phase output current is back within the specified limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the phase (1=L1, 2=L2, 3=L3).
+ The fourth argument is the measured current in tenths of Amps."
+ --#TYPE "APC XPDU: Output (load) current back in range."
+ --#SUMMARY "Output current in range."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 327
+
+xPDUOutputFrequencyAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The devices output frequency is outside the specified limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the frequency deviation from the nominal in tenths of Hertz."
+ --#TYPE "APC XPDU: Output frequency out-of-range alarm."
+ --#SUMMARY "Output frequency is out-of-range."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 328
+
+xPDUOutputFrequencyAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The devices output frequency is back within the specified limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XPDU: Output frequency back in range."
+ --#SUMMARY "Output frequency in range."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 329
+
+xPDUSystemGroundCurrentAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The devices earth ground current is over the specified limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the measured current in tenths of Amps."
+ --#TYPE "APC XPDU: Earth ground current over range alarm."
+ --#SUMMARY "Earth ground current is over limit."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 330
+
+xPDUSystemGroundCurrentAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The devices earth ground current is back within the specified limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the measured current in tenths of Amps."
+ --#TYPE "APC XPDU: Earth ground current back in range."
+ --#SUMMARY "Earth ground current in range."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 331
+
+xPDUInputContactStateAbnormal TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger,
+ mtrapargsString02, mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
+ DESCRIPTION
+ "WARNING: A user input contact on the device has changed to its abnormal state.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the input contact number.
+ The fourth argument is the input contact name.
+ The fifth argument is the input contact state (1=OPEN, 2=CLOSED).
+ The sixth argument is the configured normal input contact state (1=OPEN, 2=CLOSED)."
+ --#TYPE "APC XPDU: Input contact has changed to its abnormal state."
+ --#SUMMARY "Input contact has changed to its abnormal state."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 332
+
+xPDUInputContactStateNormal TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger,
+ mtrapargsString02, mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A user input contact on the device has changed to its normal state.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the input contact number.
+ The fourth argument is the input contact name.
+ The fifth argument is the input contact state (1=CLOSED, 2=OPEN).
+ The sixth argument is the configured normal input contact state (1=OPEN, 2=CLOSED)."
+ --#TYPE "APC XPDU: Input contact has changed to its normal state."
+ --#SUMMARY "Input contact has changed to its normal state."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 333
+
+xPDUOutputRelayStateAbnormal TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger,
+ mtrapargsString02, mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
+ DESCRIPTION
+ "WARNING: An Output Relay on the device has changed to its abnormal state.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the Output Relay number.
+ The fourth argument is the Output Relay name.
+ The fifth argument is the current Output Relay state (1=OPEN, 2=CLOSED).
+ The sixth argument is the configured normal Output Relay state (1=OPEN, 2=CLOSED)."
+ --#TYPE "APC XPDU: Output Relay has changed to its abnormal state."
+ --#SUMMARY "Output Relay has changed to its abnormal state."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 334
+
+xPDUOutputRelayStateNormal TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger,
+ mtrapargsString02, mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: An Output Relay on the device has changed to its normal state.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the Output Relay number.
+ The fourth argument is the Output Relay name.
+ The fifth argument is the current Output Relay state (1=OPEN, 2=CLOSED).
+ The sixth argument is the configured normal Output Relay state (1=OPEN, 2=CLOSED)."
+ --#TYPE "APC XPDU: Output Relay has changed to its normal state."
+ --#SUMMARY "Output Relay has changed to its normal state."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 335
+
+xPDUCoolingFanAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The device's internal cooling fans have failed.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XPDU: Cooling fan failure alarm."
+ --#SUMMARY "Cooling fan failure."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 336
+
+xPDUCoolingFanAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The device's cooling fans are now functioning properly.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XPDU: Cooling fan alarm cleared."
+ --#SUMMARY "Cooling fan alarm cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 337
+
+xPDUTransformerTempAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The device's isolation transformer is over temperature.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XPDU: Isolation transformer over temperature alarm."
+ --#SUMMARY "Transformer temp alarm."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 338
+
+xPDUTransformerTempAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The device's isolation transformer is no longer over temperature.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XPDU: Isolation transformer over temperature alarm cleared."
+ --#SUMMARY "Transformer temp alarm cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 339
+
+xPDUBranchCurrentLowAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The current in a branch circuit is outside the limits specified for that
+ branch circuit.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the panel position of the branch circuit (1-based index).
+ The fourth argument is the measured current in tenths of Amps.
+ The fifth argument is the threshold, in tenth of Amps, from which the alarm was generated."
+ --#TYPE "APC XPDU: Branch circuit current out-of-range alarm."
+ --#SUMMARY "Branch circuit current is out-of-range."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 340
+
+xPDUBranchCurrentLowAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The current in a branch circuit is back within the limits
+ specified for that branch circuit.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the panel position of the branch circuit (1-based index).
+ The fourth argument is the measured current in tenths of Amps."
+ --#TYPE "APC XPDU: Branch circuit current back in range."
+ --#SUMMARY "Branch circuit current in range."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 341
+
+xPDUBranchCurrentHighAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The current in a branch circuit is outside the limits specified for that
+ branch circuit.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the panel position of the branch circuit (1-based index).
+ The fourth argument is the measured current in tenths of Amps.
+ The fifth argument is the threshold, in tenth of Amps, above which the alarm was generated."
+ --#TYPE "APC XPDU: Branch circuit current out-of-range alarm."
+ --#SUMMARY "Branch circuit current is out-of-range."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 342
+
+xPDUBranchCurrentHighAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The current in a branch circuit is back within the limits
+ specified for that branch circuit.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the panel position of the branch circuit (1-based index).
+ The fourth argument is the measured current in tenths of Amps."
+ --#TYPE "APC XPDU: Branch circuit current back in range."
+ --#SUMMARY "Branch circuit current in range."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 343
+
+
+xPDUInternalCommError TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: There is an internal communication error in the device.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XPDU: Internal communication error."
+ --#SUMMARY "Internal communication error."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 344
+
+emsHardwareStateAbnormal TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The device's hardware is improperly configured and operating outside
+ normal bounds for the hardware. This can be caused by improper devices being
+ connected to the EMS ports or Alink Current limit detection."
+ --#TYPE "APC EMS: Hardware is in an abnormal state."
+ --#SUMMARY "Hardware is in an abnormal state."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 345
+
+emsHardwareStateNormal TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The device's hardware is in its normal operational state.
+ The first argument is the host device serial number."
+ --#TYPE "APC EMS: Hardware is in a normal state."
+ --#SUMMARY "Hardware is in its normal state."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 346
+
+ceSevereCondition TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: A Custom Event severe condition was detected.
+ The first variable is the custom event text message.
+ The second variable is the custom event number."
+ --#TYPE "APC CustomEvent: A severe condition was detected. "
+ --#SUMMARY "A severe condition was detected. "
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 347
+
+ceSevereConditionCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A Custom Event severe condition was cleared.
+ The first variable is the custom event text message.
+ The second variable is the custom event number."
+ --#TYPE "APC CustomEvent: A severe condition was cleared. "
+ --#SUMMARY "A severe condition was cleared. "
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 348
+
+ceWarningCondition TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "WARNING: A Custom Event warning condition was detected.
+ The first variable is the custom event text message.
+ The second variable is the custom event number."
+ --#TYPE "APC CustomEvent: A warning condition was detected. "
+ --#SUMMARY "A warning condition was detected. "
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 349
+
+ceWarningConditionCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A Custom Event warning condition was cleared.
+ The first variable is the custom event text message.
+ The second variable is the custom event number."
+ --#TYPE "APC CustomEvent: A warning condition was cleared. "
+ --#SUMMARY "A warning condition was cleared. "
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 350
+
+ceInformationalCondition TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A Custom Event informational condition was detected.
+ The first variable is the custom event text message.
+ The second variable is the custom event number."
+ --#TYPE "APC CustomEvent: Informational condition detected. "
+ --#SUMMARY "An informational condition was detected. "
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 351
+
+ceInformationalConditionCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A Custom Event informational condition was cleared.
+ The first variable is the custom event text message.
+ The second variable is the custom event number."
+ --#TYPE "APC CustomEvent: Informational condition was cleared. "
+ --#SUMMARY "An informational condition was cleared. "
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 352
+
+upsInternalOverTemperature TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "WARNING: The internal over temperature condition exists."
+ --#TYPE "APC UPS: The internal over temperature condition exists."
+ --#SUMMARY "The internal over temperature condition exists."
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 353
+
+upsInternalOverTemperatureCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The internal over temperature condition cleared."
+ --#TYPE "APC UPS: The internal over temperature condition cleared."
+ --#SUMMARY "The internal over temperature condition cleared."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 354
+
+upsMpuReset TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The MPU has been reset."
+ --#TYPE "APC UPS: The MPU has been reset."
+ --#SUMMARY "The MPU has been reset."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 355
+
+upsOutputSwitchClosed TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The Output Switch is closed."
+ --#TYPE "APC UPS: The Output Switch is closed."
+ --#SUMMARY "The Output Switch is closed."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 356
+
+upsOutputSwitchOpened TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The Output Switch is open."
+ --#TYPE "APC UPS: The Output Switch is open."
+ --#SUMMARY "The Output Switch is open."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 357
+
+upsCalibrationStackChanged TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A calibration value in the stack was changed."
+ --#TYPE "APC UPS: A calibration value in the stack was changed."
+ --#SUMMARY "A calibration value in the stack was changed."
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 358
+
+
+-- Upgraded EMS now has more env traps
+
+envMaxTempThresholdViolation TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits,
+ emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Max temperature threshold violated on the probe.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the current temperature.
+ The fourth argument is the temperature scale.
+ The fifth argument is the probe number.
+ The sixth argument is the probe name."
+ --#TYPE "APC ENV: Max temperature threshold violation."
+ --#SUMMARY "Max temperature threshold violation."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 359
+
+envMaxTempThresholdViolationCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits,
+ emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Max temperature threshold violation cleared on the probe.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the current temperature.
+ The fourth argument is the temperature scale.
+ The fifth argument is the probe number.
+ The sixth argument is the probe name."
+ --#TYPE "APC ENV: Max temperature threshold violation cleared."
+ --#SUMMARY "Max temperature threshold violation cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 360
+
+envMinTempThresholdViolation TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits,
+ emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Min temperature threshold violated on the probe.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the current temperature.
+ The fourth argument is the temperature scale.
+ The fifth argument is the probe number.
+ The sixth argument is the probe name."
+ --#TYPE "APC ENV: Min temperature threshold violation."
+ --#SUMMARY "Min temperature threshold violation."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 361
+
+envMinTempThresholdViolationCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits,
+ emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Min temperature threshold violation cleared on the probe.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the current temperature.
+ The fourth argument is the temperature scale.
+ The fifth argument is the probe number.
+ The sixth argument is the probe name."
+ --#TYPE "APC ENV: Min temperature threshold violation cleared."
+ --#SUMMARY "Min temperature threshold violation cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 362
+
+envMaxHumidityThresholdViolation TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeHumidity,
+ emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Max humidity threshold violated on the probe.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the current humidity
+ The fourth argument is the probe number.
+ The fifth argument is the probe name."
+ --#TYPE "APC ENV: Max humidity threshold violation."
+ --#SUMMARY "Max humidity threshold violation."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 363
+
+envMaxHumidityThresholdViolationCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeHumidity,
+ emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Max humidity threshold violation cleared on the probe.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the current humidity.
+ The fourth argument is the probe number.
+ The fifth argument is the probe name."
+ --#TYPE "APC ENV: Max humidity threshold violation cleared."
+ --#SUMMARY "Max humidity threshold violation cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 364
+
+envMinHumidityThresholdViolation TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeHumidity,
+ emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Min humidity threshold violated on the probe.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the current humidity
+ The fourth argument is the probe number.
+ The fifth argument is the probe name."
+ --#TYPE "APC ENV: Min humidity threshold violation."
+ --#SUMMARY "Min humidity threshold violation."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 365
+
+envMinHumidityThresholdViolationCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeHumidity,
+ emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Min humidity threshold violation cleared on the probe.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the current humidity.
+ The fourth argument is the probe number.
+ The fifth argument is the probe name."
+ --#TYPE "APC ENV: Min humidity threshold violation cleared."
+ --#SUMMARY "Min humidity threshold violation cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 366
+
+envSTIncTempRateViolation TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits,
+ emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Short-term increasing temperature rate violated on the probe.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the current temperature.
+ The fourth argument is the temperature scale.
+ The fifth argument is the probe number.
+ The sixth argument is the probe name."
+ --#TYPE "APC ENV: Short-term inc. temp rate violation."
+ --#SUMMARY "Short-term inc. temp rate violation."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 367
+
+envSTIncTempRateViolationCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits,
+ emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Short-term increasing temperature rate cleared on the probe.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the current temperature.
+ The fourth argument is the temperature scale.
+ The fifth argument is the probe number.
+ The sixth argument is the probe name."
+ --#TYPE "APC ENV: Short-term inc. temp rate violation cleared."
+ --#SUMMARY "Short-term inc. temp rate violation cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 368
+
+envSTDecTempRateViolation TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits,
+ emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Short-term decreasing temperature rate violated on the probe.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the current temperature.
+ The fourth argument is the temperature scale.
+ The fifth argument is the probe number.
+ The sixth argument is the probe name."
+ --#TYPE "APC ENV: Short-term dec. temp rate violation."
+ --#SUMMARY "Short-term dec. temp rate violation."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 369
+
+envSTDecTempRateViolationCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits,
+ emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Short-term decreasing temperature rate cleared on the probe.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the current temperature.
+ The fourth argument is the temperature scale.
+ The fifth argument is the probe number.
+ The sixth argument is the probe name."
+ --#TYPE "APC ENV: Short-term dec. temp rate violation cleared."
+ --#SUMMARY "Short-term dec. temp rate violation cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 370
+
+envLTIncTempRateViolation TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits,
+ emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Long-term increasing temperature rate violated on the probe.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the current temperature.
+ The fourth argument is the temperature scale.
+ The fifth argument is the probe number.
+ The sixth argument is the probe name."
+ --#TYPE "APC ENV: Long-term inc. temp rate violation."
+ --#SUMMARY "Long-term inc. temp rate violation."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 371
+
+envLTIncTempRateViolationCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits,
+ emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Long-term increasing temperature rate cleared on the probe.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the current temperature.
+ The fourth argument is the temperature scale.
+ The fifth argument is the probe number.
+ The sixth argument is the probe name."
+ --#TYPE "APC ENV: Long-term inc. temp rate violation cleared."
+ --#SUMMARY "Long-term inc. temp rate violation cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 372
+
+envLTDecTempRateViolation TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits,
+ emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Long-term decreasing temperature rate violated on the probe.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the current temperature.
+ The fourth argument is the temperature scale.
+ The fifth argument is the probe number.
+ The sixth argument is the probe name."
+ --#TYPE "APC ENV: Long-term dec. temp rate violation."
+ --#SUMMARY "Long-term dec. temp rate violation."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 373
+
+envLTDecTempRateViolationCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits,
+ emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Long-term decreasing temperature rate cleared on the probe.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the current temperature.
+ The fourth argument is the temperature scale.
+ The fifth argument is the probe number.
+ The sixth argument is the probe name."
+ --#TYPE "APC ENV: Long-term dec. temp rate violation cleared."
+ --#SUMMARY "Long-term dec. temp rate violation cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 374
+
+-- Battery Management System Traps
+
+bmsCriticalCondition TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: A Battery Management System critical condition was detected.
+ The first variable is the error condition text message.
+ The second variable is the error number."
+ --#TYPE "APC BMS: A critical condition was detected. "
+ --#SUMMARY "A critical condition was detected. "
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 375
+
+bmsCriticalConditionCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A Battery Management System critical condition was cleared.
+ The first variable is the error condition text message.
+ The second variable is the error number."
+ --#TYPE "APC BMS: A critical condition was cleared. "
+ --#SUMMARY "A critical condition was cleared. "
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 376
+
+bmsWarningCondition TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "WARNING: A Battery Management System warning condition was detected.
+ The first variable is the error condition text message.
+ The second variable is the error number."
+ --#TYPE "APC BMS: A warning condition was detected. "
+ --#SUMMARY "A warning condition was detected. "
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 377
+
+bmsWarningConditionCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "WARNING: A Battery Management System warning condition was cleared.
+ The first variable is the error condition text message.
+ The second variable is the error number."
+ --#TYPE "APC BMS: A warning condition was cleared. "
+ --#SUMMARY "A warning condition was cleared. "
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 378
+
+bmsInformationalCondition TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A Battery Management System informational condition was detected.
+ The first variable is the error condition text message.
+ The second variable is the error number."
+ --#TYPE "APC BMS: Informational condition detected. "
+ --#SUMMARY "An informational condition was detected. "
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 379
+
+bmsInformationalConditionCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A Battery Management System informational condition was cleared.
+ The first variable is the error condition text message.
+ The second variable is the error number."
+ --#TYPE "APC BMS: Informational condition was cleared. "
+ --#SUMMARY "An informational condition was cleared. "
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 380
+
+-- xATS Traps
+
+xATSOutputVoltageLowAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The device three-phase output voltage of the device is outside the specified limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the phase (1=L1-N, 2=L2-N, 3=L3-N, 4=unused, 5=L1-L2, 6=L2-L3, 7=L3-L1).
+ The fourth argument is the measured voltage in tenths of Volts.
+ The fifth argument is the threshold, in tenths of Volts, from which the alarm was generated."
+ --#TYPE "APC XATS: Output voltage out-of-range alarm."
+ --#SUMMARY "Output voltage is out-of-range."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 381
+
+xATSOutputVoltageLowAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The devices three-phase output voltage is back within the specified limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the phase (1=L1-N, 2=L2-N, 3=L3-N, 4=unused, 5=L1-L2, 6=L2-L3, 7=L3-L1).
+ The fourth argument is the measured voltage in tenths of Volts."
+ --#TYPE "APC XATS: Output voltage back in range."
+ --#SUMMARY "Output voltage in range."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 382
+
+xATSOutputVoltageHighAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The device three-phase output voltage of the device is outside the specified limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the phase (1=L1-N, 2=L2-N, 3=L3-N, 4=unused, 5=L1-L2, 6=L2-L3, 7=L3-L1).
+ The fourth argument is the measured voltage in tenths of Volts.
+ The fifth argument is the threshold, in tenths of Volts, above which the alarm is generated."
+ --#TYPE "APC XATS: Output voltage out-of-range alarm."
+ --#SUMMARY "Output voltage is out-of-range."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 383
+
+xATSOutputVoltageHighAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The devices three-phase output voltage is back within the specified limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the phase (1=L1-N, 2=L2-N, 3=L3-N, 4=unused, 5=L1-L2, 6=L2-L3, 7=L3-L1).
+ The fourth argument is the measured voltage in tenths of Volts."
+ --#TYPE "APC XATS: Output voltage back in range."
+ --#SUMMARY "Output voltage in range."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 384
+
+xATSOutputCurrentLowAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The devices three-phase load current is outside the specified limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the phase (1=L1, 2=L2, 3=L3, 4=Neutral, 5=L1-2, 6=L2-3, 7=L3-1).
+ The fourth argument is the measured current in Amps.
+ The fifth argument is the threshold, in Amps, from which the alarm was generated."
+ --#TYPE "APC XATS: Output (load) current out-of-range alarm."
+ --#SUMMARY "Output current is out-of-range."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 385
+
+xATSOutputCurrentLowAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The devices three-phase output current is back within the specified limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the phase (1=L1, 2=L2, 3=L3, 4=Neutral).
+ The fourth argument is the measured current in Amps."
+ --#TYPE "APC XATS: Output (load) current back in range."
+ --#SUMMARY "Output current in range."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 386
+
+xATSOutputCurrentHighAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The devices three-phase load current is outside the specified limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the phase (1=L1, 2=L2, 3=L3, 4=Neutral).
+ The fourth argument is the measured current in Amps.
+ The fifth argument is the threshold, in Amps, from which the alarm was generated."
+ --#TYPE "APC XATS: Output (load) current out-of-range alarm."
+ --#SUMMARY "Output current is out-of-range."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 387
+
+xATSOutputCurrentHighAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The devices three-phase output current is back within the specified limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the phase (1=L1, 2=L2, 3=L3, 4=Neutral).
+ The fourth argument is the measured current in Amps."
+ --#TYPE "APC XATS: Output (load) current back in range."
+ --#SUMMARY "Output current in range."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 388
+
+
+xATSOutputFrequencyAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The devices output frequency is outside the specified limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the frequency deviation from the nominal in tenths of Hertz.
+ The fourth argument is the frequency deviation threshold in tenths of Hertz,
+ from which the alarm was generated."
+ --#TYPE "APC XATS: Output frequency out-of-range alarm."
+ --#SUMMARY "Output frequency is out-of-range."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 389
+
+xATSOutputFrequencyAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The devices output frequency is back within the specified limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XATS: Output frequency back in range."
+ --#SUMMARY "Output frequency in range."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 390
+
+xATSInternalCommError TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: There is an internal communication error in the device.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XATS: Internal communication error."
+ --#SUMMARY "Internal communication error."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 391
+
+xATSInternalCommErrorCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Internal communication has been restored.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XATS: Internal Communication error cleared."
+ --#SUMMARY "ATS Communication error cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 392
+
+xATSDataCommMismatchError TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: A data incompatibility exists within the device. This
+ is typically the result of mismatches between firmware revisions
+ of the transfer switch controller and the Network Management interface.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XATS: Data mismatch error."
+ --#SUMMARY "ATS data mismatch error."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 393
+
+xATSDataCommMismatchErrorCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The internal data incompatibility has been resolved.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XATS: data mismatch error cleared."
+ --#SUMMARY "ATS data mismatch error cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 394
+
+xATSGenCommLost TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "WARNING: The XATS cannot communicate with the generator.
+ This will make unavailable all the xATSGenerator OIDs.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XATS: No communication with generator."
+ --#SUMMARY "ATS/Generator communication lost."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 395
+
+xATSGenCommEstablished TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The XATS has established communication with the generator.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XATS: Communication with generator established."
+ --#SUMMARY "ATS/generator communication established."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 396
+
+xATSNeutralPosition TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger,
+ mtrapargsString }
+ DESCRIPTION
+ "WARNING: XATS has transferred to neutral position.
+ In this position neither Source 1 nor Source 2 is selected,
+ and the XATS will have no output voltage.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the mode in which the switch is operating
+ (1=Auto, 2=Not-in-Auto, Abnormal Condition 3=Not-in-Auto, manual)."
+ --#TYPE "APC XATS: Transferred to the neutral (no output power) position."
+ --#SUMMARY "Transferred to neutral."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 397
+
+xATSSwitchTransferEvent TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: XATS has transferred from one source to the other.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the mode in which the switch is operating.
+ (1=Auto, 2=Not-in-Auto, Abnormal Condition 3=Not-in-Auto, manual).
+ The fourth argument is the input source selected (1=Source 1, 2=Source 2).
+ The fifth argument is type of transfer that took place. (1=Closed, 2=Open, 3=Unknown)"
+ --#TYPE "APC XATS: Transferred from Source-X to Source-Y."
+ --#SUMMARY "Source-to-Source transfer."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 398
+
+xATSInternalATSFault TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: An internal XATS fault has been detected.
+ The XATS may have forced itself to not-in-auto mode (abnormal condition),
+ as indicated by the xATSSwitchStatusAutoSwitchOperationalMode OID.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument indicates the detected fault.
+
+ 1=Cannot Close S1
+ 2=Cannot Close S2
+ 3=Cannot Open S1
+ 4=Cannot Open S2
+ 5=Cannot Trip Open S1
+ 6=Cannot Trip Open S2
+ 7=Start Contact Failure
+ 8=Voltage Sensing Failure"
+
+ --#TYPE "APC XATS: Internal fault detected."
+ --#SUMMARY "ATS internal fault detected."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 399
+
+xATSInternalATSFaultCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The detected internal XATS fault has been cleared.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument indicates the detected fault.
+
+ 1=Cannot Close S1
+ 2=Cannot Close S2
+ 3=Cannot Open S1
+ 4=Cannot Open S2
+ 5=Cannot Trip Open S1
+ 6=Cannot Trip Open S2
+ 7=Start Contact Failure
+ 8=Voltage Sensing Failure"
+
+ --#TYPE "APC XATS: Internal fault cleared."
+ --#SUMMARY "ATS internal fault cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 400
+
+xATSEngineStartAsserted TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The XATS has asserted the Engine Start contact.
+ This should result in the generator producing output voltage.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument indicates the reason that the start signal was asserted
+ 1=Unknown, 2=S1 Low Voltage, 3=S1 High Voltage, 4=S1 Line Imbalance,
+ 5=S1 Freq Range, 6=S1 Bad Rotation."
+ --#TYPE "APC XATS: Engine Start signal asserted."
+ --#SUMMARY "Engine Start asserted."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 401
+
+xATSEngineStopAsserted TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The XATS has de-asserted the Engine Start contact.
+ This should result in the generator shutting down, and producing no output voltage.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XATS: Engine Stop signal asserted."
+ --#SUMMARY "Engine Stop asserted."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 402
+
+xATSStartFailure TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The generator failed to start. After assertion of the
+ Engine Start signal, the quality of Source 2 was not seen as good.
+ This alarm can be cleared using the xATSSwitchStatusClearLatchedAlarms OID.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument indicates the line quality at S2
+ 1=Unknown, 2=S2 Low Voltage, 3=S2 High Voltage, 4=S2 Line Imbalance,
+ 4=S2 Freq Range, 5=S2 Bad Rotation."
+ --#TYPE "APC XATS: Generator failed to start alarm."
+ --#SUMMARY "Generator failed to start."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 403
+
+xATSStopFailure TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "WARNING: The generator failed to stop. After de-assertion of the
+ Engine Start signal, the quality of Source 2 continued to be seen as good.
+ This alarm can be cleared using the xATSSwitchStatusClearLatchedAlarms OID.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XATS: Generator failed to stop alarm."
+ --#SUMMARY "Generator failed to stop."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 404
+
+xATSNotInAutomaticMode TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Automatic Transfer Switch is not in automatic mode.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The xATSSwitchStatusAutoSwitchStatus OID and the
+ xATSSwitchStatusAutoSwitchOperationalMode OID
+ can provide more information about the state of the XATS."
+ --#TYPE "APC XATS: XATS is not-in-automatic mode."
+ --#SUMMARY "ATS not in auto."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 405
+
+xATSNotInAutomaticModeCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Automatic Transfer Switch is in automatic mode.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XATS: XATS in auto mode."
+ --#SUMMARY "ATS in auto mode."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 406
+
+xATSEpoTripped TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The device's Emergency Power Off (EPO) circuit is tripped.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XATS: Emergency Power Off (EPO) tripped."
+ --#SUMMARY "EPO tripped."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 407
+
+xATSEpoReset TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The device's Emergency Power Off (EPO) circuit has been
+ reset to the armed position.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XATS: Emergency Power Off (EPO) reset."
+ --#SUMMARY "EPO armed."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 408
+
+xATSEpoTestMode TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "WARNING: The device's Emergency Power Off (EPO) circuit has been
+ switched back to the test position.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XATS: Emergency Power Off (EPO) in test mode."
+ --#SUMMARY "EPO disabled."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 409
+
+xATSEpoArmed TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The device's Emergency Power Off (EPO) circuit has been
+ switched back to the armed position.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XATS: Emergency Power Off (EPO) enabled."
+ --#SUMMARY "EPO armed."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 410
+
+xATSTestInitiated TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A scheduled test has been initiated.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the type of test initiated (1=scheduled, 2=manual)."
+ --#TYPE "APC XATS: Test initiated."
+ --#SUMMARY "Test initiated."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 411
+
+xATSTestCancelled TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The scheduled test has been canceled
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the type of test initiated (1=scheduled, 2=manual)."
+ --#TYPE "APC XATS: Test cancelled."
+ --#SUMMARY "Test cancelled."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 412
+
+xATSTestFailed TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The initiated test has failed.
+ This alarm can be cleared using the xATSSwitchStatusClearLatchedAlarms OID.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XATS: Initiated test failed."
+ --#SUMMARY "Initiated test failed."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 413
+
+xATSTestPassed TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The initiated test has passed
+ switched back to the armed position.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XATS: Initiated test passed."
+ --#SUMMARY "Initiated test passed."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 414
+
+xATSInputContactStateAbnormal TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger,
+ mtrapargsString02, mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: A user input contact on the device has changed to its abnormal state.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the input contact number.
+ The fourth argument is the input contact name.
+ The fifth argument is the input contact state (1=OPEN, 2=CLOSED).
+ The sixth argument is the configured normal input contact state (1=OPEN, 2=CLOSED)."
+ --#TYPE "APC XATS: Input contact has changed to its abnormal state."
+ --#SUMMARY "Input contact has changed to its abnormal state."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 415
+
+xATSInputContactStateNormal TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger,
+ mtrapargsString02, mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A user input contact on the device has changed to its normal state.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the input contact number.
+ The fourth argument is the input contact name.
+ The fifth argument is the input contact state (1=OPEN, 2=CLOSED).
+ The sixth argument is the configured normal input contact state (1=OPEN, 2=CLOSED)."
+ --#TYPE "APC XATS: Input contact has changed to its normal state."
+ --#SUMMARY "Input contact has changed to its normal state."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 416
+
+xATSRemoteStartContactMismatch TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The state of the generator's Remote Start input
+ and the ATS's Engine Start output do not match.
+ This indicates something wrong in the Engine Start wiring,
+ which must be corrected. This condition will prevent the
+ generator from being started when needed.
+
+ (See also: xATSGeneratorStatusRemoteStart
+ and xATSSwitchStatusEngineStartSignal OIDs)
+
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XATS: Generator/ATS start contact mismatch."
+ --#SUMMARY "Generator/ATS start contact mismatch."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 417
+
+xATSRemoteStartContactMismatchCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Mismatch in the state of the generator's
+ Remote Start input and the ATS's Engine Start output as been resolved.
+ This indicates something wrong in the Engine Start wiring,
+ which must be corrected. This condition will prevent the
+ generator from being started when needed.
+
+ (See also: xATSGeneratorStatusRemoteStart
+ and xATSSwitchStatusEngineStartSignal OIDs)
+
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XATS: Generator/ATS start contact mismatch cleared."
+ --#SUMMARY "Generator/ATS start contact mismatch cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 418
+
+xATSDoorOpenAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "WARNING: The XATS exterior panel door is open.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XATS: Panel door is open alarm."
+ --#SUMMARY "Panel door open alarm."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 419
+
+xATSDoorOpenAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The external door to the device is closed.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XATS: Panel door open alarm cleared."
+ --#SUMMARY "Panel door open alarm cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 420
+
+xATSDCBackupAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "WARNING: The XATS's DC backup has been lost. The XATS will lose power
+ on Source 1 failure, causing the Engine Start signal to be asserted.
+ The XATS will then restart from Source 2.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XATS: DC backup failure."
+ --#SUMMARY "ATS DC backup failure."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 421
+
+xATSDCBackupAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: DC backup alarm has been cleared in the device.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XATS: DC backup alarm cleared."
+ --#SUMMARY "DC backup alarm cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 422
+
+-- xATS Generator Traps
+
+xATSGeneratorLowCoolantLevelAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Low coolant level has been detected in the generator.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator low coolant level alarm."
+ --#SUMMARY "Generator low coolant level alarm."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 423
+
+xATSGeneratorLowCoolantLevelAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The detected low coolant level has been cleared in the generator.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator low coolant level alarm cleared."
+ --#SUMMARY "Generator low coolant level alarm cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 424
+
+xATSGeneratorVeryLowCoolantLevelAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Very low coolant level has been detected in the generator.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator very low coolant level alarm."
+ --#SUMMARY "Generator very low coolant level alarm."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 425
+
+xATSGeneratorVeryLowCoolantLevelAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The detected Very low coolant level has been cleared in the generator.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator very low coolant level alarm cleared."
+ --#SUMMARY "Generator very low coolant level alarm cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 426
+
+xATSGeneratorHighCoolantTempAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: High coolant temperature has been detected in the generator.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator high coolant temperature alarm."
+ --#SUMMARY "Generator high coolant temperature alarm."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 427
+
+xATSGeneratorHighCoolantTempAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The detected high coolant temperature has been cleared in the generator.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator high coolant temperature alarm cleared."
+ --#SUMMARY "Generator high coolant temperature alarm cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 428
+
+xATSGeneratorVeryHighCoolantTempAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Very high coolant temperature has been detected in the generator.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator very high coolant temperature alarm."
+ --#SUMMARY "Generator very high coolant temperature alarm."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 429
+
+xATSGeneratorVeryHighCoolantTempAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The Very high coolant temperature condition has been cleared in the generator.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator very high coolant temperature alarm cleared."
+ --#SUMMARY "Generator very high coolant temperature alarm cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 430
+
+xATSGeneratorLowCoolantTempAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "WARNING: Low coolant temperature has been detected in the generator.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator low coolant temperature alarm."
+ --#SUMMARY "Generator low coolant temperature alarm."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 431
+
+xATSGeneratorLowCoolantTempAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The low coolant temperature condition has been cleared in the generator.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator low coolant temperature alarm cleared."
+ --#SUMMARY "Generator low coolant temperature alarm cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 432
+
+xATSGeneratorLowOilLevelAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Low oil level has been detected in the generator.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator low oil level alarm."
+ --#SUMMARY "Generator low oil level alarm."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 433
+
+xATSGeneratorLowOilLevelAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Low oil level alarm has been cleared in the generator.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator low oil level alarm cleared."
+ --#SUMMARY "Generator low oil level alarm cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 434
+
+xATSGeneratorLowBatteryVoltDuringCrankAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The generator's battery voltage has been detected
+ as low while cranking the engine.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Low batt. voltage while cranking alarm."
+ --#SUMMARY "Generator low battery volts while cranking alarm."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 435
+
+xATSGeneratorLowBatteryVoltDuringCrankAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The generator's low battery voltage while
+ cranking condition has been cleared.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "XGEN: Generator low batt. voltage while cranking alarm cleared."
+ --#SUMMARY "Generator low battery volts while cranking alarm cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 436
+
+xATSGeneratorVeryLowBatteryVoltDuringCrankAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The generator's battery voltage has been detected
+ as very low while cranking the engine.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "XGEN: Generator v.low battery voltage while cranking alarm."
+ --#SUMMARY "Generator v.low battery volts while cranking alarm."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 437
+
+xATSGeneratorVeryLowBatteryVoltDuringCrankAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The generator's high battery voltage while
+ cranking condition has been cleared.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "XGEN: Generator v.low batt volt, while cranking alarm cleared."
+ --#SUMMARY "Generator v.low battery volts while cranking alarm cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 438
+
+xATSGeneratorEStop TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsInteger02, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The generator's emergency stop input has been activated.
+ After the emergency stop signal has been removed, the E-Stop condition
+ must be cleared before the generator can be started again.
+ E-Stop conditions can only be cleared via the generator front panel.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code.
+ The fourth argument is the type of E-Stop (1=LOCAL, 2=REMOTE)."
+ --#TYPE "APC XGEN: Generator emergency stop engaged."
+ --#SUMMARY "Generator emergency stop engaged."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE NONOPERATIONAL
+ ::= 439
+
+xATSGeneratorEStopCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsInteger02, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The generator's emergency stop condition has been cleared.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code.
+ The fourth argument is the type of E-Stop (1=LOCAL, 2=REMOTE)."
+ --#TYPE "APC XGEN: Generator emergency stop condition cleared."
+ --#SUMMARY "Generator emergency stop condition cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 440
+
+xATSGeneratorHighBatteryVolt TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "WARNING: The generator's battery voltage has been detected as high.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator high battery voltage."
+ --#SUMMARY "Generator high battery volts."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 441
+
+xATSGeneratorHighBatteryVoltCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The detected high battery voltage has been cleared, on the generator.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator high battery voltage condition cleared."
+ --#SUMMARY "Generator high battery volts condition cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 442
+
+xATSGeneratorLowBatteryVolt TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The generator's battery voltage has been detected as low.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator low battery voltage."
+ --#SUMMARY "Generator low battery volts."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 443
+
+xATSGeneratorLowBatteryVoltCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The detected low battery voltage has been cleared, on the generator.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator low battery voltage condition cleared."
+ --#SUMMARY "Generator low battery volts condition cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 444
+
+xATSGeneratorControlSwitchNotAuto TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The control switch on the generator is not in auto position.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator not-in-automatic mode."
+ --#SUMMARY "Generator not-in-auto."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 445
+
+xATSGeneratorControlSwitchNotAutoCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The control switch on the generator is in auto position.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator automatic mode restored."
+ --#SUMMARY "Generator not-in-auto cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 446
+
+xATSGeneratorLowOilPressure TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The generator's oil pressure has been detected as low.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator low oil pressure."
+ --#SUMMARY "Generator low oil pressure."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 447
+
+xATSGeneratorLowOilPressureCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The detected low oil pressure has been cleared, on the generator.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator low oil pressure condition cleared."
+ --#SUMMARY "Generator low oil pressure condition cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 448
+
+xATSGeneratorVeryLowOilPressure TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The generator's oil pressure has been detected as very low.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator v.low oil pressure."
+ --#SUMMARY "Generator v.low oil pressure."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 449
+
+xATSGeneratorVeryLowOilPressureCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The detected v.low oil pressure has been cleared, on the generator.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator v.low oil pressure condition cleared."
+ --#SUMMARY "Generator v.low oil pressure condition cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 450
+
+xATSGeneratorOverload TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The generator is overloaded.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator is in overload event."
+ --#SUMMARY "Generator on overload event."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 451
+
+xATSGeneratorOverloadCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The generator is running within loading limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator is in overload event cleared."
+ --#SUMMARY "Generator on overload event cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 452
+
+xATSGeneratorLowACVEvent TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The generator AC voltage is outside the acceptable bounds.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: State of the Generator ac voltage."
+ --#SUMMARY " State of the Generator ac voltage."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 453
+
+xATSGeneratorLowACVEventCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The generator AC voltage is within normal bounds.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: State of the Generator ac voltage cleared."
+ --#SUMMARY "State of the Generator ac voltage cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 454
+
+xATSGeneratorHighACVEvent TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The generator AC voltage is outside the acceptable bounds.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: State of the Generator ac voltage."
+ --#SUMMARY " State of the Generator ac voltage."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 455
+
+xATSGeneratorHighACVEventCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The generator AC voltage is within normal bounds.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: State of the Generator ac voltage cleared."
+ --#SUMMARY "State of the Generator ac voltage cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 456
+
+xATSGeneratorOverspeed TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The generator is running over the acceptable RPM.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator overspeed condition."
+ --#SUMMARY "Generator overspeed condition."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 457
+
+xATSGeneratorOverspeedCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The generator overspeed shutdown has been cleared.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator overspeed condition cleared."
+ --#SUMMARY "Generator overspeed condition cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 458
+
+xATSGeneratorEngineCold TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The generator engine is cold, may not start.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator engine is cold, may not start."
+ --#SUMMARY "Generator engine is cold."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 459
+
+xATSGeneratorEngineColdCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The engine is not cold to start.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Engine is cold to start condition cleared."
+ --#SUMMARY "Engine is cold to start condition cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 460
+
+xATSGeneratorOutputBreakerOpen TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The generators output breaker has been detected as open.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator output breaker open alarm."
+ --#SUMMARY "Generator output breaker open."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE NONOPERATIONAL
+ ::= 461
+
+xATSGeneratorOutputBreakerOpenCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The engine is not cold to start.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator output breaker open alarm cleared."
+ --#SUMMARY "Generator output breaker open cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 462
+
+xATSGeneratorLowFuelLevelAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "WARNING: The tank fuel level is below the limits specified
+ in the xATSGeneratorFuelSystemLowFuelLevelThreshold OID.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the measured fuel level in percent of full."
+ --#TYPE "APC XGEN: Low fuel level alarm."
+ --#SUMMARY "Generator low fuel level alarm."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 463
+
+xATSGeneratorLowFuelLevelAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The tank fuel level is back above the specified limit.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XGEN: Low fuel level alarm cleared."
+ --#SUMMARY "Generator low fuel level alarm cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 464
+
+xATSGeneratorVeryLowFuelLevelAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The tank fuel level is below the low threshold limits.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the measured tank fuel level in percent of full."
+ --#TYPE "APC XGEN: Very Low fuel level alarm."
+ --#SUMMARY "Generator very low fuel level alarm."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 465
+
+xATSGeneratorVeryLowFuelLevelAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The detected low tank level has been cleared in the device.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XGEN: Very low fuel level alarm cleared."
+ --#SUMMARY "Generator very low fuel level alarm cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 466
+
+xATSGeneratorLowRunTimeAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "WARNING: The estimated runtime is below the limits specified.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the estimated runtime in hours."
+ --#TYPE "APC XGEN: Low run time alarm."
+ --#SUMMARY "Generator low run time alarm."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 467
+
+xATSGeneratorLowRunTimeAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The detected low runtime has been cleared in the device.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XGEN: Low run time alarm cleared."
+ --#SUMMARY "Generator low run time alarm."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 468
+
+xATSGeneratorVeryLowRunTimeAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The estimated runtime is below the limits specified
+ in the xATSGeneratorFuelSystemVeryLowRunTimeThreshold OID.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the estimated runtime in hours."
+ --#TYPE "APC XGEN: Very low run time alarm."
+ --#SUMMARY "Generator very low run time alarm."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 469
+
+xATSGeneratorVeryLowRunTimeAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The detected low runtime has been cleared in the device.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XGEN: Very low run time alarm cleared."
+ --#SUMMARY "Generator very low run time alarm."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 470
+
+xATSGeneratorServiceDueAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "WARNING: The generator is due for scheduled service.
+ Generation of this alarm is based on calender days since
+ and/or actual generator run-hours since last service.
+ This alarm is cleared using the xATSGeneratorServiceResetRecord OID.
+
+ (See also: xATSGeneratorServiceCalendarIntervalThreshold
+ and xATSGeneratorServiceRunHoursThreshold OIDs)
+
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XATS: Generator scheduled maintenance is due."
+ --#SUMMARY "Generator maintenance due."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 471
+
+xATSGeneratorServiceDueAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The generator's service registers have been reset.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XATS: Generator service due alarm is cleared."
+ --#SUMMARY "Generator service alarm is cleard."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 472
+
+xATSGeneratorShutdown TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The generator is shutdown.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator shutdown."
+ --#SUMMARY "Generator shutdown"
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 473
+
+xATSGeneratorShutdownCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The generator shutdown alarm is cleared.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator shutdown is cleared."
+ --#SUMMARY "Generator shutdown is cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 474
+
+xATSGeneratorBatteryCharger TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: The generator battery charger is nonfunctional.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator batt. charger is nonfunctional."
+ --#SUMMARY "Generator battery charger is nonfunctional"
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 475
+
+xATSGeneratorBatteryChargerCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: nonfunctionality of the generator battery is cleared.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: " Nonfunctionality of battery charger is cleared."
+ --#SUMMARY "non-functionality of Generator battery charger is cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 476
+
+xATSGeneratorGenericEvent TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "WARNING: Any generic generator event.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generator generic event."
+ --#SUMMARY "Generator generic event."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 477
+
+xATSGeneratorGenericEventCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Generated generic generator event is cleared.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the OEM's fault/event code."
+ --#TYPE "APC XGEN: Generic generator event is cleared."
+ --#SUMMARY "Generic generator event is cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 478
+
+-- xPDU Traps (part 2)
+
+xPDUInternalCommErrorCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Internal communication has been restored.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XPDU: Internal Communication error cleared."
+ --#SUMMARY "Communication error cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 479
+
+xPDUSystemStateAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName,
+ mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "WARNING: The PDU's breakers (Q1, Q2 & Q3) are in a configuration that might lead
+ to system unavailability. it may signify a temporary condition, when the breakers
+ are placed in an atypical manner as the user transitions to (UPS OPERATION or MAINTENANCE BYPASS)
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the type of alarm
+ (1=NO UPS INPUT, 2=NO PANEL FEED, 3=ATYPICAL BYPASS MODE)."
+ --#TYPE "APC XPDU: System state alarm ."
+ --#SUMMARY "PDU state alarm."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 480
+
+xPDUSystemStateNormal TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName,
+ mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The PDU's breakers (Q1, Q2 & Q3) are set in a configuration
+ that is a non-alarm state.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the type of alarm (1=UPS OPERATION, 2=MAINTENANCE BYPASS)."
+ --#TYPE "APC XPDU: System state returned to normal."
+ --#SUMMARY "PDU state normal."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 481
+
+xPDUEpoTestMode TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "WARNING: The device's Emergency Power Off (EPO) circuit has been
+ switched back to the test position.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XPDU: Emergency Power Off (EPO) in test mode."
+ --#SUMMARY "EPO disabled."
+ --#ARGUMENTS { }
+ --#SEVERITY WARNING
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 482
+
+xPDUEpoArmed TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: The device's Emergency Power Off (EPO) circuit has been
+ switched back to the armed position.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XPDU: Emergency Power Off (EPO) enabled."
+ --#SUMMARY "EPO armed."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 483
+
+xPDUFuseBlownAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName,
+ mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: One or more fuses in this PDU have been detected as open.
+ These fuses are in the feed to the UPS associated with this PDU.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the phase (1=L1, 2=L2, 3=L3)."
+ --#TYPE "APC XPDU: Check fuse alarm."
+ --#SUMMARY "Fuse detected opened."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 484
+
+xPDUFuseBlownAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName,
+ mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A previous check fuse alarm in this PDU has cleared.
+ These fuses are in the feed to the UPS associated with this PDU.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the phase (1=L1, 2=L2, 3=L3)."
+ --#TYPE "APC XPDU: Check fuse alarm cleared."
+ --#SUMMARY "Fuse alarm cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 485
+
+xPDUBreakerPositionAlarm TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName,
+ mtrapargsInteger, mtrapargsInteger02, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: A PDU breaker is in a state that compromises system availability.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the breaker (1=MAIN INPUT, 2=BYPASS INPUT, 3=CROSS TIE).
+ The fourth argument is the breaker position (1=OPEN, 2=CLOSED)."
+ --#TYPE "APC XPDU: Breaker position alarm."
+ --#SUMMARY "Breaker position alarm."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 486
+
+xPDUBreakerPositionAlarmCleared TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName,
+ mtrapargsInteger, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A PDU breaker is no longer in a state that compromises system availability.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the breaker (1=MAIN INPUT, 2=BYPASS INPUT, 3=CROSS TIE)."
+ --#TYPE "APC XPDU: Breaker position alarm cleared."
+ --#SUMMARY "Breaker alarm cleared."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 487
+
+xPDUBreakerChangeEvent TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger,
+ mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: A system breaker or switch within the device has changed state.
+ They are generated when any of the Q1, Q2 or Q3 breakers have changed states.
+ The first argument is the host device serial number.
+ The second argument is the host device name.
+ The third argument is the breaker that has changed
+ (1=UPS FEED (Q1), 2=UPS OUTPUT(Q2), 3=MAINTENANCE BYPASS (Q3).
+ The fourth argument is the state of the breaker that has changed (1=OPEN, 2=CLOSED).
+ The fifth argument is a 8-bit field representing the state of all breakers in the system,
+ when any of one of the Q1, Q2 or Q3 breakers have changed state.
+
+ The bit map is represented in the following manner (b7, b6 ... b0)
+ b0 - UPS FEED (Q1)
+ b1 - MAINTENANCE BYPASS (Q3)
+ b2 - UPS OUTPUT (Q2)
+ b3 - MAIN INPUT
+ b4 - BYPASS INPUT
+ b5 - CROSS-TIE OUTPUT
+
+ Example: value of 60 (0x3C) indicates that the CROSS_TIE, BYPASS and MAIN INPUT, and Q2 breakers
+ are CLOSED and Q2, Q1 breakers are OPEN."
+ --#TYPE "APC XPDU: Breaker/switch change event."
+ --#SUMMARY "Breaker/switch change event."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 488
+
+xPDUControllerFirmwareUpdateTransferStart TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Start Controller firmware transfer in the device.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XPDU: Start controller firmware transfer."
+ --#SUMMARY "Start controller firmware transfer."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 489
+
+xPDUControllerFirmwareUpdateTransferComplete TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Transfer of Controller firmware was completed in the device.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XPDU: Controller firmware transfer completed."
+ --#SUMMARY "Controller firmware transfer completed."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 490
+
+xPDUControllerFirmwareUpdateTransferFailed TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Transfer of Controller firmware has failed in the PDU.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XPDU: Controller firmware transfer failed."
+ --#SUMMARY "Controller firmware transfer failed."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 491
+
+xATSControllerFirmwareUpdateTransferStart TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Start Controller firmware transfer in the device.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XATS: Start controller firmware transfer."
+ --#SUMMARY "Start controller firmware transfer."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 492
+
+xATSControllerFirmwareUpdateTransferComplete TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "INFORMATIONAL: Transfer of Controller firmware was completed in the device.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XATS: Controller firmware transfer completed."
+ --#SUMMARY "Controller firmware transfer completed."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 493
+
+xATSControllerFirmwareUpdateTransferFailed TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsString }
+ DESCRIPTION
+ "SEVERE: Transfer of Controller firmware has failed in the device.
+ The first argument is the host device serial number.
+ The second argument is the host device name."
+ --#TYPE "APC XATS: Controller firmware transfer failed."
+ --#SUMMARY "Controller firmware transfer failed."
+ --#ARGUMENTS { }
+ --#SEVERITY SEVERE
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE DEGRADED
+ ::= 494
+
+apcDeviceShutdownHeartbeat TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { mtrapargsInteger, mtrapargsTimeTicks, mtrapargsString}
+ DESCRIPTION
+ "INFORMATIONAL: "
+ --#TYPE "APC X:"
+ --#SUMMARY "."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 999
+
+apcDiscoveryAlarmStateTableUpdate TRAP-TYPE
+ ENTERPRISE apc
+ VARIABLES { apcDiscoveryDeviceAlarmStateChangeCount }
+ DESCRIPTION
+ "INTERNAL: A Discovery Alarm State Table Update trap is sent
+ when any data alarm state is added, removed, or its parameters
+ are changed in the condition table. This trap is
+ only for machine-to-machine communication. "
+ --#TYPE "APC X:"
+ --#SUMMARY "."
+ --#ARGUMENTS { }
+ --#SEVERITY INFORMATIONAL
+ --#TIMEINDEX 1
+ --#HELP ""
+ --#HELPTAG 0
+ --#STATE OPERATIONAL
+ ::= 1000
+
+END
diff --git a/fence/agents/autodetect/a.py b/fence/agents/autodetect/a.py
new file mode 100644
index 0000000..608d0f8
--- /dev/null
+++ b/fence/agents/autodetect/a.py
@@ -0,0 +1,8 @@
+from b import myf
+
+def maf():
+ return 5
+
+def maf2():
+ return myf()
+
\ No newline at end of file
diff --git a/fence/agents/autodetect/autodetect.py b/fence/agents/autodetect/autodetect.py
new file mode 100755
index 0000000..24d9a73
--- /dev/null
+++ b/fence/agents/autodetect/autodetect.py
@@ -0,0 +1,255 @@
+#!/usr/bin/python
+
+import pexpect
+import re
+import logging
+import time
+import sys
+import fencing
+
+import fence_apc
+import fence_bladecenter
+import fence_brocade
+import fence_rsa
+
+def check_agent(conn, options, found_prompt, prompts, test_fn, eol=None):
+ options["--action"] = "list"
+ options["--command-prompt"] = found_prompt
+ if any(x in options["--command-prompt"][0] for x in prompts):
+ options["--command-prompt"] = prompts
+
+ return test_fn(conn, options)
+ return False
+
+def get_list(conn, options, found_prompt, prompts, list_fn, eol=None):
+ def test_fn(conn, options):
+ if len(list_fn(conn, options)) > 0:
+ return True
+ else:
+ return False
+
+ return check_agent(conn, options, found_prompt, prompts, test_fn, eol)
+
+""" *************************** MAIN ******************************** """
+
+
+def detect_login_telnet(options):
+ options["--ipport"] = 23
+ re_login_string = r"([\r\n])((?!Last )login\s*:)|((?!Last )Login Name: )|(username: )|(User Name :)"
+ re_login = re.compile(re_login_string, re.IGNORECASE)
+ re_pass = re.compile("(password)|(pass phrase)", re.IGNORECASE)
+
+ options["eol"] = "\r\n"
+ conn = fencing.fspawn(options, options["--telnet-path"])
+ conn.send("set binary\n")
+ conn.send("open %s -%s\n"%(options["--ip"], options["--ipport"]))
+
+ conn.log_expect(re_login, int(options["--login-timeout"]))
+ conn.send_eol(options["--username"])
+
+ ## automatically change end of line separator
+ screen = conn.read_nonblocking(size=100, timeout=int(options["--shell-timeout"]))
+ if re_login.search(screen) != None:
+ options["eol"] = "\n"
+ conn.send_eol(options["--username"])
+ conn.log_expect(re_pass, int(options["--login-timeout"]))
+ elif re_pass.search(screen) == None:
+ conn.log_expect(re_pass, int(options["--shell-timeout"]))
+
+ try:
+ conn.send_eol(options["--password"])
+ valid_password = conn.log_expect([re_login] + \
+ [pexpect.TIMEOUT], int(options["--shell-timeout"]))
+ if valid_password == 0:
+ ## password is invalid or we have to change EOL separator
+ options["eol"] = "\r"
+ conn.send_eol("")
+ screen = conn.read_nonblocking(size=100, timeout=int(options["--shell-timeout"]))
+ ## after sending EOL the fence device can either show 'Login' or 'Password'
+ if re_login.search(conn.after + screen) != None:
+ conn.send_eol("")
+ conn.send_eol(options["--username"])
+ conn.log_expect(re_pass, int(options["--login-timeout"]))
+ conn.send_eol(options["--password"])
+ conn.log_expect(pexpect.TIMEOUT, int(options["--login-timeout"]))
+ except KeyError:
+ fencing.fail(fencing.EC_PASSWORD_MISSING)
+
+ found_cmd_prompt = guess_prompt(conn, options, conn.before)
+ return (found_cmd_prompt, conn)
+
+def guess_prompt(conn, options, before=""):
+ time.sleep(2)
+ conn.send_eol("")
+ conn.send_eol("")
+
+ conn.log_expect(pexpect.TIMEOUT, int(options["--login-timeout"]))
+ lines = re.split(r'\r|\n', before + conn.before)
+ logging.info("Cmd-prompt candidate: %s" % (lines[-1]))
+ if lines.count(lines[-1]) >= 3:
+ found_cmd_prompt = ["\n" + lines[-1]]
+ else:
+ if lines.count(lines[-1]) == 2:
+ conn.log_expect(lines[-1], int(options["--shell-timeout"]))
+ conn.log_expect(lines[-1], int(options["--shell-timeout"]))
+ options["eol"] = "\r"
+ conn.send_eol("")
+ time.sleep(0.1)
+ conn.send_eol("")
+ time.sleep(0.1)
+ conn.send_eol("")
+ time.sleep(0.1)
+ conn.log_expect(pexpect.TIMEOUT, int(options["--login-timeout"]))
+ lines = re.split(r'\r|\n', conn.before)
+ logging.info("Cmd-prompt candidate: %s" % (lines[1]))
+ if lines.count(lines[-1]) >= 3:
+ found_cmd_prompt = ["\n" + lines[-1]]
+ else:
+ print "Unable to obtain command prompt automatically"
+ sys.exit(1)
+ else:
+ print "Unable to obtain command prompt automatically"
+ print lines[-1]
+ print conn.before
+ sys.exit(1)
+
+ conn.log_expect(found_cmd_prompt, int(options["--shell-timeout"]))
+ conn.log_expect(found_cmd_prompt, int(options["--shell-timeout"]))
+ conn.log_expect(found_cmd_prompt, int(options["--shell-timeout"]))
+
+ # Handle situation when CR/LF is interpreted as ENTER, ENTER
+ # In such case we will have get two additional command prompts to get on right position
+ res = conn.log_expect([pexpect.TIMEOUT] + found_cmd_prompt, int(options["--shell-timeout"]))
+ if res > 0:
+ # @note: store that information?
+ print "CMD twice"
+ conn.log_expect(found_cmd_prompt, int(options["--shell-timeout"]))
+ return found_cmd_prompt
+
+def detect_login_ssh(options, version=2):
+ options["--ipport"] = 22
+ if version == "1":
+ command = '%s %s@%s -p %s -1 -c blowfish -o PubkeyAuthentication=no' % (options["--ssh-path"], options["--username"], options["--ip"], options["--ipport"])
+ else:
+ command = '%s %s@%s -p %s -o PubkeyAuthentication=no' % (options["--ssh-path"], options["--username"], options["--ip"], options["--ipport"])
+
+ conn = fencing.fspawn(options, command)
+ result = conn.log_expect(["ssword:", "Are you sure you want to continue connecting (yes/no)?"], int(options["--login-timeout"]))
+ if result == 1:
+ conn.send("yes\n")
+ conn.log_expect("ssword:", int(options["--login-timeout"]))
+
+ conn.send(options["--password"] + "\n")
+
+ found_cmd_prompt = guess_prompt(conn, options, conn.before)
+ return (found_cmd_prompt, conn)
+
+def detect_device(conn, options, found_cmd_prompt):
+ if get_list(conn, options, found_cmd_prompt, prompts=["\n>", "\napc>"], list_fn=fence_apc.get_power_status):
+ fencing.fence_logout(conn, "4")
+ return "fence_apc # older serie"
+
+ if get_list(conn, options, found_cmd_prompt, prompts=["\n>", "\napc>"], list_fn=fence_apc.get_power_status5):
+ fencing.fence_logout(conn, "exit")
+ return "fence_apc # v5+"
+
+ ## Test fence_lpar with list action (HMC version 3 and 4)
+ def test_lpar(conn, options):
+ conn.send_eol("lssyscfg; echo $?")
+ conn.log_expect(options["--command-prompt"], int(options["--shell-timeout"]))
+ if "\n0\r\n" in conn.before:
+ return True
+ else:
+ return False
+
+ if check_agent(conn, options, found_cmd_prompt, [r":~>", r"]\$", r"\$ "], test_lpar):
+ fencing.fence_logout(conn, "quit")
+ return "fence_lpar # 2"
+
+ if get_list(conn, options, found_cmd_prompt, prompts=["system>"], list_fn=fence_bladecenter.get_blades_list):
+ fencing.fence_logout(conn, "exit")
+ return "fence_bladecenter #2"
+
+ if get_list(conn, options, found_cmd_prompt, prompts=["> "], list_fn=fence_brocade.get_power_status, eol="\n"):
+ fencing.fence_logout(conn, "exit")
+ return "fence_brocade #2"
+
+ if get_list(conn, options, found_cmd_prompt, prompts=["> "], list_fn=fence_rsa.get_power_status):
+ fencing.fence_logout(conn, "exit")
+ return "fence_rsa"
+
+ return None
+
+# Test fence ilo moonshot
+#cmd_possible = ["MP>", "hpiLO->"]
+#options["--action"] = "list"
+#options["--command-prompt"] = found_cmd_prompt
+#options["eol"] = "\n"
+#if any(x in options["--command-prompt"][0] for x in cmd_possible):
+# options["--command-prompt"] = cmd_possible
+#
+# plugs = fence_ilo_moonshot.get_power_status(conn, options)
+# if len(plugs) > 0:
+# print "fence_ilo_moonshot # "
+# fencing.fence_logout(conn, "exit")
+# sys.exit(0)
+
+def xxx():
+ ## login mechanism as in fencing.py.py - differences is that we do not know command prompt
+ #logging.getLogger().setLevel(logging.DEBUG)
+ options = {}
+ options["--ssh-path"] = "/usr/bin/ssh"
+ options["--telnet-path"] = "/usr/bin/telnet"
+
+ # virtual machine
+ #options["--username"] = "marx"
+ #options["--ip"] = "localhost"
+ #options["--password"] = "batalion"
+
+ # APC
+ #options["--username"] = "labuser"
+ #options["--ip"] = "pdu-bar.englab.brq.redhat.com"
+ #options["--password"] = "labuser"
+
+ # LPAR
+ options["--username"] = "rhts"
+ options["--ip"] = "ppc-hmc-01.mgmt.lab.eng.bos.redhat.com"
+ #options["--ip"] = "ibm-js22-vios-02.rhts.eng.bos.redhat.com"
+ options["--password"] = "100yard-"
+
+ # Bladecenter
+ options["--ip"] = "blade-mm.englab.brq.redhat.com"
+
+ # Brocade
+ #options["--ip"] = "hp-fcswitch-01.lab.bos.redhat.com"
+ #options["--password"] = "password"
+ #options["--username"] = "admin"
+
+ # iLO Moonshot - chova sa to divne
+ #options["--password"] = "Access at gis"
+ #options["--username"] = "rcuser"
+ #options["--ip"] = "hp-m1500-mgmt.gsslab.pnq.redhat.com"
+
+ #options["--ip"] = "ibm-x3755-01-rsa.ovirt.rhts.eng.bos.redhat.com"
+ #options["--username"] = "USERID"
+ #options["--password"] = "PASSW0RD"
+
+ options["--login-timeout"] = "10"
+ options["--shell-timeout"] = "5"
+ options["--power-timeout"] = "10"
+
+ options["eol"] = "\r\n"
+
+ (found_cmd_prompt, conn) = detect_login_telnet(options)
+ #(found_cmd_prompt, conn) = detect_login_ssh(options)
+
+ res = detect_device(conn, options, found_cmd_prompt)
+ if not res is None:
+ print res
+ sys.exit(0)
+ else:
+ ## Nothing found
+ sys.exit(2)
+
+if __name__ == "__main__":
+ xxx()
diff --git a/fence/agents/autodetect/autodetect_test.py b/fence/agents/autodetect/autodetect_test.py
new file mode 100755
index 0000000..a18aaed
--- /dev/null
+++ b/fence/agents/autodetect/autodetect_test.py
@@ -0,0 +1,33 @@
+#!/usr/bin/python
+
+import unittest
+import autodetect as detect
+
+class TestDetectDevice(unittest.TestCase):
+ options = {}
+
+ def setUp(self):
+ self.options = {}
+ self.options["--ssh-path"] = "/usr/bin/ssh"
+ self.options["--telnet-path"] = "/usr/bin/telnet"
+ self.options["--login-timeout"] = "10"
+ self.options["--shell-timeout"] = "5"
+ self.options["--power-timeout"] = "10"
+ self.options["eol"] = "\r\n"
+
+ def test_bladecenter(self):
+ self.options["--username"] = "rhts"
+ self.options["--password"] = "100yard-"
+ self.options["--ip"] = "blade-mm.englab.brq.redhat.com"
+
+ (found_cmd_prompt, conn) = detect.detect_login_telnet(self.options)
+ res = detect.detect_device(conn, self.options, found_cmd_prompt)
+ self.assertEqual('fence_bladecenter', res)
+
+ def test_apc5(self):
+ self.assertEqual('foo', 'foo')
+ self.options["c"] = "c"
+ print self.options
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/fence/agents/autodetect/b.py b/fence/agents/autodetect/b.py
new file mode 100644
index 0000000..fdfda59
--- /dev/null
+++ b/fence/agents/autodetect/b.py
@@ -0,0 +1,2 @@
+def myf():
+ return 3
diff --git a/fence/agents/apc/fence_apc.py b/fence/agents/autodetect/fence_apc.py
similarity index 93%
copy from fence/agents/apc/fence_apc.py
copy to fence/agents/autodetect/fence_apc.py
index 1e9c376..c6dd106 100644
--- a/fence/agents/apc/fence_apc.py
+++ b/fence/agents/autodetect/fence_apc.py
@@ -1,4 +1,4 @@
-#!@PYTHON@ -tt
+#!/usr/bin/python -tt
#####
##
@@ -14,7 +14,7 @@
## cipher (des/blowfish) have to be defined
#####
-import sys, re, time
+import sys, re
import atexit
sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
@@ -26,10 +26,6 @@ REDHAT_COPYRIGHT=""
BUILD_DATE="March, 2008"
#END_VERSION_GENERATION
-# Fix for connection timed out issue in:
-# https://bugzilla.redhat.com/show_bug.cgi?id=1342584
-TIMEDOUT_DELAY = 0.5
-
def get_power_status(conn, options):
exp_result = 0
outlets = {}
@@ -44,10 +40,10 @@ def get_power_status(conn, options):
if None != re.compile('.* MasterSwitch plus.*', re.IGNORECASE | re.S).match(conn.before):
switch = 1
if None != re.compile('.* MasterSwitch plus 2', re.IGNORECASE | re.S).match(conn.before):
- if "--switch" not in options:
+ if not options.has_key("--switch"):
fail_usage("Failed: You have to enter physical switch number")
else:
- if "--switch" not in options:
+ if not options.has_key("--switch"):
options["--switch"] = "1"
if None == re.compile('.*Outlet Management.*', re.IGNORECASE | re.S).match(conn.before):
@@ -82,11 +78,10 @@ def get_power_status(conn, options):
res = show_re.search(line)
if res != None:
outlets[res.group(2)] = (res.group(3), res.group(4))
- time.sleep(TIMEDOUT_DELAY)
conn.send_eol("")
if exp_result != 0:
break
- conn.send(chr(0o3))
+ conn.send(chr(03))
conn.log_expect("- Logout", int(options["--shell-timeout"]))
conn.log_expect(options["--command-prompt"], int(options["--shell-timeout"]))
@@ -121,10 +116,10 @@ def set_power_status(conn, options):
'off': "3"
}[options["--action"]]
if None != re.compile('.* MasterSwitch plus 2', re.IGNORECASE | re.S).match(conn.before):
- if "--switch" not in options:
+ if not options.has_key("--switch"):
fail_usage("Failed: You have to enter physical switch number")
else:
- if "--switch" not in options:
+ if not options.has_key("--switch"):
options["--switch"] = 1
if None == re.compile('.*Outlet Management.*', re.IGNORECASE | re.S).match(conn.before):
@@ -156,7 +151,6 @@ def set_power_status(conn, options):
while 0 == conn.log_expect(
["Press <ENTER>"] + options["--command-prompt"], int(options["--shell-timeout"])):
- time.sleep(TIMEDOUT_DELAY)
conn.send_eol("")
conn.send_eol(options["--plug"]+"")
@@ -177,10 +171,9 @@ def set_power_status(conn, options):
conn.log_expect("Enter 'YES' to continue or <ENTER> to cancel :", int(options["--shell-timeout"]))
conn.send_eol("YES")
conn.log_expect("Press <ENTER> to continue...", int(options["--power-timeout"]))
- time.sleep(TIMEDOUT_DELAY)
conn.send_eol("")
conn.log_expect(options["--command-prompt"], int(options["--power-timeout"]))
- conn.send(chr(0o3))
+ conn.send(chr(03))
conn.log_expect("- Logout", int(options["--shell-timeout"]))
conn.log_expect(options["--command-prompt"], int(options["--shell-timeout"]))
@@ -239,7 +232,7 @@ will block any necessary fencing actions."
show_docs(options, docs)
## Support for --plug [switch]:[plug] notation that was used before
- if (("--plug" in options) == 1) and (-1 != options["--plug"].find(":")):
+ if (options.has_key("--plug") == 1) and (-1 != options["--plug"].find(":")):
(switch, plug) = options["--plug"].split(":", 1)
options["--switch"] = switch
options["--plug"] = plug
diff --git a/fence/agents/bladecenter/fence_bladecenter.py b/fence/agents/autodetect/fence_bladecenter.py
similarity index 96%
copy from fence/agents/bladecenter/fence_bladecenter.py
copy to fence/agents/autodetect/fence_bladecenter.py
index b45f315..d72c07f 100644
--- a/fence/agents/bladecenter/fence_bladecenter.py
+++ b/fence/agents/autodetect/fence_bladecenter.py
@@ -1,4 +1,4 @@
-#!@PYTHON@ -tt
+#!/usr/bin/python -tt
#####
##
@@ -31,7 +31,7 @@ def get_power_status(conn, options):
i = conn.log_expect([node_cmd, "system>"], int(options["--shell-timeout"]))
if i == 1:
## Given blade number does not exist
- if "--missing-as-off" in options:
+ if options.has_key("--missing-as-off"):
return "off"
else:
fail(EC_STATUS)
@@ -50,7 +50,7 @@ def set_power_status(conn, options):
i = conn.log_expect([node_cmd, "system>"], int(options["--shell-timeout"]))
if i == 1:
## Given blade number does not exist
- if "--missing-as-off" in options:
+ if options.has_key("--missing-as-off"):
return
else:
fail(EC_GENERIC_ERROR)
diff --git a/fence/agents/brocade/fence_brocade.py b/fence/agents/autodetect/fence_brocade.py
similarity index 99%
copy from fence/agents/brocade/fence_brocade.py
copy to fence/agents/autodetect/fence_brocade.py
index 4cf039a..5257bcc 100644
--- a/fence/agents/brocade/fence_brocade.py
+++ b/fence/agents/autodetect/fence_brocade.py
@@ -1,4 +1,4 @@
-#!@PYTHON@ -tt
+#!/usr/bin/python -tt
import sys, re
import atexit
diff --git a/fence/agents/ilo_moonshot/fence_ilo_moonshot.py b/fence/agents/autodetect/fence_ilo_moonshot.py
similarity index 98%
copy from fence/agents/ilo_moonshot/fence_ilo_moonshot.py
copy to fence/agents/autodetect/fence_ilo_moonshot.py
index c534947..e161ac6 100644
--- a/fence/agents/ilo_moonshot/fence_ilo_moonshot.py
+++ b/fence/agents/autodetect/fence_ilo_moonshot.py
@@ -1,4 +1,4 @@
-#!@PYTHON@ -tt
+#!/usr/bin/python -tt
import sys
import atexit
diff --git a/fence/agents/lpar/fence_lpar.py b/fence/agents/autodetect/fence_lpar.py
similarity index 81%
copy from fence/agents/lpar/fence_lpar.py
copy to fence/agents/autodetect/fence_lpar.py
index 5487b84..6676e1c 100644
--- a/fence/agents/lpar/fence_lpar.py
+++ b/fence/agents/autodetect/fence_lpar.py
@@ -1,4 +1,4 @@
-#!@PYTHON@ -tt
+#!/usr/bin/python -tt
#####
##
@@ -32,7 +32,7 @@ def get_power_status(conn, options):
re.IGNORECASE | re.MULTILINE).search(conn.before).group(1)
except AttributeError:
fail(EC_STATUS_HMC)
- elif options["--hmc-version"] in ["4", "IVM"]:
+ elif options["--hmc-version"] == "4":
conn.send("lssyscfg -r lpar -m "+ options["--managed"] +
" --filter 'lpar_names=" + options["--plug"] + "'\n")
conn.log_expect(options["--command-prompt"], int(options["--power-timeout"]))
@@ -56,7 +56,7 @@ def set_power_status(conn, options):
conn.send("chsysstate -o " + options["--action"] + " -r lpar -m " + options["--managed"]
+ " -n " + options["--plug"] + "\n")
conn.log_expect(options["--command-prompt"], int(options["--power-timeout"]))
- elif options["--hmc-version"] in ["4", "IVM"]:
+ elif options["--hmc-version"] == "4":
if options["--action"] == "on":
conn.send("chsysstate -o on -r lpar -m " + options["--managed"] +
" -n " + options["--plug"] +
@@ -98,29 +98,7 @@ def get_lpar_list(conn, options):
lines = res.group(1).split("\n")
for outlet_line in lines:
- try:
- (port, status) = outlet_line.split(":")
- except ValueError:
- fail_usage('Output does not match expected HMC version, try different one');
- outlets[port] = ("", status)
- elif options["--hmc-version"] == "IVM":
- conn.send("lssyscfg -r lpar -m " + options["--managed"] +
- " -F name,state\n")
- conn.log_expect(options["--command-prompt"], int(options["--power-timeout"]))
-
- ## We have to remove first line (command) and last line (part of new prompt)
- ####
- res = re.search("^.+?\n(.*)\n.*$", conn.before, re.S)
-
- if res == None:
- fail_usage("Unable to parse output of list command")
-
- lines = res.group(1).split("\n")
- for outlet_line in lines:
- try:
- (port, status) = outlet_line.split(",")
- except ValueError:
- fail_usage('Output does not match expected HMC version, try different one');
+ (port, status) = outlet_line.split(":")
outlets[port] = ("", status)
return outlets
@@ -136,11 +114,11 @@ def define_new_opts():
all_opt["hmc_version"] = {
"getopt" : "H:",
"longopt" : "hmc-version",
- "help" : "-H, --hmc-version=[version] Force HMC version to use: (3|4|ivm) (default: 4)",
+ "help" : "-H, --hmc-version=[version] Force HMC version to use: (3|4) (default: 4)",
"required" : "0",
"shortdesc" : "Force HMC version to use",
"default" : "4",
- "choices" : ["3", "4", "ivm"],
+ "choices" : ["3", "4"],
"order" : 1}
def main():
@@ -163,7 +141,7 @@ def main():
docs["vendorurl"] = "http://www.ibm.com"
show_docs(options, docs)
- if "--managed" not in options:
+ if not options.has_key("--managed"):
fail_usage("Failed: You have to enter name of managed system")
if options["--action"] == "validate-all":
diff --git a/fence/agents/lib/fencing.py.py b/fence/agents/autodetect/fencing.py
similarity index 86%
copy from fence/agents/lib/fencing.py.py
copy to fence/agents/autodetect/fencing.py
index e303160..ea21ace 100644
--- a/fence/agents/lib/fencing.py.py
+++ b/fence/agents/autodetect/fencing.py
@@ -1,4 +1,4 @@
-#!@PYTHON@ -tt
+#!/usr/bin/python -tt
import sys, getopt, time, os, uuid, pycurl, stat
import pexpect, re, syslog
@@ -6,15 +6,16 @@ import logging
import subprocess
import threading
import shlex
+import exceptions
import socket
import textwrap
import __main__
## do not add code here.
#BEGIN_VERSION_GENERATION
-RELEASE_VERSION = "New fence lib agent - test release on steroids"
-REDHAT_COPYRIGHT = ""
-BUILD_DATE = "March, 2008"
+RELEASE_VERSION="4.0.21.23-eaa13"
+BUILD_DATE="(built Wed Nov 4 13:28:43 CET 2015)"
+REDHAT_COPYRIGHT="Copyright (C) Red Hat, Inc. 2004-2010 All rights reserved."
#END_VERSION_GENERATION
__all__ = ['atexit_handler', 'check_input', 'process_input', 'all_opt', 'show_docs',
@@ -64,7 +65,6 @@ all_opt = {
"delay" : {
"getopt" : ":",
"longopt" : "delay",
- "type" : "second",
"help" : "--delay=[seconds] Wait X seconds before fencing is started",
"required" : "0",
"default" : "0",
@@ -102,7 +102,6 @@ all_opt = {
"ipport" : {
"getopt" : "u:",
"longopt" : "ipport",
- "type" : "integer",
"help" : "-u, --ipport=[port] TCP/UDP port to use for connection",
"required" : "0",
"shortdesc" : "TCP/UDP port to use for connection with device",
@@ -140,11 +139,7 @@ all_opt = {
"telnet" : {
"getopt" : "",
"help" : "",
- "order" : 1},
- "diag" : {
- "getopt" : "",
- "help" : "",
- "order" : 1},
+ "order" : ""},
"passwd" : {
"getopt" : "p:",
"longopt" : "password",
@@ -319,7 +314,6 @@ all_opt = {
"login_timeout" : {
"getopt" : ":",
"longopt" : "login-timeout",
- "type" : "second",
"help" : "--login-timeout=[seconds] Wait X seconds for cmd prompt after login",
"default" : "5",
"required" : "0",
@@ -327,7 +321,6 @@ all_opt = {
"shell_timeout" : {
"getopt" : ":",
"longopt" : "shell-timeout",
- "type" : "second",
"help" : "--shell-timeout=[seconds] Wait X seconds for cmd prompt after issuing command",
"default" : "3",
"required" : "0",
@@ -335,7 +328,6 @@ all_opt = {
"power_timeout" : {
"getopt" : ":",
"longopt" : "power-timeout",
- "type" : "second",
"help" : "--power-timeout=[seconds] Test X seconds for status change after ON/OFF",
"default" : "20",
"required" : "0",
@@ -343,7 +335,6 @@ all_opt = {
"power_wait" : {
"getopt" : ":",
"longopt" : "power-wait",
- "type" : "second",
"help" : "--power-wait=[seconds] Wait X seconds after issuing ON/OFF",
"default" : "0",
"required" : "0",
@@ -357,7 +348,6 @@ all_opt = {
"retry_on" : {
"getopt" : ":",
"longopt" : "retry-on",
- "type" : "integer",
"help" : "--retry-on=[attempts] Count of attempts to retry power on",
"default" : "1",
"required" : "0",
@@ -388,49 +378,49 @@ all_opt = {
"longopt" : "telnet-path",
"help" : "--telnet-path=[path] Path to telnet binary",
"required" : "0",
- "default" : "@TELNET_PATH@",
+ "default" : "/usr/bin/telnet",
"order": 300},
"ssh_path" : {
"getopt" : ":",
"longopt" : "ssh-path",
"help" : "--ssh-path=[path] Path to ssh binary",
"required" : "0",
- "default" : "@SSH_PATH@",
+ "default" : "/usr/bin/ssh",
"order": 300},
"gnutlscli_path" : {
"getopt" : ":",
"longopt" : "gnutlscli-path",
"help" : "--gnutlscli-path=[path] Path to gnutls-cli binary",
"required" : "0",
- "default" : "@GNUTLSCLI_PATH@",
+ "default" : "/usr/bin/gnutls-cli",
"order": 300},
"sudo_path" : {
"getopt" : ":",
"longopt" : "sudo-path",
"help" : "--sudo-path=[path] Path to sudo binary",
"required" : "0",
- "default" : "@SUDO_PATH@",
+ "default" : "/usr/bin/sudo",
"order": 300},
"snmpwalk_path" : {
"getopt" : ":",
"longopt" : "snmpwalk-path",
"help" : "--snmpwalk-path=[path] Path to snmpwalk binary",
"required" : "0",
- "default" : "@SNMPWALK_PATH@",
+ "default" : "/usr/bin/snmpwalk",
"order" : 300},
"snmpset_path" : {
"getopt" : ":",
"longopt" : "snmpset-path",
"help" : "--snmpset-path=[path] Path to snmpset binary",
"required" : "0",
- "default" : "@SNMPSET_PATH@",
+ "default" : "/usr/bin/snmpset",
"order" : 300},
"snmpget_path" : {
"getopt" : ":",
"longopt" : "snmpget-path",
"help" : "--snmpget-path=[path] Path to snmpget binary",
"required" : "0",
- "default" : "@SNMPGET_PATH@",
+ "default" : "/usr/bin/snmpget",
"order" : 300},
"snmp": {
"getopt" : "",
@@ -449,7 +439,7 @@ all_opt = {
"quiet": {
"getopt" : "q",
"longopt": "quiet",
- "help" : "-q, --quiet Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.",
+ "help" : "-q, --quiet Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.",
"required" : "0",
"order" : 50}
}
@@ -458,7 +448,7 @@ all_opt = {
DEPENDENCY_OPT = {
"default" : ["help", "debug", "verbose", "version", "action", "agent", \
"power_timeout", "shell_timeout", "login_timeout", "power_wait", "retry_on", \
- "delay", "quiet"],
+ "delay", "quiet"],
"passwd" : ["passwd_script"],
"sudo" : ["sudo_path"],
"secure" : ["identity_file", "ssh_options", "ssh_path"],
@@ -479,7 +469,7 @@ class fspawn(pexpect.spawn):
def log_expect(self, pattern, timeout):
result = self.expect(pattern, timeout)
- logging.debug("Received: %s", self.before + self.after)
+ logging.debug("Received: %s", str(self.before) + str(self.after))
return result
def send(self, message):
@@ -502,7 +492,7 @@ def _add_dependency_options(options):
## Add also options which are available for every fence agent
added_opt = []
for opt in options + ["default"]:
- if opt in DEPENDENCY_OPT:
+ if DEPENDENCY_OPT.has_key(opt):
added_opt.extend([y for y in DEPENDENCY_OPT[opt] if options.count(y) == 0])
if not "port" in (options + added_opt) and \
@@ -538,36 +528,37 @@ def fail(error_code):
sys.exit(EC_GENERIC_ERROR)
def usage(avail_opt):
- print("Usage:")
- print("\t" + os.path.basename(sys.argv[0]) + " [options]")
- print("Options:")
+ print "Usage:"
+ print "\t" + os.path.basename(sys.argv[0]) + " [options]"
+ print "Options:"
sorted_list = [(key, all_opt[key]) for key in avail_opt]
- sorted_list.sort(key=lambda x: x[1]["order"])
+ sorted_list.sort(lambda x, y: cmp(x[1]["order"], y[1]["order"]))
for key, value in sorted_list:
if len(value["help"]) != 0:
- print(" " + _join_wrap([value["help"]], first_indent=3))
+ print " " + _join_wrap([value["help"]], first_indent=3)
def metadata(avail_opt, docs):
# avail_opt has to be unique, if there are duplicities then they should be removed
sorted_list = [(key, all_opt[key]) for key in list(set(avail_opt))]
- sorted_list.sort(key=lambda x: (x[1]["order"], x[0]))
+ sorted_list.sort(lambda x, y: cmp(x[0], y[0]))
+ sorted_list.sort(lambda x, y: cmp(x[1]["order"], y[1]["order"]))
- print("<?xml version=\"1.0\" ?>")
- print("<resource-agent name=\"" + os.path.basename(sys.argv[0]) + \
- "\" shortdesc=\"" + docs["shortdesc"] + "\" >")
+ print "<?xml version=\"1.0\" ?>"
+ print "<resource-agent name=\"" + os.path.basename(sys.argv[0]) + \
+ "\" shortdesc=\"" + docs["shortdesc"] + "\" >"
for (symlink, desc) in docs.get("symlink", []):
- print("<symlink name=\"" + symlink + "\" shortdesc=\"" + desc + "\"/>")
- print("<longdesc>" + docs["longdesc"] + "</longdesc>")
- print("<vendor-url>" + docs["vendorurl"] + "</vendor-url>")
- print("<parameters>")
+ print "<symlink name=\"" + symlink + "\" shortdesc=\"" + desc + "\"/>"
+ print "<longdesc>" + docs["longdesc"] + "</longdesc>"
+ print "<vendor-url>" + docs["vendorurl"] + "</vendor-url>"
+ print "<parameters>"
for option, _ in sorted_list:
- if "help" in all_opt[option] and len(all_opt[option]["help"]) > 0:
- print("\t<parameter name=\"" + option + "\" unique=\"0\" required=\"" + all_opt[option]["required"] + "\">")
+ if all_opt[option].has_key("help") and len(all_opt[option]["help"]) > 0:
+ print "\t<parameter name=\"" + option + "\" unique=\"0\" required=\"" + all_opt[option]["required"] + "\">"
default = ""
- if "default" in all_opt[option]:
+ if all_opt[option].has_key("default"):
default = "default=\"" + _encode_html_entities(str(all_opt[option]["default"])) + "\" "
mixed = all_opt[option]["help"]
@@ -582,33 +573,32 @@ def metadata(avail_opt, docs):
else:
shortdesc = all_opt[option]["shortdesc"]
- print("\t\t<getopt mixed=\"" + mixed + "\" />")
- if "choices" in all_opt[option]:
- print("\t\t<content type=\"select\" "+default+" >")
+ print "\t\t<getopt mixed=\"" + mixed + "\" />"
+ if all_opt[option].has_key("choices"):
+ print "\t\t<content type=\"select\" "+default+" >"
for choice in all_opt[option]["choices"]:
- print("\t\t\t<option value=\"%s\" />" % (choice))
- print("\t\t</content>")
+ print "\t\t\t<option value=\"%s\" />" % (choice)
+ print "\t\t</content>"
elif all_opt[option]["getopt"].count(":") > 0:
- t = all_opt[option].get("type", "string")
- print("\t\t<content type=\"%s\" " % (t) +default+" />")
+ print "\t\t<content type=\"string\" "+default+" />"
else:
- print("\t\t<content type=\"boolean\" "+default+" />")
- print("\t\t<shortdesc lang=\"en\">" + shortdesc + "</shortdesc>")
- print("\t</parameter>")
- print("</parameters>")
- print("<actions>")
+ print "\t\t<content type=\"boolean\" "+default+" />"
+ print "\t\t<shortdesc lang=\"en\">" + shortdesc + "</shortdesc>"
+ print "\t</parameter>"
+ print "</parameters>"
+ print "<actions>"
(available_actions, _) = _get_available_actions(avail_opt)
if "on" in available_actions:
available_actions.remove("on")
on_target = ' on_target="1"' if avail_opt.count("on_target") else ''
- print("\t<action name=\"on\"%s automatic=\"%d\"/>" % (on_target, avail_opt.count("fabric_fencing")))
+ print "\t<action name=\"on\"%s automatic=\"%d\"/>" % (on_target, avail_opt.count("fabric_fencing"))
for action in available_actions:
- print("\t<action name=\"%s\" />" % (action))
- print("</actions>")
- print("</resource-agent>")
+ print "\t<action name=\"%s\" />" % (action)
+ print "</actions>"
+ print "</resource-agent>"
def process_input(avail_opt):
avail_opt.extend(_add_dependency_options(avail_opt))
@@ -651,15 +641,15 @@ def check_input(device_opt, opt, other_conditions = False):
if options["--action"] == "meta-data":
options["--action"] = "metadata"
- if options["--action"] == "metadata" or any(k in options for k in ("--help", "--version")):
+ if options["--action"] == "metadata" or any(options.has_key(k) for k in ("--help", "--version")):
return options
- if "--verbose" in options:
+ if options.has_key("--verbose"):
logging.getLogger().setLevel(logging.DEBUG)
## add logging to syslog
logging.getLogger().addHandler(SyslogLibHandler())
- if "--quiet" not in options:
+ if not options.has_key("--quiet"):
## add logging to stderr
logging.getLogger().addHandler(logging.StreamHandler(sys.stderr))
@@ -685,7 +675,7 @@ def check_input(device_opt, opt, other_conditions = False):
else:
_validate_input(options, True)
- if "--debug-file" in options:
+ if options.has_key("--debug-file"):
try:
debug_file = logging.FileHandler(options["--debug-file"])
debug_file.setLevel(logging.DEBUG)
@@ -694,10 +684,10 @@ def check_input(device_opt, opt, other_conditions = False):
logging.error("Unable to create file %s", options["--debug-file"])
fail_usage("Failed: Unable to create file " + options["--debug-file"])
- if "--snmp-priv-passwd-script" in options:
+ if options.has_key("--snmp-priv-passwd-script"):
options["--snmp-priv-passwd"] = os.popen(options["--snmp-priv-passwd-script"]).read().rstrip()
- if "--password-script" in options:
+ if options.has_key("--password-script"):
options["--password"] = os.popen(options["--password-script"]).read().rstrip()
return options
@@ -707,7 +697,7 @@ def check_input(device_opt, opt, other_conditions = False):
######
def get_multi_power_fn(connection, options, get_power_fn):
status = "off"
- plugs = options["--plugs"] if "--plugs" in options else [""]
+ plugs = options["--plugs"] if options.has_key("--plugs") else [""]
for plug in plugs:
try:
@@ -725,7 +715,7 @@ def get_multi_power_fn(connection, options, get_power_fn):
return status
def set_multi_power_fn(connection, options, set_power_fn, get_power_fn, retry_attempts=1):
- plugs = options["--plugs"] if "--plugs" in options else [""]
+ plugs = options["--plugs"] if options.has_key("--plugs") else [""]
for _ in range(retry_attempts):
for plug in plugs:
@@ -740,7 +730,7 @@ def set_multi_power_fn(connection, options, set_power_fn, get_power_fn, retry_at
set_power_fn(connection, options)
time.sleep(int(options["--power-wait"]))
- for _ in range(int(options["--power-timeout"])):
+ for _ in xrange(int(options["--power-timeout"])):
if get_multi_power_fn(connection, options, get_power_fn) != options["--action"]:
time.sleep(1)
else:
@@ -755,7 +745,7 @@ def show_docs(options, docs=None):
docs["shortdesc"] = "Fence agent"
docs["longdesc"] = ""
- if "--help" in options:
+ if options.has_key("--help"):
usage(device_opt)
sys.exit(0)
@@ -765,16 +755,16 @@ def show_docs(options, docs=None):
metadata(device_opt, docs)
sys.exit(0)
- if "--version" in options:
- print(__main__.RELEASE_VERSION, __main__.BUILD_DATE)
- print(__main__.REDHAT_COPYRIGHT)
+ if options.has_key("--version"):
+ print __main__.RELEASE_VERSION, __main__.BUILD_DATE
+ print __main__.REDHAT_COPYRIGHT
sys.exit(0)
def fence_action(connection, options, set_power_fn, get_power_fn, get_outlet_list=None, reboot_cycle_fn=None):
result = 0
try:
- if "--plug" in options:
+ if options.has_key("--plug"):
options["--plugs"] = options["--plug"].split(",")
## Process options that manipulate fencing device
@@ -784,12 +774,12 @@ def fence_action(connection, options, set_power_fn, get_power_fn, get_outlet_lis
0 == options["device_opt"].count("port_as_ip")):
if 0 == options["device_opt"].count("port"):
- print("N/A")
+ print "N/A"
elif get_outlet_list == None:
## @todo: exception?
## This is just temporal solution, we will remove default value
## None as soon as all existing agent will support this operation
- print("NOTICE: List option is not working on this device yet")
+ print "NOTICE: List option is not working on this device yet"
else:
options["--original-action"] = options["--action"]
options["--action"] = "list"
@@ -798,16 +788,16 @@ def fence_action(connection, options, set_power_fn, get_power_fn, get_outlet_lis
del options["--original-action"]
## keys can be numbers (port numbers) or strings (names of VM, UUID)
- for outlet_id in list(outlets.keys()):
+ for outlet_id in outlets.keys():
(alias, status) = outlets[outlet_id]
if status is None or (not status.upper() in ["ON", "OFF"]):
status = "UNKNOWN"
status = status.upper()
if options["--action"] == "list":
- print(outlet_id + options["--separator"] + alias)
+ print outlet_id + options["--separator"] + alias
elif options["--action"] == "list-status":
- print(outlet_id + options["--separator"] + alias + options["--separator"] + status)
+ print outlet_id + options["--separator"] + alias + options["--separator"] + status
return
@@ -823,17 +813,17 @@ def fence_action(connection, options, set_power_fn, get_power_fn, get_outlet_lis
if options["--action"] == status:
if not (status == "on" and "force_on" in options["device_opt"]):
- print("Success: Already %s" % (status.upper()))
+ print "Success: Already %s" % (status.upper())
return 0
if options["--action"] == "on":
if set_multi_power_fn(connection, options, set_power_fn, get_power_fn, 1 + int(options["--retry-on"])):
- print("Success: Powered ON")
+ print "Success: Powered ON"
else:
fail(EC_WAITING_ON)
elif options["--action"] == "off":
if set_multi_power_fn(connection, options, set_power_fn, get_power_fn):
- print("Success: Powered OFF")
+ print "Success: Powered OFF"
else:
fail(EC_WAITING_OFF)
elif options["--action"] == "reboot":
@@ -857,7 +847,7 @@ def fence_action(connection, options, set_power_fn, get_power_fn, get_outlet_lis
try:
power_on = set_multi_power_fn(connection, options, set_power_fn, get_power_fn, int(options["--retry-on"]))
- except Exception as ex:
+ except Exception, ex:
# an error occured during power ON phase in reboot
# fence action was completed succesfully even in that case
logging.warning("%s", str(ex))
@@ -866,9 +856,9 @@ def fence_action(connection, options, set_power_fn, get_power_fn, get_outlet_lis
# this should not fail as node was fenced succesfully
logging.error('Timed out waiting to power ON\n')
- print("Success: Rebooted")
+ print "Success: Rebooted"
elif options["--action"] == "status":
- print("Status: " + status.upper())
+ print "Status: " + status.upper()
if status.upper() == "OFF":
result = 2
elif options["--action"] == "monitor":
@@ -877,10 +867,10 @@ def fence_action(connection, options, set_power_fn, get_power_fn, get_outlet_lis
fail(EC_CONNECTION_LOST)
except pexpect.TIMEOUT:
fail(EC_TIMED_OUT)
- except pycurl.error as ex:
+ except pycurl.error, ex:
logging.error("%s\n", str(ex))
fail(EC_TIMED_OUT)
- except socket.timeout as ex:
+ except socket.timeout, ex:
logging.error("%s\n", str(ex))
fail(EC_TIMED_OUT)
@@ -889,25 +879,25 @@ def fence_action(connection, options, set_power_fn, get_power_fn, get_outlet_lis
def fence_login(options, re_login_string=r"(login\s*: )|((?!Last )Login Name: )|(username: )|(User Name :)"):
run_delay(options)
- if "eol" not in options:
+ if not options.has_key("eol"):
options["eol"] = "\r\n"
- if "--command-prompt" in options and type(options["--command-prompt"]) is not list:
+ if options.has_key("--command-prompt") and type(options["--command-prompt"]) is not list:
options["--command-prompt"] = [options["--command-prompt"]]
try:
- if "--ssl" in options:
+ if options.has_key("--ssl"):
conn = _open_ssl_connection(options)
- elif "--ssh" in options and "--identity-file" not in options:
+ elif options.has_key("--ssh") and not options.has_key("--identity-file"):
conn = _login_ssh_with_password(options, re_login_string)
- elif "--ssh" in options and "--identity-file" in options:
+ elif options.has_key("--ssh") and options.has_key("--identity-file"):
conn = _login_ssh_with_identity_file(options)
else:
conn = _login_telnet(options, re_login_string)
- except pexpect.EOF as exception:
+ except pexpect.EOF, exception:
logging.debug("%s", str(exception))
fail(EC_LOGIN_DENIED)
- except pexpect.TIMEOUT as exception:
+ except pexpect.TIMEOUT, exception:
logging.debug("%s", str(exception))
fail(EC_LOGIN_DENIED)
return conn
@@ -963,7 +953,7 @@ def fence_logout(conn, logout_string, sleep=0):
conn.send_eol(logout_string)
time.sleep(sleep)
conn.close()
- except OSError:
+ except exceptions.OSError:
pass
except pexpect.ExceptionPexpect:
pass
@@ -999,29 +989,29 @@ def _open_ssl_connection(options):
gnutls_opts = ""
ssl_opts = ""
- if "--notls" in options:
+ if options.has_key("--notls"):
gnutls_opts = "--priority \"NORMAL:-VERS-TLS1.2:-VERS-TLS1.1:-VERS-TLS1.0:+VERS-SSL3.0\""
- elif "--tls1.0" in options:
+ elif options.has_key("--tls1.0"):
gnutls_opts = "--priority \"NORMAL:-VERS-TLS1.2:-VERS-TLS1.1:+VERS-TLS1.0:%LATEST_RECORD_VERSION\""
# --ssl is same as the --ssl-secure; it means we want to verify certificate in these cases
- if "--ssl-insecure" in options:
+ if options.has_key("--ssl-insecure"):
ssl_opts = "--insecure"
command = '%s %s %s --crlf -p %s %s' % \
(options["--gnutlscli-path"], gnutls_opts, ssl_opts, options["--ipport"], options["--ip"])
try:
conn = fspawn(options, command)
- except pexpect.ExceptionPexpect as ex:
+ except pexpect.ExceptionPexpect, ex:
logging.error("%s\n", str(ex))
sys.exit(EC_GENERIC_ERROR)
return conn
def _login_ssh_with_identity_file(options):
- if "--inet6-only" in options:
+ if options.has_key("--inet6-only"):
force_ipvx = "-6 "
- elif "--inet4-only" in options:
+ elif options.has_key("--inet4-only"):
force_ipvx = "-4 "
else:
force_ipvx = ""
@@ -1029,7 +1019,7 @@ def _login_ssh_with_identity_file(options):
command = '%s %s %s@%s -i %s -p %s' % \
(options["--ssh-path"], force_ipvx, options["--username"], options["--ip"], \
options["--identity-file"], options["--ipport"])
- if "--ssh-options" in options:
+ if options.has_key("--ssh-options"):
command += ' ' + options["--ssh-options"]
conn = fspawn(options, command)
@@ -1043,7 +1033,7 @@ def _login_ssh_with_identity_file(options):
["Enter passphrase for key '" + options["--identity-file"]+"':"] + \
options["--command-prompt"], int(options["--login-timeout"]))
if result == 0:
- if "--password" in options:
+ if options.has_key("--password"):
conn.sendline(options["--password"])
conn.log_expect(options["--command-prompt"], int(options["--login-timeout"]))
else:
@@ -1096,21 +1086,21 @@ def _login_ssh_with_password(options, re_login_string):
re_login = re.compile(re_login_string, re.IGNORECASE)
re_pass = re.compile("(password)|(pass phrase)", re.IGNORECASE)
- if "--inet6-only" in options:
+ if options.has_key("--inet6-only"):
force_ipvx = "-6 "
- elif "--inet4-only" in options:
+ elif options.has_key("--inet4-only"):
force_ipvx = "-4 "
else:
force_ipvx = ""
command = '%s %s %s@%s -p %s -o PubkeyAuthentication=no' % \
(options["--ssh-path"], force_ipvx, options["--username"], options["--ip"], options["--ipport"])
- if "--ssh-options" in options:
+ if options.has_key("--ssh-options"):
command += ' ' + options["--ssh-options"]
conn = fspawn(options, command)
- if "telnet_over_ssh" in options:
+ if options.has_key("telnet_over_ssh"):
# This is for stupid ssh servers (like ALOM) which behave more like telnet
# (ignore name and display login prompt)
result = conn.log_expect( \
@@ -1161,7 +1151,7 @@ def _update_metadata(options):
default_value = None
default_string = None
- if "default" in all_opt["ipport"]:
+ if all_opt["ipport"].has_key("default"):
default_value = all_opt["ipport"]["default"]
elif device_opt.count("web") and device_opt.count("ssl"):
default_value = "80"
@@ -1205,9 +1195,9 @@ def _set_default_values(options):
all_opt["ipport"]["default"] = options["--ipport"]
for opt in options["device_opt"]:
- if "default" in all_opt[opt] and not opt == "ipport":
+ if all_opt[opt].has_key("default") and not opt == "ipport":
getopt_long = "--" + all_opt[opt]["longopt"]
- if getopt_long not in options:
+ if not options.has_key(getopt_long):
options[getopt_long] = all_opt[opt]["default"]
return options
@@ -1217,42 +1207,42 @@ def _validate_input(options, stop = True):
device_opt = options["device_opt"]
valid_input = True
- if "--username" not in options and \
+ if not options.has_key("--username") and \
device_opt.count("login") and (device_opt.count("no_login") == 0):
valid_input = False
fail_usage("Failed: You have to set login name", stop)
- if device_opt.count("ipaddr") and "--ip" not in options and "--managed" not in options:
+ if device_opt.count("ipaddr") and not options.has_key("--ip") and not options.has_key("--managed"):
valid_input = False
fail_usage("Failed: You have to enter fence address", stop)
if device_opt.count("no_password") == 0:
if 0 == device_opt.count("identity_file"):
- if not ("--password" in options or "--password-script" in options):
+ if not (options.has_key("--password") or options.has_key("--password-script")):
valid_input = False
fail_usage("Failed: You have to enter password or password script", stop)
else:
- if not ("--password" in options or \
- "--password-script" in options or "--identity-file" in options):
+ if not (options.has_key("--password") or \
+ options.has_key("--password-script") or options.has_key("--identity-file")):
valid_input = False
fail_usage("Failed: You have to enter password, password script or identity file", stop)
- if "--ssh" not in options and "--identity-file" in options:
+ if not options.has_key("--ssh") and options.has_key("--identity-file"):
valid_input = False
fail_usage("Failed: You have to use identity file together with ssh connection (-x)", stop)
- if "--identity-file" in options and not os.path.isfile(options["--identity-file"]):
+ if options.has_key("--identity-file") and not os.path.isfile(options["--identity-file"]):
valid_input = False
fail_usage("Failed: Identity file " + options["--identity-file"] + " does not exist", stop)
if (0 == ["list", "list-status", "monitor"].count(options["--action"])) and \
- "--plug" not in options and device_opt.count("port") and \
+ not options.has_key("--plug") and device_opt.count("port") and \
device_opt.count("no_port") == 0 and not device_opt.count("port_as_ip"):
valid_input = False
fail_usage("Failed: You have to enter plug number or machine identification", stop)
- if "--plug" in options and len(options["--plug"].split(",")) > 1 and \
- "--method" in options and options["--method"] == "cycle":
+ if options.has_key("--plug") and len(options["--plug"].split(",")) > 1 and \
+ options.has_key("--method") and options["--method"] == "cycle":
valid_input = False
fail_usage("Failed: Cannot use --method cycle for more than 1 plug", stop)
@@ -1261,15 +1251,6 @@ def _validate_input(options, stop = True):
fail_usage("Failed: You have to enter a valid choice for %s from the valid values: %s" % \
("--" + all_opt[failed_opt]["longopt"], str(all_opt[failed_opt]["choices"])), stop)
- for failed_opt in _get_opts_with_invalid_types(options):
- valid_input = False
- if all_opt[failed_opt]["type"] == "second":
- fail_usage("Failed: The value you have entered for %s is not a valid time in seconds" % \
- ("--" + all_opt[failed_opt]["longopt"]), stop)
- else:
- fail_usage("Failed: The value you have entered for %s is not a valid %s" % \
- ("--" + all_opt[failed_opt]["longopt"], all_opt[failed_opt]["type"]), stop)
-
return valid_input
def _encode_html_entities(text):
@@ -1280,13 +1261,13 @@ def _prepare_getopt_args(options):
getopt_string = ""
longopt_list = []
for k in options:
- if k in all_opt and all_opt[k]["getopt"] != ":":
+ if all_opt.has_key(k) and all_opt[k]["getopt"] != ":":
# getopt == ":" means that opt is without short getopt, but has value
getopt_string += all_opt[k]["getopt"]
- elif k not in all_opt:
+ elif not all_opt.has_key(k):
fail_usage("Parse error: unknown option '"+k+"'")
- if k in all_opt and "longopt" in all_opt[k]:
+ if all_opt.has_key(k) and all_opt[k].has_key("longopt"):
if all_opt[k]["getopt"].endswith(":"):
longopt_list.append(all_opt[k]["longopt"] + "=")
else:
@@ -1328,7 +1309,7 @@ def _parse_input_cmdline(avail_opt):
(entered_opt, left_arg) = getopt.gnu_getopt(sys.argv[1:], getopt_string, longopt_list)
if len(left_arg) > 0:
logging.warning("Unused arguments on command line: %s" % (str(left_arg)))
- except getopt.GetoptError as error:
+ except getopt.GetoptError, error:
fail_usage("Parse error: " + error.msg)
for opt in avail_opt:
@@ -1336,8 +1317,8 @@ def _parse_input_cmdline(avail_opt):
# Short and long getopt names are changed to consistent "--" + long name (e.g. --username)
long_opts = {}
- for arg_name in list(dict(entered_opt).keys()):
- all_key = [key for (key, value) in list(filtered_opts.items()) \
+ for arg_name in dict(entered_opt).keys():
+ all_key = [key for (key, value) in filtered_opts.items() \
if "--" + value.get("longopt", "") == arg_name or "-" + value.get("getopt", "").rstrip(":") == arg_name][0]
long_opts["--" + filtered_opts[all_key]["longopt"]] = dict(entered_opt)[arg_name]
@@ -1372,30 +1353,15 @@ def _get_opts_with_invalid_choices(options):
device_opt = options["device_opt"]
for opt in device_opt:
- if "choices" in all_opt[opt]:
+ if all_opt[opt].has_key("choices"):
longopt = "--" + all_opt[opt]["longopt"]
possible_values_upper = [y.upper() for y in all_opt[opt]["choices"]]
- if longopt in options:
+ if options.has_key(longopt):
options[longopt] = options[longopt].upper()
if not options["--" + all_opt[opt]["longopt"]] in possible_values_upper:
options_failed.append(opt)
return options_failed
-def _get_opts_with_invalid_types(options):
- options_failed = []
- device_opt = options["device_opt"]
-
- for opt in device_opt:
- if "type" in all_opt[opt]:
- longopt = "--" + all_opt[opt]["longopt"]
- if longopt in options:
- if all_opt[opt]["type"] in ["integer", "second"]:
- try:
- number = int(options["--" + all_opt[opt]["longopt"]])
- except ValueError:
- options_failed.append(opt)
- return options_failed
-
def _verify_unique_getopt(avail_opt):
used_getopt = set()
@@ -1423,7 +1389,5 @@ def _get_available_actions(device_opt):
if not device_opt.count("separator"):
available_actions.remove("list")
available_actions.remove("list-status")
- if device_opt.count("diag"):
- available_actions.append("diag")
return (available_actions, default_value)
diff --git a/fence/agents/aws/fence_aws.py b/fence/agents/aws/fence_aws.py
new file mode 100644
index 0000000..647b66f
--- /dev/null
+++ b/fence/agents/aws/fence_aws.py
@@ -0,0 +1,126 @@
+#!@PYTHON@ -tt
+
+import sys, re
+import logging
+import atexit
+sys.path.append("@FENCEAGENTSLIBDIR@")
+from fencing import *
+from fencing import fail, fail_usage, EC_TIMED_OUT, run_delay
+
+import boto3
+from botocore.exceptions import ClientError, EndpointConnectionError, NoRegionError
+
+def get_nodes_list(conn, options):
+ result = {}
+ try:
+ for instance in conn.instances.all():
+ result[instance.id] = ("", None)
+ except ClientError:
+ fail_usage("Failed: Incorrect Access Key or Secret Key.")
+ except EndpointConnectionError:
+ fail_usage("Failed: Incorrect Region.")
+
+ return result
+
+def get_power_status(conn, options):
+ try:
+ instance = conn.instances.filter(Filters=[{"Name": "instance-id", "Values": [options["--plug"]]}])
+ state = list(instance)[0].state["Name"]
+ if state == "running":
+ return "on"
+ elif state == "stopped":
+ return "off"
+ else:
+ return "unknown"
+
+ except ClientError:
+ fail_usage("Failed: Incorrect Access Key or Secret Key.")
+ except EndpointConnectionError:
+ fail_usage("Failed: Incorrect Region.")
+ except IndexError:
+ return "fail"
+
+def set_power_status(conn, options):
+ if (options["--action"]=="off"):
+ conn.instances.filter(InstanceIds=[options["--plug"]]).stop(Force=True)
+ elif (options["--action"]=="on"):
+ conn.instances.filter(InstanceIds=[options["--plug"]]).start()
+
+
+def define_new_opts():
+ all_opt["region"] = {
+ "getopt" : "r:",
+ "longopt" : "region",
+ "help" : "-r, --region=[name] Region, e.g. us-east-1",
+ "shortdesc" : "Region.",
+ "required" : "0",
+ "order" : 2
+ }
+ all_opt["access_key"] = {
+ "getopt" : "a:",
+ "longopt" : "access-key",
+ "help" : "-a, --access-key=[name] Access Key",
+ "shortdesc" : "Access Key.",
+ "required" : "0",
+ "order" : 3
+ }
+ all_opt["secret_key"] = {
+ "getopt" : "s:",
+ "longopt" : "secret-key",
+ "help" : "-s, --secret-key=[name] Secret Key",
+ "shortdesc" : "Secret Key.",
+ "required" : "0",
+ "order" : 4
+ }
+
+# Main agent method
+def main():
+ conn = None
+
+ device_opt = ["port", "no_password", "region", "access_key", "secret_key"]
+
+ atexit.register(atexit_handler)
+
+ define_new_opts()
+
+ all_opt["power_timeout"]["default"] = "60"
+
+ options = check_input(device_opt, process_input(device_opt))
+
+ docs = {}
+ docs["shortdesc"] = "Fence agent for AWS (Amazon Web Services)"
+ docs["longdesc"] = "fence_aws is an I/O Fencing agent for AWS (Amazon Web\
+Services). It uses the boto3 library to connect to AWS.\
+\n.P\n\
+boto3 can be configured with AWS CLI or by creating ~/.aws/credentials.\n\
+For instructions see: https://boto3.readthedocs.io/en/latest/guide/quickstart.html#configuration"
+ docs["vendorurl"] = "http://www.amazon.com"
+ show_docs(options, docs)
+
+ run_delay(options)
+
+ if "--region" in options and "--access-key" in options and "--secret-key" in options:
+ region = options["--region"]
+ access_key = options["--access-key"]
+ secret_key = options["--secret-key"]
+ try:
+ conn = boto3.resource('ec2', region_name=region,
+ aws_access_key_id=access_key,
+ aws_secret_access_key=secret_key)
+ except:
+ fail_usage("Failed: Unable to connect to AWS. Check your configuration.")
+ else:
+ # If setup with "aws configure" or manually in
+ # ~/.aws/credentials
+ try:
+ conn = boto3.resource('ec2')
+ except:
+ # If any of region/access/secret are missing
+ fail_usage("Failed: Unable to connect to AWS. Check your configuration.")
+
+ # Operate the fencing device
+ result = fence_action(conn, options, set_power_status, get_power_status, get_nodes_list)
+ sys.exit(result)
+
+if __name__ == "__main__":
+ main()
diff --git a/fence/agents/azure_arm/fence_azure_arm.py b/fence/agents/azure_arm/fence_azure_arm.py
index 3d326e8..e496003 100644
--- a/fence/agents/azure_arm/fence_azure_arm.py
+++ b/fence/agents/azure_arm/fence_azure_arm.py
@@ -3,23 +3,20 @@
import sys, re, pexpect
import logging
import atexit
-sys.path.append("/usr/share/fence")
+sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
from fencing import fail, fail_usage, EC_TIMED_OUT, run_delay
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="4.0.24.6-7e576"
-BUILD_DATE="(built Thu Nov 3 15:43:03 STD 2016)"
-REDHAT_COPYRIGHT="Copyright (C) Red Hat, Inc. 2004-2010 All rights reserved."
-#END_VERSION_GENERATION
-
def get_nodes_list(compute_client, options):
result = {}
if compute_client:
rgName = options["--resourceGroup"]
vms = compute_client.virtual_machines.list(rgName)
- for vm in vms:
- result[vm.name] = ("", None)
+ try:
+ for vm in vms:
+ result[vm.name] = ("", None)
+ except Exception as e:
+ fail_usage("Failed: %s" % e)
return result
@@ -31,7 +28,10 @@ def get_power_status(compute_client, options):
vmName = options["--plug"]
powerState = "unknown"
- vmStatus = compute_client.virtual_machines.get(rgName, vmName, "instanceView")
+ try:
+ vmStatus = compute_client.virtual_machines.get(rgName, vmName, "instanceView")
+ except Exception as e:
+ fail_usage("Failed: %s" % e)
for status in vmStatus.instance_view.statuses:
if status.code.startswith("PowerState"):
powerState = status.code
@@ -62,7 +62,7 @@ def define_new_opts():
all_opt["resourceGroup"] = {
"getopt" : ":",
"longopt" : "resourceGroup",
- "help" : "--resourceGroup=[name] Name of the resource group",
+ "help" : "--resourceGroup=[name] Name of the resource group",
"shortdesc" : "Name of resource group.",
"required" : "1",
"order" : 2
@@ -70,7 +70,7 @@ def define_new_opts():
all_opt["tenantId"] = {
"getopt" : ":",
"longopt" : "tenantId",
- "help" : "--tenantId=[name] Id of the Azure Active Directory tenant",
+ "help" : "--tenantId=[name] Id of the Azure Active Directory tenant",
"shortdesc" : "Id of Azure Active Directory tenant.",
"required" : "1",
"order" : 3
@@ -78,7 +78,7 @@ def define_new_opts():
all_opt["subscriptionId"] = {
"getopt" : ":",
"longopt" : "subscriptionId",
- "help" : "--subscriptionId=[name] Id of the Azure subscription",
+ "help" : "--subscriptionId=[name] Id of the Azure subscription",
"shortdesc" : "Id of the Azure subscription.",
"required" : "1",
"order" : 4
@@ -93,11 +93,21 @@ def main():
atexit.register(atexit_handler)
define_new_opts()
+
+ all_opt["power_timeout"]["default"] = "150"
+
+ all_opt["login"]["help"] = "-l, --username=[appid] Application ID"
+ all_opt["passwd"]["help"] = "-p, --password=[authkey] Authentication key"
+
options = check_input(device_opt, process_input(device_opt))
docs = {}
docs["shortdesc"] = "Fence agent for Azure Resource Manager"
- docs["longdesc"] = "Used to deallocate virtual machines and to report power state of virtual machines running in Azure"
+ docs["longdesc"] = "Used to deallocate virtual machines and to report power state of virtual machines running in Azure. It uses Azure SDK for Python to connect to Azure.\
+\n.P\n\
+For instructions to setup credentials see: https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal\
+\n.P\n\
+Username and password are application ID and authentication key from \"App registrations\"."
docs["vendorurl"] = "http://www.microsoft.com"
show_docs(options, docs)
@@ -121,7 +131,9 @@ def main():
subscriptionId
)
except ImportError:
- fail_usage("Azure Resource Manager Pyhton SDK not found or not accessible")
+ fail_usage("Azure Resource Manager Python SDK not found or not accessible")
+ except Exception as e:
+ fail_usage("Failed: %s" % re.sub("^, ", "", str(e)))
# Operate the fencing device
result = fence_action(compute_client, options, set_power_status, get_power_status, get_nodes_list)
diff --git a/fence/agents/bladecenter/fence_bladecenter.py b/fence/agents/bladecenter/fence_bladecenter.py
index b45f315..d670367 100644
--- a/fence/agents/bladecenter/fence_bladecenter.py
+++ b/fence/agents/bladecenter/fence_bladecenter.py
@@ -18,12 +18,6 @@ sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
from fencing import fail, EC_STATUS, EC_GENERIC_ERROR
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="New Bladecenter Agent - test release on steroids"
-REDHAT_COPYRIGHT=""
-BUILD_DATE="March, 2008"
-#END_VERSION_GENERATION
-
def get_power_status(conn, options):
node_cmd = r"system:blade\[" + options["--plug"] + r"\]>"
diff --git a/fence/agents/brocade/fence_brocade.py b/fence/agents/brocade/fence_brocade.py
index 4cf039a..9f413db 100644
--- a/fence/agents/brocade/fence_brocade.py
+++ b/fence/agents/brocade/fence_brocade.py
@@ -6,12 +6,6 @@ sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
from fencing import fail, EC_STATUS
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="New Brocade Agent - test release on steroids"
-REDHAT_COPYRIGHT=""
-BUILD_DATE="March, 20013"
-#END_VERSION_GENERATION
-
def set_power_status(conn, options):
action = {
'on' : "portCfgPersistentEnable",
diff --git a/fence/agents/cisco_mds/fence_cisco_mds.py b/fence/agents/cisco_mds/fence_cisco_mds.py
index cb3c960..fbb876a 100644
--- a/fence/agents/cisco_mds/fence_cisco_mds.py
+++ b/fence/agents/cisco_mds/fence_cisco_mds.py
@@ -13,12 +13,6 @@ from fencing import *
from fencing import fail_usage, array_to_dict
from fencing_snmp import FencingSnmp
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="Cisco MDS 9xxx SNMP fence agent"
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
### CONSTANTS ###
# Cisco admin status
PORT_ADMIN_STATUS_OID = ".1.3.6.1.2.1.75.1.2.2.1.1"
diff --git a/fence/agents/cisco_ucs/fence_cisco_ucs.py b/fence/agents/cisco_ucs/fence_cisco_ucs.py
index d21b278..d509b3e 100644
--- a/fence/agents/cisco_ucs/fence_cisco_ucs.py
+++ b/fence/agents/cisco_ucs/fence_cisco_ucs.py
@@ -8,12 +8,6 @@ sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
from fencing import fail, EC_STATUS, EC_LOGIN_DENIED, run_delay
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="New Cisco UCS Agent - test release on steroids"
-REDHAT_COPYRIGHT=""
-BUILD_DATE="March, 2008"
-#END_VERSION_GENERATION
-
RE_COOKIE = re.compile("<aaaLogin .* outCookie=\"(.*?)\"", re.IGNORECASE)
RE_STATUS = re.compile("<lsPower .*? state=\"(.*?)\"", re.IGNORECASE)
RE_GET_DN = re.compile(" dn=\"(.*?)\"", re.IGNORECASE)
@@ -71,8 +65,8 @@ def set_power_status(conn, options):
del conn
action = {
- 'on' : "up",
- 'off' : "down"
+ 'on' : "admin-up",
+ 'off' : "admin-down"
}[options["--action"]]
send_command(options, "<configConfMos cookie=\"" + options["cookie"] + "\" inHierarchical=\"no\">" +
@@ -115,7 +109,7 @@ def send_command(opt, command, timeout):
## send command through pycurl
conn = pycurl.Curl()
web_buffer = io.BytesIO()
- conn.setopt(pycurl.URL, url)
+ conn.setopt(pycurl.URL, url.encode("ascii"))
conn.setopt(pycurl.HTTPHEADER, ["Content-type: text/xml"])
conn.setopt(pycurl.POSTFIELDS, command)
conn.setopt(pycurl.WRITEFUNCTION, web_buffer.write)
diff --git a/fence/agents/compute/fence_compute.py b/fence/agents/compute/fence_compute.py
index 1845cc4..45f368e 100644
--- a/fence/agents/compute/fence_compute.py
+++ b/fence/agents/compute/fence_compute.py
@@ -4,186 +4,123 @@ import sys
import time
import atexit
import logging
+import inspect
import requests.exceptions
sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
from fencing import fail_usage, is_executable, run_command, run_delay
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="4.0.11"
-BUILD_DATE="(built Wed Nov 12 06:33:38 EST 2014)"
-REDHAT_COPYRIGHT="Copyright (C) Red Hat, Inc. 2004-2010 All rights reserved."
-#END_VERSION_GENERATION
-
override_status = ""
-nova = None
EVACUABLE_TAG = "evacuable"
TRUE_TAGS = ['true']
-def get_power_status(_, options):
- global override_status
-
- status = "unknown"
- logging.debug("get action: " + options["--action"])
+def get_power_status(connection, options):
if len(override_status):
logging.debug("Pretending we're " + override_status)
return override_status
- if nova:
+ status = "unknown"
+ logging.debug("get action: " + options["--action"])
+
+ if connection:
try:
- services = nova.services.list(host=options["--plug"])
+ services = connection.services.list(host=options["--plug"], binary="nova-compute")
for service in services:
- logging.debug("Status of %s is %s" % (service.binary, service.state))
- if service.binary == "nova-compute":
- if service.state == "up":
- status = "on"
- elif service.state == "down":
- status = "off"
- else:
- logging.debug("Unknown status detected from nova: " + service.state)
- break
+ logging.debug("Status of %s on %s is %s, %s" % (service.binary, options["--plug"], service.state, service.status))
+ if service.state == "up" and service.status == "enabled":
+ # Up and operational
+ status = "on"
+
+ elif service.state == "down" and service.status == "disabled":
+ # Down and fenced
+ status = "off"
+
+ elif service.state == "down":
+ # Down and requires fencing
+ status = "failed"
+
+ elif service.state == "up":
+ # Up and requires unfencing
+ status = "running"
+ else:
+ logging.warning("Unknown status detected from nova for %s: %s, %s" % (options["--plug"], service.state, service.status))
+ status = "%s %s" % (service.state, service.status)
+ break
except requests.exception.ConnectionError as err:
logging.warning("Nova connection failed: " + str(err))
+ logging.debug("Final status of %s is %s" % (options["--plug"], status))
return status
-# NOTE(sbauza); We mimic the host-evacuate module since it's only a contrib
-# module which is not stable
-def _server_evacuate(server, on_shared_storage):
- success = False
- error_message = ""
- try:
- logging.debug("Resurrecting instance: %s" % server)
- (response, dictionary) = nova.servers.evacuate(server=server, on_shared_storage=on_shared_storage)
-
- if response == None:
- error_message = "No response while evacuating instance"
- elif response.status_code == 200:
- success = True
- error_message = response.reason
- else:
- error_message = response.reason
-
- except Exception as e:
- error_message = "Error while evacuating instance: %s" % e
-
- return {
- "uuid": server,
- "accepted": success,
- "reason": error_message,
- }
-
-def _is_server_evacuable(server, evac_flavors, evac_images):
- if server.flavor.get('id') in evac_flavors:
- return True
- if server.image.get('id') in evac_images:
- return True
- logging.debug("Instance %s is not evacuable" % server.image.get('id'))
- return False
-
-def _get_evacuable_flavors():
- result = []
- flavors = nova.flavors.list()
- # Since the detailed view for all flavors doesn't provide the extra specs,
- # we need to call each of the flavor to get them.
- for flavor in flavors:
- tag = flavor.get_keys().get(EVACUABLE_TAG)
- if tag and tag.strip().lower() in TRUE_TAGS:
- result.append(flavor.id)
- return result
-
-def _get_evacuable_images():
- result = []
- images = nova.images.list(detailed=True)
- for image in images:
- if hasattr(image, 'metadata'):
- tag = image.metadata.get(EVACUABLE_TAG)
- if tag and tag.strip().lower() in TRUE_TAGS:
- result.append(image.id)
- return result
-
-def _host_evacuate(options):
- result = True
- images = _get_evacuable_images()
- flavors = _get_evacuable_flavors()
- servers = nova.servers.list(search_opts={'host': options["--plug"], 'all_tenants': 1 })
-
- if options["--instance-filtering"] == "False":
- logging.debug("Not evacuating anything")
- evacuables = []
- elif len(flavors) or len(images):
- logging.debug("Filtering images and flavors: %s %s" % (repr(flavors), repr(images)))
- # Identify all evacuable servers
- logging.debug("Checking %s" % repr(servers))
- evacuables = [server for server in servers
- if _is_server_evacuable(server, flavors, images)]
- logging.debug("Evacuating %s" % repr(evacuables))
- else:
- logging.debug("Evacuating all images and flavors")
- evacuables = servers
-
- if options["--no-shared-storage"] != "False":
- on_shared_storage = False
- else:
- on_shared_storage = True
-
- for server in evacuables:
- logging.debug("Processing %s" % server)
- if hasattr(server, 'id'):
- response = _server_evacuate(server.id, on_shared_storage)
- if response["accepted"]:
- logging.debug("Evacuated %s from %s: %s" %
- (response["uuid"], options["--plug"], response["reason"]))
- else:
- logging.error("Evacuation of %s on %s failed: %s" %
- (response["uuid"], options["--plug"], response["reason"]))
- result = False
- else:
- logging.error("Could not evacuate instance: %s" % server.to_dict())
- # Should a malformed instance result in a failed evacuation?
- # result = False
- return result
+def get_power_status_simple(connection, options):
+ status = get_power_status(connection, options)
+ if status in [ "off" ]:
+ return status
+ return "on"
def set_attrd_status(host, status, options):
logging.debug("Setting fencing status for %s to %s" % (host, status))
run_command(options, "attrd_updater -p -n evacuate -Q -N %s -U %s" % (host, status))
-def set_power_status(_, options):
- global override_status
-
- override_status = ""
- logging.debug("set action: " + options["--action"])
+def get_attrd_status(host, options):
+ (status, pipe_stdout, pipe_stderr) = run_command(options, "attrd_updater -p -n evacuate -Q -N %s" % (host))
+ fields = pipe_stdout.split('"')
+ if len(fields) > 6:
+ return fields[5]
+ logging.debug("Got %s: o:%s e:%s n:%d" % (status, pipe_stdout, pipe_stderr, len(fields)))
+ return ""
+
+def set_power_status_on(connection, options):
+ # Wait for any evacuations to complete
+ while True:
+ current = get_attrd_status(options["--plug"], options)
+ if current in ["no", ""]:
+ logging.info("Evacuation complete for: %s '%s'" % (options["--plug"], current))
+ break
+ else:
+ logging.info("Waiting for %s to complete evacuations: %s" % (options["--plug"], current))
+ time.sleep(2)
- if not nova:
- return
+ status = get_power_status(connection, options)
+ # Should we do it for 'failed' too?
+ if status in [ "off", "running", "failed" ]:
+ try:
+ # Forcing the host back up
+ logging.info("Forcing nova-compute back up on "+options["--plug"])
+ connection.services.force_down(options["--plug"], "nova-compute", force_down=False)
+ logging.info("Forced nova-compute back up on "+options["--plug"])
+ except Exception as e:
+ # In theory, if force_down=False fails, that's for the exact
+ # same possible reasons that below with force_down=True
+ # eg. either an incompatible version or an old client.
+ # Since it's about forcing back to a default value, there is
+ # no real worries to just consider it's still okay even if the
+ # command failed
+ logging.warn("Exception from attempt to force "
+ "host back up via nova API: "
+ "%s: %s" % (e.__class__.__name__, e))
+
+ # Forcing the service back up in case it was disabled
+ logging.info("Enabling nova-compute on "+options["--plug"])
+ connection.services.enable(options["--plug"], 'nova-compute')
+
+ # Pretend we're 'on' so that the fencing library doesn't loop forever waiting for the node to boot
+ override_status = "on"
+ elif status not in ["on"]:
+ # Not safe to unfence, don't waste time looping to see if the status changes to "on"
+ options["--power-timeout"] = "0"
- if options["--action"] == "on":
- if get_power_status(_, options) != "on":
- # Forcing the service back up in case it was disabled
- nova.services.enable(options["--plug"], 'nova-compute')
- try:
- # Forcing the host back up
- nova.services.force_down(
- options["--plug"], "nova-compute", force_down=False)
- except Exception as e:
- # In theory, if force_down=False fails, that's for the exact
- # same possible reasons that below with force_down=True
- # eg. either an incompatible version or an old client.
- # Since it's about forcing back to a default value, there is
- # no real worries to just consider it's still okay even if the
- # command failed
- logging.info("Exception from attempt to force "
- "host back up via nova API: "
- "%s: %s" % (e.__class__.__name__, e))
- else:
- # Pretend we're 'on' so that the fencing library doesn't loop forever waiting for the node to boot
- override_status = "on"
+def set_power_status_off(connection, options):
+ status = get_power_status(connection, options)
+ if status in [ "off" ]:
return
+ connection.services.disable(options["--plug"], 'nova-compute')
try:
- nova.services.force_down(
+ # Until 2.53
+ connection.services.force_down(
options["--plug"], "nova-compute", force_down=True)
except Exception as e:
# Something went wrong when we tried to force the host down.
@@ -197,7 +134,7 @@ def set_power_status(_, options):
"%s: %s" % (e.__class__.__name__, e))
# need to wait for nova to update its internal status or we
# cannot call host-evacuate
- while get_power_status(_, options) != "off":
+ while get_power_status(connection, options) not in ["off"]:
# Loop forever if need be.
#
# Some callers (such as Pacemaker) will have a timer
@@ -205,109 +142,115 @@ def set_power_status(_, options):
logging.debug("Waiting for nova to update its internal state for %s" % options["--plug"])
time.sleep(1)
- if not _host_evacuate(options):
- sys.exit(1)
+ set_attrd_status(options["--plug"], "yes", options)
- return
+def set_power_status(connection, options):
+ global override_status
+ override_status = ""
+ logging.debug("set action: " + options["--action"])
-def fix_domain(options):
+ if not connection:
+ return
+
+ if options["--action"] in ["off", "reboot"]:
+ set_power_status_off(connection, options)
+ else:
+ set_power_status_on(connection, options)
+ logging.debug("set action passed: " + options["--action"])
+ sys.exit(0)
+
+def fix_domain(connection, options):
domains = {}
last_domain = None
- if nova:
+ if connection:
# Find it in nova
- hypervisors = nova.hypervisors.list()
- for hypervisor in hypervisors:
- shorthost = hypervisor.hypervisor_hostname.split('.')[0]
+ services = connection.services.list(binary="nova-compute")
+ for service in services:
+ shorthost = service.host.split('.')[0]
- if shorthost == hypervisor.hypervisor_hostname:
+ if shorthost == service.host:
# Nova is not using FQDN
calculated = ""
else:
# Compute nodes are named as FQDN, strip off the hostname
- calculated = hypervisor.hypervisor_hostname.replace(shorthost+".", "")
-
- domains[calculated] = shorthost
+ calculated = service.host.replace(shorthost+".", "")
if calculated == last_domain:
# Avoid complaining for each compute node with the same name
# One hopes they don't appear interleaved as A.com B.com A.com B.com
- logging.debug("Calculated the same domain from: %s" % hypervisor.hypervisor_hostname)
+ logging.debug("Calculated the same domain from: %s" % service.host)
+ continue
- elif "--domain" in options and options["--domain"] == calculated:
- # Supplied domain name is valid
- return
+ domains[calculated] = service.host
+ last_domain = calculated
- elif "--domain" in options:
+ if "--domain" in options and options["--domain"] != calculated:
# Warn in case nova isn't available at some point
logging.warning("Supplied domain '%s' does not match the one calculated from: %s"
- % (options["--domain"], hypervisor.hypervisor_hostname))
-
- last_domain = calculated
+ % (options["--domain"], service.host))
if len(domains) == 0 and "--domain" not in options:
logging.error("Could not calculate the domain names used by compute nodes in nova")
elif len(domains) == 1 and "--domain" not in options:
options["--domain"] = last_domain
- return options["--domain"]
- elif len(domains) == 1:
- logging.error("Overriding supplied domain '%s' does not match the one calculated from: %s"
- % (options["--domain"], hypervisor.hypervisor_hostname))
+ elif len(domains) == 1 and options["--domain"] != last_domain:
+ logging.error("Overriding supplied domain '%s' as it does not match the one calculated from: %s"
+ % (options["--domain"], domains[last_domain]))
options["--domain"] = last_domain
- return options["--domain"]
elif len(domains) > 1:
logging.error("The supplied domain '%s' did not match any used inside nova: %s"
% (options["--domain"], repr(domains)))
sys.exit(1)
- return None
+ return last_domain
-def fix_plug_name(options):
+def fix_plug_name(connection, options):
if options["--action"] == "list":
return
if "--plug" not in options:
return
- calculated = fix_domain(options)
- short_plug = options["--plug"].split('.')[0]
- logging.debug("Checking target '%s' against calculated domain '%s'"% (options["--plug"], options["--domain"]))
-
- if "--domain" not in options:
+ calculated = fix_domain(connection, options)
+ if calculated is None or "--domain" not in options:
# Nothing supplied and nova not available... what to do... nothing
return
- elif options["--domain"] == "":
+ short_plug = options["--plug"].split('.')[0]
+ logging.debug("Checking target '%s' against calculated domain '%s'"% (options["--plug"], calculated))
+
+ if options["--domain"] == "":
# Ensure any domain is stripped off since nova isn't using FQDN
options["--plug"] = short_plug
- elif options["--domain"] in options["--plug"]:
- # Plug already contains the domain, don't re-add
+ elif options["--plug"].endswith(options["--domain"]):
+ # Plug already uses the domain, don't re-add
return
else:
# Add the domain to the plug
options["--plug"] = short_plug + "." + options["--domain"]
-def get_plugs_list(_, options):
+def get_plugs_list(connection, options):
result = {}
- if nova:
- hypervisors = nova.hypervisors.list()
- for hypervisor in hypervisors:
- longhost = hypervisor.hypervisor_hostname
+ if connection:
+ services = connection.services.list(binary="nova-compute")
+ for service in services:
+ longhost = service.host
shorthost = longhost.split('.')[0]
result[longhost] = ("", None)
result[shorthost] = ("", None)
return result
def create_nova_connection(options):
- global nova
+ nova = None
try:
from novaclient import client
@@ -315,31 +258,84 @@ def create_nova_connection(options):
except ImportError:
fail_usage("Nova not found or not accessible")
- versions = [ "2.11", "2" ]
- for version in versions:
- nova = client.Client(version,
- options["--username"],
- options["--password"],
- options["--tenant-name"],
- options["--auth-url"],
- insecure=options["--insecure"],
- region_name=options["--region-name"],
- endpoint_type=options["--endpoint-type"],
- http_log_debug=options.has_key("--verbose"))
+ from keystoneauth1 import loading
+ from keystoneauth1 import session
+ from keystoneclient import discover
+
+ # Prefer the oldest and strip the leading 'v'
+ keystone_versions = discover.available_versions(options["--auth-url"])
+ keystone_version = keystone_versions[0]['id'][1:]
+ kwargs = dict(
+ auth_url=options["--auth-url"],
+ username=options["--username"],
+ password=options["--password"]
+ )
+
+ if discover.version_match("2", keystone_version):
+ kwargs["tenant_name"] = options["--tenant-name"]
+
+ elif discover.version_match("3", keystone_version):
+ kwargs["project_name"] = options["--tenant-name"]
+ kwargs["user_domain_name"] = options["--user-domain"]
+ kwargs["project_domain_name"] = options["--project-domain"]
+
+ loader = loading.get_plugin_loader('password')
+ keystone_auth = loader.load_from_options(**kwargs)
+ keystone_session = session.Session(auth=keystone_auth, verify=(not options["--insecure"]))
+
+ nova_versions = [ "2.11", "2" ]
+ for version in nova_versions:
+ clientargs = inspect.getargspec(client.Client).varargs
+ # Some versions of Openstack prior to Ocata only
+ # supported positional arguments for username,
+ # password, and tenant.
+ #
+ # Versions since Ocata only support named arguments.
+ #
+ # So we need to use introspection to figure out how to
+ # create a Nova client.
+ #
+ # Happy days
+ #
+ if clientargs:
+ # OSP < 11
+ # ArgSpec(args=['version', 'username', 'password', 'project_id', 'auth_url'],
+ # varargs=None,
+ # keywords='kwargs', defaults=(None, None, None, None))
+ nova = client.Client(version,
+ None, # User
+ None, # Password
+ None, # Tenant
+ None, # Auth URL
+ insecure=options["--insecure"],
+ region_name=options["--region-name"],
+ endpoint_type=options["--endpoint-type"],
+ session=keystone_session, auth=keystone_auth,
+ http_log_debug=options.has_key("--verbose"))
+ else:
+ # OSP >= 11
+ # ArgSpec(args=['version'], varargs='args', keywords='kwargs', defaults=None)
+ nova = client.Client(version,
+ region_name=options["--region-name"],
+ endpoint_type=options["--endpoint-type"],
+ session=keystone_session, auth=keystone_auth,
+ http_log_debug=options.has_key("--verbose"))
+
try:
nova.hypervisors.list()
- return
+ return nova
except NotAcceptable as e:
logging.warning(e)
except Exception as e:
logging.warning("Nova connection failed. %s: %s" % (e.__class__.__name__, e))
-
- fail_usage("Couldn't obtain a supported connection to nova, tried: %s" % repr(versions))
+
+ logging.warning("Couldn't obtain a supported connection to nova, tried: %s\n" % repr(nova_versions))
+ return None
def define_new_opts():
- all_opt["endpoint-type"] = {
+ all_opt["endpoint_type"] = {
"getopt" : "e:",
"longopt" : "endpoint-type",
"help" : "-e, --endpoint-type=[endpoint] Nova Endpoint type (publicURL, internalURL, adminURL)",
@@ -348,16 +344,34 @@ def define_new_opts():
"default" : "internalURL",
"order": 1,
}
- all_opt["tenant-name"] = {
+ all_opt["tenant_name"] = {
"getopt" : "t:",
"longopt" : "tenant-name",
- "help" : "-t, --tenant-name=[tenant] Keystone Admin Tenant",
+ "help" : "-t, --tenant-name=[name] Keystone v2 Tenant or v3 Project Name",
"required" : "0",
- "shortdesc" : "Keystone Admin Tenant",
+ "shortdesc" : "Keystone Admin Tenant or v3 Project",
"default" : "",
"order": 1,
}
- all_opt["auth-url"] = {
+ all_opt["user-domain"] = {
+ "getopt" : "u:",
+ "longopt" : "user-domain",
+ "help" : "-u, --user-domain=[name] Keystone v3 User Domain",
+ "required" : "0",
+ "shortdesc" : "Keystone v3 User Domain",
+ "default" : "Default",
+ "order": 2,
+ }
+ all_opt["project-domain"] = {
+ "getopt" : "P:",
+ "longopt" : "project-domain",
+ "help" : "-d, --project-domain=[name] Keystone v3 Project Domain",
+ "required" : "0",
+ "shortdesc" : "Keystone v3 Project Domain",
+ "default" : "Default",
+ "order": 2,
+ }
+ all_opt["auth_url"] = {
"getopt" : "k:",
"longopt" : "auth-url",
"help" : "-k, --auth-url=[url] Keystone Admin Auth URL",
@@ -366,7 +380,7 @@ def define_new_opts():
"default" : "",
"order": 1,
}
- all_opt["region-name"] = {
+ all_opt["region_name"] = {
"getopt" : "",
"longopt" : "region-name",
"help" : "--region-name=[region] Region Name",
@@ -384,7 +398,7 @@ def define_new_opts():
"default" : "False",
"order": 2,
}
- all_opt["domain"] = {
+ all_opt["compute-domain"] = {
"getopt" : "d:",
"longopt" : "domain",
"help" : "-d, --domain=[string] DNS domain in which hosts live, useful when the cluster uses short names and nova uses FQDN",
@@ -392,7 +406,7 @@ def define_new_opts():
"shortdesc" : "DNS domain in which hosts live",
"order": 5,
}
- all_opt["record-only"] = {
+ all_opt["record_only"] = {
"getopt" : "r:",
"longopt" : "record-only",
"help" : "--record-only Record the target as needing evacuation but as yet do not intiate it",
@@ -401,7 +415,7 @@ def define_new_opts():
"default" : "False",
"order": 5,
}
- all_opt["instance-filtering"] = {
+ all_opt["instance_filtering"] = {
"getopt" : "",
"longopt" : "instance-filtering",
"help" : "--instance-filtering Allow instances created from images and flavors with evacuable=true to be evacuated (or all if no images/flavors have been tagged)",
@@ -410,7 +424,7 @@ def define_new_opts():
"default" : "True",
"order": 5,
}
- all_opt["no-shared-storage"] = {
+ all_opt["no_shared_storage"] = {
"getopt" : "",
"longopt" : "no-shared-storage",
"help" : "--no-shared-storage Disable functionality for shared storage",
@@ -420,13 +434,25 @@ def define_new_opts():
"order": 5,
}
+def set_multi_power_fn(connection, options, set_power_fn, get_power_fn, retry_attempts=1):
+ for _ in range(retry_attempts):
+ set_power_fn(connection, options)
+ time.sleep(int(options["--power-wait"]))
+
+ for _ in range(int(options["--power-timeout"])):
+ if get_power_fn(connection, options) != options["--action"]:
+ time.sleep(1)
+ else:
+ return True
+ return False
+
def main():
global override_status
atexit.register(atexit_handler)
- device_opt = ["login", "passwd", "tenant-name", "auth-url", "fabric_fencing", "on_target",
- "no_login", "no_password", "port", "domain", "no-shared-storage", "endpoint-type",
- "record-only", "instance-filtering", "insecure", "region-name"]
+ device_opt = ["login", "passwd", "tenant_name", "auth_url", "fabric_fencing",
+ "no_login", "no_password", "port", "compute-domain", "project-domain", "user-domain",
+ "no_shared_storage", "endpoint_type", "record_only", "instance_filtering", "insecure", "region_name"]
define_new_opts()
all_opt["shell_timeout"]["default"] = "180"
@@ -438,36 +464,34 @@ def main():
docs["vendorurl"] = ""
show_docs(options, docs)
-
+
if options["--record-only"] in [ "2", "Disabled", "disabled" ]:
sys.exit(0)
run_delay(options)
- create_nova_connection(options)
+ logging.debug("Running "+options["--action"])
+ connection = create_nova_connection(options)
- fix_plug_name(options)
- if options["--record-only"] in [ "1", "True", "true", "Yes", "yes"]:
- if options["--action"] == "on":
- set_attrd_status(options["--plug"], "no", options)
- sys.exit(0)
+ if options["--action"] in ["off", "on", "reboot", "status"]:
+ fix_plug_name(connection, options)
- elif options["--action"] in ["off", "reboot"]:
- set_attrd_status(options["--plug"], "yes", options)
- sys.exit(0)
- elif options["--action"] in ["monitor", "status"]:
- sys.exit(0)
+ if options["--action"] in ["reboot"]:
+ options["--action"]="off"
- if options["--action"] in ["off", "reboot"]:
- # Pretend we're 'on' so that the fencing library will always call set_power_status(off)
- override_status = "on"
-
- if options["--action"] == "on":
- # Pretend we're 'off' so that the fencing library will always call set_power_status(on)
- override_status = "off"
+ if options["--action"] in ["off", "on"]:
+ # No status first, call our own version
+ result = not set_multi_power_fn(connection, options, set_power_status, get_power_status_simple,
+ 1 + int(options["--retry-on"]))
+ elif options["--action"] in ["monitor"]:
+ result = 0
+ else:
+ result = fence_action(connection, options, set_power_status, get_power_status_simple, get_plugs_list, None)
- result = fence_action(None, options, set_power_status, get_power_status, get_plugs_list, None)
+ logging.debug("Result for "+options["--action"]+": "+repr(result))
+ if result == None:
+ result = 0
sys.exit(result)
if __name__ == "__main__":
diff --git a/fence/agents/docker/fence_docker.py b/fence/agents/docker/fence_docker.py
index 2705ceb..b292101 100644
--- a/fence/agents/docker/fence_docker.py
+++ b/fence/agents/docker/fence_docker.py
@@ -10,12 +10,6 @@ import json
sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import fail_usage, all_opt, fence_action, atexit_handler, check_input, process_input, show_docs, run_delay
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION = ""
-REDHAT_COPYRIGHT = ""
-BUILD_DATE = ""
-#END_VERSION_GENERATION
-
def get_power_status(conn, options):
del conn
status = send_cmd(options, "containers/%s/json" % options["--plug"])
@@ -55,7 +49,7 @@ def send_cmd(options, cmd, post = False):
if logging.getLogger().getEffectiveLevel() < logging.WARNING:
conn.setopt(pycurl.VERBOSE, True)
conn.setopt(pycurl.HTTPGET, 1)
- conn.setopt(pycurl.URL, str(url))
+ conn.setopt(pycurl.URL, url.encode("ascii"))
if post:
conn.setopt(pycurl.POST, 1)
conn.setopt(pycurl.POSTFIELDSIZE, 0)
diff --git a/fence/agents/drac/fence_drac.py b/fence/agents/drac/fence_drac.py
index f698b39..be3e9a5 100644
--- a/fence/agents/drac/fence_drac.py
+++ b/fence/agents/drac/fence_drac.py
@@ -5,12 +5,6 @@ import atexit
sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION=""
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
def get_power_status(conn, options):
conn.send_eol("getmodinfo")
conn.log_expect(options["--command-prompt"], int(options["--shell-timeout"]))
diff --git a/fence/agents/drac5/fence_drac5.py b/fence/agents/drac5/fence_drac5.py
index df113fe..648ecd9 100644
--- a/fence/agents/drac5/fence_drac5.py
+++ b/fence/agents/drac5/fence_drac5.py
@@ -18,12 +18,6 @@ sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
from fencing import fail_usage
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="New Drac5 Agent - test release on steroids"
-REDHAT_COPYRIGHT=""
-BUILD_DATE="March, 2008"
-#END_VERSION_GENERATION
-
def get_power_status(conn, options):
if options["--drac-version"] == "DRAC MC":
(_, status) = get_list_devices(conn, options)[options["--plug"]]
diff --git a/fence/agents/dummy/fence_dummy.py b/fence/agents/dummy/fence_dummy.py
index e4f1589..8fa2d9a 100644
--- a/fence/agents/dummy/fence_dummy.py
+++ b/fence/agents/dummy/fence_dummy.py
@@ -8,12 +8,6 @@ sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
from fencing import fail_usage, run_delay
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="New Dummy Agent - test release on steroids"
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
plug_status = "on"
def get_power_status_file(conn, options):
diff --git a/fence/agents/eaton_snmp/README b/fence/agents/eaton_snmp/README
new file mode 100644
index 0000000..82619d7
--- /dev/null
+++ b/fence/agents/eaton_snmp/README
@@ -0,0 +1,20 @@
+This is an snmp based fence agent for Eaton power distribution units to be used
+with RHEL4 Red Hat Cluster Suite.
+
+In order to use this agent, you will need to have net-snmp-utils installed
+on every node in your cluster. net-snmp-utils is scheduled for inclusion
+in the base RHEL distribution for Update 4, and is yummable in FC5.
+
+To use the agent, cp the agent to the /sbin directory on every
+cluster node.
+
+Then define a <fencedevice> in the cluster.conf file with
+agent="fence_eaton_snmp" as an attribute, and use it that way.
+Note, please, that the GUI does not support this agent yet, and you will have
+to edit your cluster.conf by hand and then propagate it yourself. If you need
+help with this, email me at the address below.
+
+The interface for the fence_eaton_snmp agent is identical to the existing
+fence_apc_snmp agent, upon which it has been derived.
+
+--Arnaud Quette - ArnaudQuette at Eaton.com
diff --git a/fence/agents/eaton_snmp/fence_eaton_snmp.py b/fence/agents/eaton_snmp/fence_eaton_snmp.py
index dfd540c..9fbc056 100644
--- a/fence/agents/eaton_snmp/fence_eaton_snmp.py
+++ b/fence/agents/eaton_snmp/fence_eaton_snmp.py
@@ -14,12 +14,6 @@ from fencing import *
from fencing import fail_usage
from fencing_snmp import FencingSnmp
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="Eaton SNMP fence agent"
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
### CONSTANTS ###
# oid defining fence device
OID_SYS_OBJECT_ID = '.1.3.6.1.2.1.1.2.0'
diff --git a/fence/agents/emerson/fence_emerson.py b/fence/agents/emerson/fence_emerson.py
index ed5b5ae..2e65cda 100644
--- a/fence/agents/emerson/fence_emerson.py
+++ b/fence/agents/emerson/fence_emerson.py
@@ -6,12 +6,6 @@ sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
from fencing_snmp import FencingSnmp
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="Emerson SNMP fence agent"
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
### CONSTANTS ###
STATUSES_OID = ".1.3.6.1.4.1.476.1.42.3.8.50.20.1.95"
CONTROL_OID = ".1.3.6.1.4.1.476.1.42.3.8.50.20.1.100"
diff --git a/fence/agents/eps/fence_eps.py b/fence/agents/eps/fence_eps.py
index 65de6a0..74c89b9 100644
--- a/fence/agents/eps/fence_eps.py
+++ b/fence/agents/eps/fence_eps.py
@@ -16,12 +16,6 @@ if sys.version_info[0] > 2:
else:
import httplib
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="ePowerSwitch 8M+ (eps)"
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
# Run command on EPS device.
# @param options Device options
# @param params HTTP GET parameters (without ?)
diff --git a/fence/agents/evacuate/fence_evacuate.py b/fence/agents/evacuate/fence_evacuate.py
new file mode 100644
index 0000000..f39df27
--- /dev/null
+++ b/fence/agents/evacuate/fence_evacuate.py
@@ -0,0 +1,407 @@
+#!@PYTHON@ -tt
+
+import sys
+import time
+import atexit
+import logging
+import inspect
+import requests.exceptions
+
+sys.path.append("@FENCEAGENTSLIBDIR@")
+from fencing import *
+from fencing import fail_usage, is_executable, run_command, run_delay
+
+EVACUABLE_TAG = "evacuable"
+TRUE_TAGS = ['true']
+
+def get_power_status(connection, options):
+
+ status = "unknown"
+ logging.debug("get action: " + options["--action"])
+
+ if connection:
+ try:
+ services = connection.services.list(host=options["--plug"], binary="nova-compute")
+ for service in services:
+ logging.debug("Status of %s is %s, %s" % (service.binary, service.state, service.status))
+ if service.state == "up" and service.status == "enabled":
+ # Up and operational
+ status = "on"
+
+ elif service.state == "down" and service.status == "disabled":
+ # Down and fenced
+ status = "off"
+
+ elif service.state == "down":
+ # Down and requires fencing
+ status = "failed"
+
+ elif service.state == "up":
+ # Up and requires unfencing
+ status = "running"
+ else:
+ logging.warning("Unknown status detected from nova for %s: %s, %s" % (options["--plug"], service.state, service.status))
+ status = "%s %s" % (service.state, service.status)
+ break
+ except requests.exception.ConnectionError as err:
+ logging.warning("Nova connection failed: " + str(err))
+ return status
+
+# NOTE(sbauza); We mimic the host-evacuate module since it's only a contrib
+# module which is not stable
+def _server_evacuate(connection, server, on_shared_storage):
+ success = False
+ error_message = ""
+ try:
+ logging.debug("Resurrecting instance: %s" % server)
+ (response, dictionary) = connection.servers.evacuate(server=server, on_shared_storage=on_shared_storage)
+
+ if response == None:
+ error_message = "No response while evacuating instance"
+ elif response.status_code == 200:
+ success = True
+ error_message = response.reason
+ else:
+ error_message = response.reason
+
+ except Exception as e:
+ error_message = "Error while evacuating instance: %s" % e
+
+ return {
+ "uuid": server,
+ "accepted": success,
+ "reason": error_message,
+ }
+
+def _is_server_evacuable(server, evac_flavors, evac_images):
+ if server.flavor.get('id') in evac_flavors:
+ return True
+ if hasattr(server.image, 'get'):
+ if server.image.get('id') in evac_images:
+ return True
+ logging.debug("Instance %s is not evacuable" % server.image.get('id'))
+ return False
+
+def _get_evacuable_flavors(connection):
+ result = []
+ flavors = connection.flavors.list()
+ # Since the detailed view for all flavors doesn't provide the extra specs,
+ # we need to call each of the flavor to get them.
+ for flavor in flavors:
+ tag = flavor.get_keys().get(EVACUABLE_TAG)
+ if tag and tag.strip().lower() in TRUE_TAGS:
+ result.append(flavor.id)
+ return result
+
+def _get_evacuable_images(connection):
+ result = []
+ images = []
+ if hasattr(connection, "images"):
+ images = connection.images.list(detailed=True)
+ elif hasattr(connection, "glance"):
+ # OSP12+
+ images = connection.glance.list()
+
+ for image in images:
+ if hasattr(image, 'metadata'):
+ tag = image.metadata.get(EVACUABLE_TAG)
+ if tag and tag.strip().lower() in TRUE_TAGS:
+ result.append(image.id)
+ elif hasattr(image, 'tags'):
+ # OSP12+
+ if EVACUABLE_TAG in image.tags:
+ result.append(image.id)
+ return result
+
+def _host_evacuate(connection, options):
+ result = True
+ images = _get_evacuable_images(connection)
+ flavors = _get_evacuable_flavors(connection)
+ servers = connection.servers.list(search_opts={'host': options["--plug"], 'all_tenants': 1 })
+
+ if options["--instance-filtering"] == "False":
+ logging.debug("Not evacuating anything")
+ evacuables = []
+ elif len(flavors) or len(images):
+ logging.debug("Filtering images and flavors: %s %s" % (repr(flavors), repr(images)))
+ # Identify all evacuable servers
+ logging.debug("Checking %s" % repr(servers))
+ evacuables = [server for server in servers
+ if _is_server_evacuable(server, flavors, images)]
+ logging.debug("Evacuating %s" % repr(evacuables))
+ else:
+ logging.debug("Evacuating all images and flavors")
+ evacuables = servers
+
+ if options["--no-shared-storage"] != "False":
+ on_shared_storage = False
+ else:
+ on_shared_storage = True
+
+ for server in evacuables:
+ logging.debug("Processing %s" % server)
+ if hasattr(server, 'id'):
+ response = _server_evacuate(connection, server.id, on_shared_storage)
+ if response["accepted"]:
+ logging.debug("Evacuated %s from %s: %s" %
+ (response["uuid"], options["--plug"], response["reason"]))
+ else:
+ logging.error("Evacuation of %s on %s failed: %s" %
+ (response["uuid"], options["--plug"], response["reason"]))
+ result = False
+ else:
+ logging.error("Could not evacuate instance: %s" % server.to_dict())
+ # Should a malformed instance result in a failed evacuation?
+ # result = False
+ return result
+
+def set_attrd_status(host, status, options):
+ logging.debug("Setting fencing status for %s to %s" % (host, status))
+ run_command(options, "attrd_updater -p -n evacuate -Q -N %s -U %s" % (host, status))
+
+def set_power_status(connection, options):
+ logging.debug("set action: " + options["--action"])
+
+ if not connection:
+ return
+
+ if options["--action"] == "off" and not _host_evacuate(options):
+ sys.exit(1)
+
+ sys.exit(0)
+
+def get_plugs_list(connection, options):
+ result = {}
+
+ if connection:
+ services = connection.services.list(binary="nova-compute")
+ for service in services:
+ longhost = service.host
+ shorthost = longhost.split('.')[0]
+ result[longhost] = ("", None)
+ result[shorthost] = ("", None)
+ return result
+
+def create_nova_connection(options):
+ nova = None
+
+ try:
+ from novaclient import client
+ from novaclient.exceptions import NotAcceptable
+ except ImportError:
+ fail_usage("Nova not found or not accessible")
+
+ from keystoneauth1 import loading
+ from keystoneauth1 import session
+ from keystoneclient import discover
+
+ # Prefer the oldest and strip the leading 'v'
+ keystone_versions = discover.available_versions(options["--auth-url"])
+ keystone_version = keystone_versions[0]['id'][1:]
+ kwargs = dict(
+ auth_url=options["--auth-url"],
+ username=options["--username"],
+ password=options["--password"]
+ )
+
+ if discover.version_match("2", keystone_version):
+ kwargs["tenant_name"] = options["--tenant-name"]
+
+ elif discover.version_match("3", keystone_version):
+ kwargs["project_name"] = options["--tenant-name"]
+ kwargs["user_domain_name"] = options["--user-domain"]
+ kwargs["project_domain_name"] = options["--project-domain"]
+
+ loader = loading.get_plugin_loader('password')
+ keystone_auth = loader.load_from_options(**kwargs)
+ keystone_session = session.Session(auth=keystone_auth, verify=(not options["--insecure"]))
+
+ versions = [ "2.11", "2" ]
+ for version in versions:
+ clientargs = inspect.getargspec(client.Client).varargs
+
+ # Some versions of Openstack prior to Ocata only
+ # supported positional arguments for username,
+ # password, and tenant.
+ #
+ # Versions since Ocata only support named arguments.
+ #
+ # So we need to use introspection to figure out how to
+ # create a Nova client.
+ #
+ # Happy days
+ #
+ if clientargs:
+ # OSP < 11
+ # ArgSpec(args=['version', 'username', 'password', 'project_id', 'auth_url'],
+ # varargs=None,
+ # keywords='kwargs', defaults=(None, None, None, None))
+ nova = client.Client(version,
+ None, # User
+ None, # Password
+ None, # Tenant
+ None, # Auth URL
+ insecure=options["--insecure"],
+ region_name=options["--region-name"],
+ endpoint_type=options["--endpoint-type"],
+ session=keystone_session, auth=keystone_auth,
+ http_log_debug=options.has_key("--verbose"))
+ else:
+ # OSP >= 11
+ # ArgSpec(args=['version'], varargs='args', keywords='kwargs', defaults=None)
+ nova = client.Client(version,
+ region_name=options["--region-name"],
+ endpoint_type=options["--endpoint-type"],
+ session=keystone_session, auth=keystone_auth,
+ http_log_debug=options.has_key("--verbose"))
+
+ try:
+ nova.hypervisors.list()
+ return nova
+
+ except NotAcceptable as e:
+ logging.warning(e)
+
+ except Exception as e:
+ logging.warning("Nova connection failed. %s: %s" % (e.__class__.__name__, e))
+
+ logging.warning("Couldn't obtain a supported connection to nova, tried: %s\n" % repr(versions))
+ return None
+
+def define_new_opts():
+ all_opt["endpoint_type"] = {
+ "getopt" : "e:",
+ "longopt" : "endpoint-type",
+ "help" : "-e, --endpoint-type=[endpoint] Nova Endpoint type (publicURL, internalURL, adminURL)",
+ "required" : "0",
+ "shortdesc" : "Nova Endpoint type",
+ "default" : "internalURL",
+ "order": 1,
+ }
+ all_opt["tenant_name"] = {
+ "getopt" : "t:",
+ "longopt" : "tenant-name",
+ "help" : "-t, --tenant-name=[name] Keystone v2 Tenant or v3 Project Name",
+ "required" : "0",
+ "shortdesc" : "Keystone Admin Tenant or v3 Project",
+ "default" : "",
+ "order": 1,
+ }
+ all_opt["user-domain"] = {
+ "getopt" : "u:",
+ "longopt" : "user-domain",
+ "help" : "-u, --user-domain=[name] Keystone v3 User Domain",
+ "required" : "0",
+ "shortdesc" : "Keystone v3 User Domain",
+ "default" : "Default",
+ "order": 2,
+ }
+ all_opt["project-domain"] = {
+ "getopt" : "P:",
+ "longopt" : "project-domain",
+ "help" : "-d, --project-domain=[name] Keystone v3 Project Domain",
+ "required" : "0",
+ "shortdesc" : "Keystone v3 Project Domain",
+ "default" : "Default",
+ "order": 2,
+ }
+ all_opt["auth_url"] = {
+ "getopt" : "k:",
+ "longopt" : "auth-url",
+ "help" : "-k, --auth-url=[url] Keystone Admin Auth URL",
+ "required" : "0",
+ "shortdesc" : "Keystone Admin Auth URL",
+ "default" : "",
+ "order": 1,
+ }
+ all_opt["region_name"] = {
+ "getopt" : "",
+ "longopt" : "region-name",
+ "help" : "--region-name=[region] Region Name",
+ "required" : "0",
+ "shortdesc" : "Region Name",
+ "default" : "",
+ "order": 1,
+ }
+ all_opt["insecure"] = {
+ "getopt" : "",
+ "longopt" : "insecure",
+ "help" : "--insecure Explicitly allow agent to perform \"insecure\" TLS (https) requests",
+ "required" : "0",
+ "shortdesc" : "Allow Insecure TLS Requests",
+ "default" : "False",
+ "order": 2,
+ }
+ all_opt["compute-domain"] = {
+ "getopt" : "d:",
+ "longopt" : "domain",
+ "help" : "-d, --domain=[string] DNS domain in which hosts live, useful when the cluster uses short names and nova uses FQDN",
+ "required" : "0",
+ "shortdesc" : "DNS domain in which hosts live",
+ "order": 5,
+ }
+ all_opt["instance_filtering"] = {
+ "getopt" : "",
+ "longopt" : "instance-filtering",
+ "help" : "--instance-filtering Allow instances created from images and flavors with evacuable=true to be evacuated (or all if no images/flavors have been tagged)",
+ "required" : "0",
+ "shortdesc" : "Allow instances to be evacuated",
+ "default" : "True",
+ "order": 5,
+ }
+ all_opt["no_shared_storage"] = {
+ "getopt" : "",
+ "longopt" : "no-shared-storage",
+ "help" : "--no-shared-storage Disable functionality for shared storage",
+ "required" : "0",
+ "shortdesc" : "Disable functionality for dealing with shared storage",
+ "default" : "False",
+ "order": 5,
+ }
+
+def main():
+ atexit.register(atexit_handler)
+
+ device_opt = ["login", "passwd", "tenant_name", "auth_url",
+ "no_login", "no_password", "port", "compute-domain", "project-domain",
+ "user-domain", "no_shared_storage", "endpoint_type",
+ "instance_filtering", "insecure", "region_name"]
+ define_new_opts()
+ all_opt["shell_timeout"]["default"] = "180"
+
+ options = check_input(device_opt, process_input(device_opt))
+
+ docs = {}
+ docs["shortdesc"] = "Fence agent for the automatic resurrection of OpenStack compute instances"
+ docs["longdesc"] = "Used to reschedule flagged instances"
+ docs["vendorurl"] = ""
+
+ show_docs(options, docs)
+
+ run_delay(options)
+
+ connection = create_nova_connection(options)
+
+ # Un-evacuating a server doesn't make sense
+ if options["--action"] in ["on"]:
+ logging.error("Action %s is not supported by this agent" % (options["--action"]))
+ sys.exit(1)
+
+ if options["--action"] in ["off", "reboot"]:
+ status = get_power_status(connection, options)
+ if status != "off":
+ logging.error("Cannot resurrect instances from %s in state '%s'" % (options["--plug"], status))
+ sys.exit(1)
+
+ elif not _host_evacuate(connection, options):
+ logging.error("Resurrection of instances from %s failed" % (options["--plug"]))
+ sys.exit(1)
+
+ logging.info("Resurrection of instances from %s complete" % (options["--plug"]))
+ sys.exit(0)
+
+ result = fence_action(connection, options, set_power_status, get_power_status, get_plugs_list, None)
+ sys.exit(result)
+
+if __name__ == "__main__":
+ main()
diff --git a/fence/agents/gce/fence_gce.py b/fence/agents/gce/fence_gce.py
new file mode 100644
index 0000000..fcb792d
--- /dev/null
+++ b/fence/agents/gce/fence_gce.py
@@ -0,0 +1,110 @@
+#!@PYTHON@ -tt
+
+import atexit
+import sys
+sys.path.append("@FENCEAGENTSLIBDIR@")
+from googleapiclient import discovery
+from oauth2client.client import GoogleCredentials
+
+from fencing import *
+from fencing import fail, fail_usage, EC_TIMED_OUT, run_delay
+
+
+def get_nodes_list(conn, options):
+ result = {}
+ try:
+ instanceList = conn.instances().list(project=options["--project"], zone=options["--zone"]).execute()
+ for instance in instanceList["items"]:
+ status = "unknown"
+ if instance["status"] == "RUNNING":
+ status = "on"
+ elif instance["status"] == "TERMINATED":
+ status = "off"
+ result[instance["id"]] = (instance["name"], status)
+ # TODO: check which Exceptions it can throw
+ except:
+ fail_usage("Failed: Unable to connect to GCE. Check your configuration.")
+
+ return result
+
+def get_power_status(conn, options):
+ try:
+ instance = conn.instances().get(project=options["--project"], zone=options["--zone"],
+ instance=options["--plug"]).execute()
+ if instance["status"] == "RUNNING":
+ return "on"
+ elif instance["status"] == "TERMINATED":
+ return "off"
+ else:
+ return "unknown"
+ # TODO: check which Exceptions it can throw
+ except:
+ fail_usage("Failed: Unable to connect to GCE. Check your configuration.")
+
+def set_power_status(conn, options):
+ try:
+ if (options["--action"]=="off"):
+ conn.instances().stop(project=options["--project"], zone=options["--zone"],
+ instance=options["--plug"]).execute()
+ elif (options["--action"]=="on"):
+ conn.instances().start(project=options["--project"], zone=options["--zone"],
+ instance=options["--plug"]).execute()
+ # TODO: check which Exceptions it can throw
+ except :
+ fail_usage("Failed: Unable to connect to GCE. Check your configuration.")
+
+def define_new_opts():
+ all_opt["zone"] = {
+ "getopt" : ":",
+ "longopt" : "zone",
+ "help" : "--zone=[name] Zone, e.g. us-central1-b",
+ "shortdesc" : "Zone.",
+ "required" : "0",
+ "order" : 2
+ }
+ all_opt["project"] = {
+ "getopt" : ":",
+ "longopt" : "project",
+ "help" : "--project=[name] Project",
+ "shortdesc" : "Project.",
+ "required" : "0",
+ "order" : 3
+ }
+
+def main():
+ conn = None
+
+ device_opt = ["port", "no_password", "zone", "project"]
+
+ atexit.register(atexit_handler)
+
+ define_new_opts()
+
+ all_opt["power_timeout"]["default"] = "60"
+
+ options = check_input(device_opt, process_input(device_opt))
+
+ docs = {}
+ docs["shortdesc"] = "Fence agent for GCE (Google Cloud Engine)"
+ docs["longdesc"] = "fence_gce is an I/O Fencing agent for GCE (Google Cloud " \
+ "Engine). It uses the googleapiclient library to connect to GCE.\n" \
+ "googleapiclient can be configured with Google SDK CLI or by " \
+ "executing 'gcloud auth application-default login'.\n" \
+ "For instructions see: https://cloud.google.com/compute/docs/tutorials/python-guide"
+ docs["vendorurl"] = "http://cloud.google.com"
+ show_docs(options, docs)
+
+ run_delay(options)
+
+ try:
+ credentials = GoogleCredentials.get_application_default()
+ conn = discovery.build('compute', 'v1', credentials=credentials)
+ except:
+ fail_usage("Failed: Unable to connect to GCE. Check your configuration.")
+
+ # Operate the fencing device
+ result = fence_action(conn, options, set_power_status, get_power_status, get_nodes_list)
+ sys.exit(result)
+
+if __name__ == "__main__":
+ main()
diff --git a/fence/agents/hds_cb/fence_hds_cb.py b/fence/agents/hds_cb/fence_hds_cb.py
index 51cf717..375054c 100755
--- a/fence/agents/hds_cb/fence_hds_cb.py
+++ b/fence/agents/hds_cb/fence_hds_cb.py
@@ -15,12 +15,6 @@ import atexit
sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="New Compute Blade 2000 Agent - test release on steroids"
-REDHAT_COPYRIGHT=""
-BUILD_DATE="November, 2012"
-#END_VERSION_GENERATION
-
RE_STATUS_LINE = r"^([0-9]+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+).*$"
def get_power_status(conn, options):
diff --git a/fence/agents/heuristics_ping/fence_heuristics_ping.py b/fence/agents/heuristics_ping/fence_heuristics_ping.py
new file mode 100644
index 0000000..e5acc96
--- /dev/null
+++ b/fence/agents/heuristics_ping/fence_heuristics_ping.py
@@ -0,0 +1,198 @@
+#!@PYTHON@ -tt
+
+# The Following Agent Has Been Tested On:
+#
+# RHEL 7.4
+#
+
+import io
+import re
+import subprocess
+import shlex
+import sys, stat
+import logging
+import os
+import atexit
+sys.path.append("@FENCEAGENTSLIBDIR@")
+from fencing import fail_usage, run_command, fence_action, all_opt
+from fencing import atexit_handler, check_input, process_input, show_docs
+from fencing import run_delay
+
+def ping_test(con, options):
+ # Send pings to the targets
+
+ if options["--action"] == "on":
+ # we want unfencing to always succeed
+ return True
+
+ if not "--ping-targets" in options or options["--ping-targets"] == "":
+ # "off" was requested so fake "on" to provoke failure
+ logging.error("ping target required")
+ return False
+
+ timeout = int(options["--ping-timeout"])
+ count = int(options["--ping-count"])
+ interval = int(options["--ping-interval"])
+ good_required = int(options["--ping-good-count"])
+ maxfail = int(options["--ping-maxfail"])
+ targets = options["--ping-targets"].split(",")
+ exitcode = True
+ p = {}
+ failcount = 0
+ # search string for parsing the results of the ping-executable
+ packet_count = re.compile(r".*transmitted, ([0-9]*) received.*")
+
+ # start a ping-process per target
+ for target in targets:
+ ping_path = '@PING_CMD@'
+ target_mangled = target
+ if target.startswith('inet6:'):
+ if '@PING6_CMD@' == '':
+ p[target] = None
+ continue
+ ping_path = '@PING6_CMD@'
+ target_mangled = target.split(':',2)[1]
+ elif target.startswith('inet:'):
+ ping_path = '@PING4_CMD@'
+ target_mangled = target.split(':',2)[1]
+
+ ping_cmd = "%s -n -q -W %d -c %d -i %d %s" % (
+ ping_path, timeout, count, interval, target_mangled)
+ logging.info("Running command: %s", ping_cmd)
+ try:
+ p[target] = subprocess.Popen(shlex.split(ping_cmd),
+ stdout=subprocess.PIPE);
+ except OSError:
+ p[target] = None
+
+ # collect the results of the ping-processes
+ for target in targets:
+ good = 0
+ if p[target] != None:
+ p[target].wait()
+ if p[target].returncode == 0:
+ for line in p[target].stdout:
+ searchres = packet_count.search(line)
+ if searchres:
+ good = int(searchres.group(1))
+ break
+ if good >= good_required:
+ logging.info("ping target %s received %d of %d" \
+ % (target, good, count))
+ continue
+ failcount += 1
+ logging.info("ping target %s received %d of %d and thus failed"
+ % (target, good, count))
+ else:
+ failcount += 1
+ logging.error("ping target %s failed on OS level" % target)
+
+ if failcount > maxfail:
+ exitcode = False
+
+ return exitcode
+
+
+def define_new_opts():
+ all_opt["ping_count"] = {
+ "getopt" : ":",
+ "longopt" : "ping-count",
+ "required" : "0",
+ "help" : "--ping-count=[number] Number of ping-probes to send",
+ "shortdesc" : "The number of ping-probes that is being sent per target",
+ "default" : "10",
+ "order" : 1
+ }
+
+ all_opt["ping_good_count"] = {
+ "getopt" : ":",
+ "longopt" : "ping-good-count",
+ "required" : "0",
+ "help" : "--ping-good-count=[number] Number of positive ping-probes required",
+ "shortdesc" : "The number of positive ping-probes required to account a target as available",
+ "default" : "8",
+ "order" : 1
+ }
+
+ all_opt["ping_interval"] = {
+ "getopt" : ":",
+ "longopt" : "ping-interval",
+ "required" : "0",
+ "help" : "--ping-interval=[seconds] Seconds between ping-probes",
+ "shortdesc" : "The interval in seconds between ping-probes",
+ "default" : "1",
+ "order" : 1
+ }
+
+ all_opt["ping_timeout"] = {
+ "getopt" : ":",
+ "longopt" : "ping-timeout",
+ "required" : "0",
+ "help" : "--ping-timeout=[seconds] Timeout for individual ping-probes",
+ "shortdesc" : "The timeout in seconds till an individual ping-probe is accounted as lost",
+ "default" : "2",
+ "order" : 1
+ }
+
+ all_opt["ping_maxfail"] = {
+ "getopt" : ":",
+ "longopt" : "ping-maxfail",
+ "required" : "0",
+ "help" : "--ping-maxfail=[number] Number of failed ping-targets allowed",
+ "shortdesc" : "The number of failed ping-targets to still account as overall success",
+ "default" : "0",
+ "order" : 1
+ }
+
+ all_opt["ping_targets"] = {
+ "getopt" : ":",
+ "longopt" : "ping-targets",
+ "required" : "1",
+ "help" : "--ping-targets=tgt1,[inet6:]tgt2 Comma separated list of ping-targets",
+ "shortdesc" : "A comma separated list of ping-targets (optionally prepended by 'inet:' or 'inet6:') to be probed",
+ "default" : "",
+ "order" : 1
+ }
+
+
+def main():
+ device_opt = ["no_status", "no_password", "ping_count", "ping_good_count",
+ "ping_interval", "ping_timeout", "ping_maxfail", "ping_targets", "method"]
+ define_new_opts()
+ atexit.register(atexit_handler)
+
+ all_opt["method"]["default"] = "cycle"
+ all_opt["method"]["help"] = "-m, --method=[method] Method to fence (cycle|onoff) (Default: cycle)"
+
+ options = check_input(device_opt, process_input(device_opt))
+
+ docs = {}
+ docs["shortdesc"] = "Fence agent for ping-heuristic based fencing"
+ docs["longdesc"] = "fence_heuristics_ping uses ping-heuristics to control execution of another fence agent on the same fencing level.\
+\n.P\n\
+This is not a fence agent by itself! \
+Its only purpose is to enable/disable another fence agent that lives on the same fencing level but after fence_heuristics_ping."
+ docs["vendorurl"] = ""
+ show_docs(options, docs)
+
+ # move ping-test to the end of the time-window set via --delay
+ # as to give the network time to settle after the incident that has
+ # caused fencing and have the results as current as possible
+ max_pingcheck = (int(options["--ping-count"]) - 1) * \
+ int(options["--ping-interval"]) + int(options["--ping-timeout"])
+ run_delay(options, reserve=max_pingcheck)
+
+ result = fence_action(\
+ None, \
+ options, \
+ None, \
+ None, \
+ reboot_cycle_fn = ping_test,
+ sync_set_power_fn = ping_test)
+
+ # execute the remaining delay
+ run_delay(options, result=result)
+ sys.exit(result)
+
+if __name__ == "__main__":
+ main()
diff --git a/fence/agents/hpblade/fence_hpblade.py b/fence/agents/hpblade/fence_hpblade.py
index a9e712c..b2cc94a 100644
--- a/fence/agents/hpblade/fence_hpblade.py
+++ b/fence/agents/hpblade/fence_hpblade.py
@@ -14,12 +14,6 @@ sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
from fencing import fail, EC_STATUS
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="4.0.11-HP"
-BUILD_DATE="(built Mon Mar 30 08:31:24 EDT 2015)"
-REDHAT_COPYRIGHT="Copyright (C) Red Hat, Inc. 2004-2010 All rights reserved."
-#END_VERSION_GENERATION
-
def get_enclosure_type(conn, options):
conn.send_eol("show enclosure info")
conn.log_expect(options, options["--command-prompt"], int(options["--shell-timeout"]))
diff --git a/fence/agents/ibmblade/fence_ibmblade.py b/fence/agents/ibmblade/fence_ibmblade.py
index 11ba169..d623fff 100644
--- a/fence/agents/ibmblade/fence_ibmblade.py
+++ b/fence/agents/ibmblade/fence_ibmblade.py
@@ -6,12 +6,6 @@ sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
from fencing_snmp import FencingSnmp
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="IBM Blade SNMP fence agent"
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
### CONSTANTS ###
# From fence_ibmblade.pl
STATUSES_OID = ".1.3.6.1.4.1.2.3.51.2.22.1.5.1.1.4" # remoteControlBladePowerState
diff --git a/fence/agents/ifmib/README b/fence/agents/ifmib/README
new file mode 100644
index 0000000..6fe8a2b
--- /dev/null
+++ b/fence/agents/ifmib/README
@@ -0,0 +1,45 @@
+Intro:
+------
+This is an SNMP-based fencing agent for RHCS. It was designed with the use-case
+of disabling ethernet ports on an iSCSI SAN, but could be used to disable any
+port on any SNMP v1/2c/3 device that implementes the IF-MIB.
+
+The script requires NetSNMP to be installed and working on all nodes
+in the cluster. There are no requirements for any MIBs to be setup --- all of
+the required OIDs are hard-coded into the script. Since the IF-MIB is an IETF
+standard, these identifiers are very widely supported and will not change.
+
+
+Typical usage:
+--------------
+To use this agent with the switch used on the iSCSI network, you'll need:
+ 1) A managed switch running SNMP.
+ 2) An SNMP community with write privileges.
+ 3) Permission to send SNMP through any ACLs or firewalls from the nodes.
+ 4) The ifIndex or ifPort associated with the ports being used by the cluster nodes.
+
+Consider a three-node cluster composed of A, B, and C. Each node has two
+network interfaces - one used for network and cluster communication, the second
+used for iSCSI traffic. If A needs to be fenced, B and C will run this script
+to administratively disable the switchport for A's connection to the iSCSI
+storage.
+
+If you are using a single interface for cluster and iSCSI traffic, this will
+still work, but you will lose network connectivity to the fenced host.
+
+
+cluster.conf:
+-------------
+There is no GUI support for this fence agent at this time. To use it, you will
+need something like this cluster.conf
+
+<fencedevice agent="fence_ifmib" name="myswitch" comm="fencing" ipaddr="sw1"/>
+
+In a node's fencing methods, you'll include a line like this:
+
+<device name="myswitch" port="43" option="off"/>
+
+This node will be fenced by disabling the port with ifIndex 43 on the host sw1.
+In SNMP speak, we set IF-MIB::ifAdminStatus.43 = down(2).
+
+If you will use port name (like fc1/1), script will try to find ifIndex.
diff --git a/fence/agents/ifmib/fence_ifmib.py b/fence/agents/ifmib/fence_ifmib.py
index 963d3e9..d119134 100644
--- a/fence/agents/ifmib/fence_ifmib.py
+++ b/fence/agents/ifmib/fence_ifmib.py
@@ -15,12 +15,6 @@ from fencing import *
from fencing import fail_usage, array_to_dict
from fencing_snmp import FencingSnmp
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="IF:MIB SNMP fence agent"
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
### CONSTANTS ###
# IF-MIB trees for alias, status and port
ALIASES_OID = ".1.3.6.1.2.1.31.1.1.1.18"
diff --git a/fence/agents/ilo/fence_ilo.py b/fence/agents/ilo/fence_ilo.py
index 36e2ba1..6124505 100644
--- a/fence/agents/ilo/fence_ilo.py
+++ b/fence/agents/ilo/fence_ilo.py
@@ -18,12 +18,6 @@ sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
from fencing import fail, EC_LOGIN_DENIED
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="New ILO Agent - test release on steroids"
-REDHAT_COPYRIGHT=""
-BUILD_DATE="March, 2008"
-#END_VERSION_GENERATION
-
def get_power_status(conn, options):
conn.send("<LOGIN USER_LOGIN = " + quoteattr(options["--username"]) + \
" PASSWORD = " + quoteattr(options["--password"]) + ">\r\n")
diff --git a/fence/agents/ilo_moonshot/fence_ilo_moonshot.py b/fence/agents/ilo_moonshot/fence_ilo_moonshot.py
index c534947..a066a9c 100644
--- a/fence/agents/ilo_moonshot/fence_ilo_moonshot.py
+++ b/fence/agents/ilo_moonshot/fence_ilo_moonshot.py
@@ -6,12 +6,6 @@ sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
from fencing import fail, EC_STATUS
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION=""
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
def get_power_status(conn, options):
conn.send_eol("show node list")
conn.log_expect(options["--command-prompt"], int(options["--shell-timeout"]))
diff --git a/fence/agents/ilo_mp/fence_ilo_mp.py b/fence/agents/ilo_mp/fence_ilo_mp.py
index f878c5c..1ae4d3e 100644
--- a/fence/agents/ilo_mp/fence_ilo_mp.py
+++ b/fence/agents/ilo_mp/fence_ilo_mp.py
@@ -5,12 +5,6 @@ import atexit
sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION=""
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
def get_power_status(conn, options):
conn.send_eol("show /system1")
diff --git a/fence/agents/ilo_ssh/fence_ilo_ssh.py b/fence/agents/ilo_ssh/fence_ilo_ssh.py
index fb2d9f3..f2c1f98 100644
--- a/fence/agents/ilo_ssh/fence_ilo_ssh.py
+++ b/fence/agents/ilo_ssh/fence_ilo_ssh.py
@@ -2,15 +2,10 @@
import sys, re
import atexit
+import logging
sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION=""
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
def get_power_status(conn, options):
conn.send_eol("show /system1")
@@ -35,9 +30,13 @@ def set_power_status(conn, options):
return
def reboot_cycle(conn, options):
- conn.send_eol("reset hard /system1")
+ conn.send_eol("reset /system1 hard")
conn.log_expect(options["--command-prompt"], int(options["--power-timeout"]))
- return
+
+ if get_power_status(conn, options) == "off":
+ logging.error("Timed out waiting to power ON\n")
+
+ return True
def main():
device_opt = ["ipaddr", "login", "passwd", "secure", "cmd_prompt", "method", "telnet"]
diff --git a/fence/agents/intelmodular/fence_intelmodular.py b/fence/agents/intelmodular/fence_intelmodular.py
index 4e1301c..294ea4d 100644
--- a/fence/agents/intelmodular/fence_intelmodular.py
+++ b/fence/agents/intelmodular/fence_intelmodular.py
@@ -17,12 +17,6 @@ sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
from fencing_snmp import FencingSnmp
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="Intel Modular SNMP fence agent"
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
### CONSTANTS ###
# From INTELCORPORATION-MULTI-FLEX-SERVER-BLADES-MIB.my that ships with
# firmware updates
diff --git a/fence/agents/ipdu/fence_ipdu.py b/fence/agents/ipdu/fence_ipdu.py
index 7e64859..da34d2b 100644
--- a/fence/agents/ipdu/fence_ipdu.py
+++ b/fence/agents/ipdu/fence_ipdu.py
@@ -13,12 +13,6 @@ from fencing import *
from fencing import fail_usage
from fencing_snmp import FencingSnmp
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="IBM iPDU SNMP fence agent"
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
### CONSTANTS ###
# oid defining fence device
OID_SYS_OBJECT_ID = '.1.3.6.1.2.1.1.2.0'
diff --git a/fence/agents/ipmilan/fence_ipmilan.py b/fence/agents/ipmilan/fence_ipmilan.py
index de271d5..453d736 100644
--- a/fence/agents/ipmilan/fence_ipmilan.py
+++ b/fence/agents/ipmilan/fence_ipmilan.py
@@ -7,12 +7,6 @@ sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
from fencing import fail_usage, is_executable, run_command, run_delay
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION=""
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
def get_power_status(_, options):
output = _run_command(options, "status")
match = re.search('[Cc]hassis [Pp]ower is [\\s]*([a-zA-Z]{2,3})', str(output))
@@ -56,9 +50,18 @@ def create_command(options, action):
Cmd.append(" -I lanplus")
else:
Cmd.append(" -I lan")
+
# --ip / -a
Cmd.append(" -H " + options["--ip"])
+ # --port / -n
+ if "--ipport" in options:
+ Cmd.append(" -p " + options["--ipport"])
+
+ # --target
+ if "--target" in options:
+ Cmd.append(" -t " + options["--target"])
+
# --username / -l
if "--username" in options and len(options["--username"]) != 0:
Cmd.append(" -U " + quote(options["--username"]))
@@ -77,13 +80,12 @@ def create_command(options, action):
if "--cipher" in options:
Cmd.append(" -C " + options["--cipher"])
- # --port / -n
- if "--ipport" in options:
- Cmd.append(" -p " + options["--ipport"])
-
if "--privlvl" in options:
Cmd.append(" -L " + options["--privlvl"])
+ if "--hexadecimal-kg" in options:
+ Cmd.append(" -y " + options["--hexadecimal-kg"])
+
# --action / -o
Cmd.append(" chassis power " + action)
@@ -136,18 +138,34 @@ def define_new_opts():
"default" : "@IPMITOOL_PATH@",
"order": 200
}
+ all_opt["target"] = {
+ "getopt" : ":",
+ "longopt" : "target",
+ "help" : "--target=[targetaddress] Bridge IPMI requests to the remote target address",
+ "required" : "0",
+ "shortdesc" : "Bridge IPMI requests to the remote target address",
+ "order": 1
+ }
+ all_opt["hexadecimal_kg"] = {
+ "getopt" : ":",
+ "longopt" : "hexadecimal-kg",
+ "help" : "--hexadecimal-kg=[key] Hexadecimal-encoded Kg key for IPMIv2 authentication",
+ "required" : "0",
+ "shortdesc" : "Hexadecimal-encoded Kg key for IPMIv2 authentication",
+ "order": 1
+ }
def main():
atexit.register(atexit_handler)
- device_opt = ["ipaddr", "login", "no_login", "no_password", "passwd", "diag",
- "lanplus", "auth", "cipher", "privlvl", "sudo", "ipmitool_path", "method"]
+ device_opt = ["ipaddr", "login", "no_login", "no_password", "passwd",
+ "diag", "lanplus", "auth", "cipher", "privlvl", "sudo",
+ "ipmitool_path", "method", "target", "hexadecimal_kg"]
define_new_opts()
all_opt["power_wait"]["default"] = 2
if os.path.basename(sys.argv[0]) == "fence_ilo3":
all_opt["power_wait"]["default"] = "4"
- all_opt["method"]["default"] = "cycle"
all_opt["lanplus"]["default"] = "1"
elif os.path.basename(sys.argv[0]) == "fence_ilo4":
all_opt["lanplus"]["default"] = "1"
diff --git a/fence/agents/ironic/fence_ironic.py b/fence/agents/ironic/fence_ironic.py
index 8e5d5b0..66d84fc 100644
--- a/fence/agents/ironic/fence_ironic.py
+++ b/fence/agents/ironic/fence_ironic.py
@@ -10,12 +10,6 @@ sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
from fencing import fail_usage, is_executable, run_command, run_delay
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION=""
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
def get_name_or_uuid(options):
return options["--uuid"] if "--uuid" in options else options["--plug"]
diff --git a/fence/agents/kdump/fence_kdump.8 b/fence/agents/kdump/fence_kdump.8
deleted file mode 100644
index 7161e09..0000000
--- a/fence/agents/kdump/fence_kdump.8
+++ /dev/null
@@ -1,130 +0,0 @@
-
-.TH FENCE_AGENT 8 2009-10-20 "fence_kdump (Fence Agent)"
-.SH NAME
-fence_kdump - fencing agent for use with kdump crash recovery service
-.SH DESCRIPTION
-.P
-\fIfence_kdump\fP is an I/O fencing agent to be used with the kdump
-crash recovery service. When the \fIfence_kdump\fP agent is invoked,
-it will listen for a message from the failed node that acknowledges
-that the failed node it executing the kdump crash kernel.
-Note that \fIfence_kdump\fP is not a replacement for traditional
-fencing methods. The \fIfence_kdump\fP agent can only detect that a
-node has entered the kdump crash recovery service. This allows the
-kdump crash recovery service complete without being preempted by
-traditional power fencing methods.
-
-Note: the "off" action listen for message from failed node that
-acknowledges node has entered kdump crash recovery service. If a valid
-message is received from the failed node, the node is considered to be
-fenced and the agent returns success. Failure to receive a valid
-message from the failed node in the given timeout period results in
-fencing failure.
-.P
-fence_kdump accepts options on the command line as well
-as from stdin. Fenced sends parameters through stdin when it execs the
-agent. fence_kdump can be run by itself with command
-line options. This is useful for testing and for turning outlets on or off
-from scripts.
-
-Vendor URL: http://www.kernel.org/pub/linux/utils/kernel/kexec/
-.SH PARAMETERS
-
-
-.TP
-.B -n, --nodename=\fINODE\fP
-.
-Name or IP address of node to be fenced. This option is required for the "off" action.
-
-.TP
-.B -p, --ipport=\fIPORT\fP
-.
-IP port number that the \fIfence_kdump\fP agent will use to listen for messages. (Default Value: 7410)
-
-.TP
-.B -f, --family=\fIFAMILY\fP
-.
-IP network family. Force the \fIfence_kdump\fP agent to use a specific family. The value for \fIFAMILY\fP can be "auto", "ipv4", or "ipv6". (Default Value: auto)
-
-.TP
-.B -o, --action=\fIACTION\fP
-.
-Fencing action to perform. The value for \fIACTION\fP can be either "off" or "metadata". (Default Value: off)
-
-.TP
-.B -t, --timeout=\fITIMEOUT\fP
-.
-Number of seconds to wait for message from failed node. If no message is received within \fITIMEOUT\fP seconds, the \fIfence_kdump\fP agent returns failure. (Default Value: 60)
-
-.TP
-.B -v, --verbose
-.
-Print verbose output
-
-.TP
-.B -V, --version
-.
-Print version
-
-.TP
-.B -h, --help
-.
-Print usage
-
-.SH ACTIONS
-
-
-.TP
-\fBoff \fP
-Power off machine.
-
-.TP
-\fBmonitor \fP
-Check the health of fence device
-
-.TP
-\fBmetadata \fP
-Display the XML metadata describing this resource.
-
-.SH STDIN PARAMETERS
-
-
-.TP
-.B nodename
-.
-Name or IP address of node to be fenced. This option is required for the "off" action.
-
-.TP
-.B ipport
-.
-IP port number that the \fIfence_kdump\fP agent will use to listen for messages. (Default Value: 7410)
-
-.TP
-.B family
-.
-IP network family. Force the \fIfence_kdump\fP agent to use a specific family. The value for \fIFAMILY\fP can be "auto", "ipv4", or "ipv6". (Default Value: auto)
-
-.TP
-.B action
-.
-Fencing action to perform. The value for \fIACTION\fP can be either "off" or "metadata". (Default Value: off)
-
-.TP
-.B timeout
-.
-Number of seconds to wait for message from failed node. If no message is received within \fITIMEOUT\fP seconds, the \fIfence_kdump\fP agent returns failure. (Default Value: 60)
-
-.TP
-.B verbose
-.
-Print verbose output
-
-.TP
-.B version
-.
-Print version
-
-.TP
-.B usage
-.
-Print usage
diff --git a/fence/agents/ldom/fence_ldom.py b/fence/agents/ldom/fence_ldom.py
index b4d8724..0cb3320 100644
--- a/fence/agents/ldom/fence_ldom.py
+++ b/fence/agents/ldom/fence_ldom.py
@@ -13,12 +13,6 @@ sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
from fencing import fail_usage
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="Logical Domains (LDoms) fence Agent"
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
COMMAND_PROMPT_REG = r"\[PEXPECT\]$"
COMMAND_PROMPT_NEW = "[PEXPECT]"
diff --git a/fence/agents/lib/Makefile.in b/fence/agents/lib/Makefile.in
deleted file mode 100644
index 3f8f431..0000000
--- a/fence/agents/lib/Makefile.in
+++ /dev/null
@@ -1,650 +0,0 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = { \
- if test -z '$(MAKELEVEL)'; then \
- false; \
- elif test -n '$(MAKE_HOST)'; then \
- true; \
- elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
- true; \
- else \
- false; \
- fi; \
-}
-am__make_running_with_option = \
- 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 \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- 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; \
- 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@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
- at BUILD_XENAPILIB_TRUE@am__append_1 = XenAPI.py
-subdir = fence/agents/lib
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ac_python_module.m4 \
- $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
- $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
- $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/make/clusterautoconfig.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_ at AM_V@)
-am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-SOURCES =
-DIST_SOURCES =
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
- test -z "$$files" \
- || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
- || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- $(am__cd) "$$dir" && rm -f $$files; }; \
- }
-am__installdirs = "$(DESTDIR)$(fencelibdir)" "$(DESTDIR)$(rngdir)"
-DATA = $(fencelib_DATA) $(rng_DATA)
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-am__DIST_COMMON = $(srcdir)/Makefile.in \
- $(top_srcdir)/make/fencebuild.mk
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AGENTS_LIST = @AGENTS_LIST@
-AMTAR = @AMTAR@
-AMTTOOL_PATH = @AMTTOOL_PATH@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CLUSTERDATA = @CLUSTERDATA@
-CLUSTERVARRUN = @CLUSTERVARRUN@
-COROSYNC_CMAPCTL_PATH = @COROSYNC_CMAPCTL_PATH@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFAULT_CONFIG_DIR = @DEFAULT_CONFIG_DIR@
-DEFAULT_CONFIG_FILE = @DEFAULT_CONFIG_FILE@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FENCEAGENTSLIBDIR = @FENCEAGENTSLIBDIR@
-FGREP = @FGREP@
-GNUTLSCLI_PATH = @GNUTLSCLI_PATH@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-IPMITOOL_PATH = @IPMITOOL_PATH@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LOGDIR = @LOGDIR@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-MPATH_PATH = @MPATH_PATH@
-NM = @NM@
-NMEDIT = @NMEDIT@
-NOVA_PATH = @NOVA_PATH@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OPENSTACK_PATH = @OPENSTACK_PATH@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-POWERMAN_PATH = @POWERMAN_PATH@
-PYTHON = @PYTHON@
-PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
-PYTHON_PLATFORM = @PYTHON_PLATFORM@
-PYTHON_PREFIX = @PYTHON_PREFIX@
-PYTHON_VERSION = @PYTHON_VERSION@
-RANLIB = @RANLIB@
-SBD_PATH = @SBD_PATH@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SG_PERSIST_PATH = @SG_PERSIST_PATH@
-SG_TURS_PATH = @SG_TURS_PATH@
-SHELL = @SHELL@
-SNMPBIN = @SNMPBIN@
-SNMPGET_PATH = @SNMPGET_PATH@
-SNMPSET_PATH = @SNMPSET_PATH@
-SNMPWALK_PATH = @SNMPWALK_PATH@
-SSH_PATH = @SSH_PATH@
-STRIP = @STRIP@
-SUDO_PATH = @SUDO_PATH@
-TELNET_PATH = @TELNET_PATH@
-VERSION = @VERSION@
-VGS_PATH = @VGS_PATH@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-pkgpyexecdir = @pkgpyexecdir@
-pkgpythondir = @pkgpythondir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-pyexecdir = @pyexecdir@
-pythondir = @pythondir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-MAINTAINERCLEANFILES = Makefile.in
-TARGET = fencing.py fencing_snmp.py $(am__append_1)
-SRC = fencing.py.py fencing_snmp.py.py XenAPI.py.py check_used_options.py
-XSL = fence2man.xsl fence2rng.xsl fence2wiki.xsl
-FASRNG = fence.rng.head fence.rng.tail metadata.rng
-EXTRA_DIST = $(SRC) $(XSL) $(FASRNG)
-fencelibdir = ${FENCEAGENTSLIBDIR}
-fencelib_DATA = $(TARGET)
-rngdir = ${CLUSTERDATA}/relaxng
-rng_DATA = $(XSL) $(FASRNG)
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/make/fencebuild.mk $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fence/agents/lib/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu fence/agents/lib/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-$(top_srcdir)/make/fencebuild.mk $(am__empty):
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-install-fencelibDATA: $(fencelib_DATA)
- @$(NORMAL_INSTALL)
- @list='$(fencelib_DATA)'; test -n "$(fencelibdir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(fencelibdir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(fencelibdir)" || exit 1; \
- fi; \
- for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; \
- done | $(am__base_list) | \
- while read files; do \
- echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(fencelibdir)'"; \
- $(INSTALL_DATA) $$files "$(DESTDIR)$(fencelibdir)" || exit $$?; \
- done
-
-uninstall-fencelibDATA:
- @$(NORMAL_UNINSTALL)
- @list='$(fencelib_DATA)'; test -n "$(fencelibdir)" || list=; \
- files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- dir='$(DESTDIR)$(fencelibdir)'; $(am__uninstall_files_from_dir)
-install-rngDATA: $(rng_DATA)
- @$(NORMAL_INSTALL)
- @list='$(rng_DATA)'; test -n "$(rngdir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(rngdir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(rngdir)" || exit 1; \
- fi; \
- for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; \
- done | $(am__base_list) | \
- while read files; do \
- echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(rngdir)'"; \
- $(INSTALL_DATA) $$files "$(DESTDIR)$(rngdir)" || exit $$?; \
- done
-
-uninstall-rngDATA:
- @$(NORMAL_UNINSTALL)
- @list='$(rng_DATA)'; test -n "$(rngdir)" || list=; \
- files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- dir='$(DESTDIR)$(rngdir)'; $(am__uninstall_files_from_dir)
-tags TAGS:
-
-ctags CTAGS:
-
-cscope cscopelist:
-
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(DATA)
-installdirs:
- for dir in "$(DESTDIR)$(fencelibdir)" "$(DESTDIR)$(rngdir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
- -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
-clean-am: clean-generic clean-libtool clean-local mostlyclean-am
-
-distclean: distclean-am
- -rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-fencelibDATA install-rngDATA
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
- @$(NORMAL_INSTALL)
- $(MAKE) $(AM_MAKEFLAGS) install-exec-hook
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-fencelibDATA uninstall-rngDATA
- @$(NORMAL_INSTALL)
- $(MAKE) $(AM_MAKEFLAGS) uninstall-hook
-.MAKE: install-am install-exec-am install-strip uninstall-am
-
-.PHONY: all all-am check check-am clean clean-generic clean-libtool \
- clean-local cscopelist-am ctags-am distclean distclean-generic \
- distclean-libtool distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-exec-hook \
- install-fencelibDATA install-html install-html-am install-info \
- install-info-am install-man install-pdf install-pdf-am \
- install-ps install-ps-am install-rngDATA install-strip \
- installcheck installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
- uninstall-am uninstall-fencelibDATA uninstall-hook \
- uninstall-rngDATA
-
-.PRECIOUS: Makefile
-
-define gen_agent_from_py
- mkdir -p `dirname $@`
- bash $(top_srcdir)/scripts/fenceparse \
- $(top_srcdir)/make/copyright.cf REDHAT_COPYRIGHT \
- $(VERSION) \
- $(abs_srcdir) $@ | \
- sed \
- -e 's#@''PYTHON@#${PYTHON}#g' \
- -e 's#@''FENCEAGENTSLIBDIR@#${FENCEAGENTSLIBDIR}#g' \
- -e 's#@''LOGDIR@#${LOGDIR}#g' \
- -e 's#@''SBINDIR@#${sbindir}#g' \
- -e 's#@''LIBEXECDIR@#${libexecdir}#g' \
- -e 's#@''IPMITOOL_PATH@#${IPMITOOL_PATH}#g' \
- -e 's#@''OPENSTACK_PATH@#${OPENSTACK_PATH}#g' \
- -e 's#@''AMTTOOL_PATH@#${AMTTOOL_PATH}#g' \
- -e 's#@''GNUTLSCLI_PATH@#${GNUTLSCLI_PATH}#g' \
- -e 's#@''COROSYNC_CMAPCTL_PATH@#${COROSYNC_CMAPCTL_PATH}#g' \
- -e 's#@''SG_PERSIST_PATH@#${SG_PERSIST_PATH}#g' \
- -e 's#@''SG_TURS_PATH@#${SG_TURS_PATH}#g' \
- -e 's#@''VGS_PATH@#${VGS_PATH}#g' \
- -e 's#@''SUDO_PATH@#${SUDO_PATH}#g' \
- -e 's#@''SSH_PATH@#${SSH_PATH}#g' \
- -e 's#@''TELNET_PATH@#${TELNET_PATH}#g' \
- -e 's#@''MPATH_PATH@#${MPATH_PATH}#g' \
- -e 's#@''SBD_PATH@#${SBD_PATH}#g' \
- -e 's#@''STORE_PATH@#${CLUSTERVARRUN}#g' \
- -e 's#@''SUDO_PATH@#${SUDO_PATH}#g' \
- -e 's#@''SNMPWALK_PATH@#${SNMPWALK_PATH}#g' \
- -e 's#@''SNMPSET_PATH@#${SNMPSET_PATH}#g' \
- -e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
- -e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
- -e 's#@''POWERMAN_PATH@#${POWERMAN_PATH}#g' \
- > $@
-
- if [ 0 -eq `echo "$(@)" | grep fence_ &> /dev/null; echo $$?` ]; then \
- PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $(top_srcdir)/fence/agents/lib/check_used_options.py $@; \
- else true ; fi
-
- for x in `PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $(@) -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \
- cp -f $(@) $(@D)/$$x; \
- $(MAKE) $(@D)/$$x.8; \
- done
-endef
-
-# dependency, one on one
-$(foreach t,$(TARGET),$(eval $(t) : $(t:=.py)))
-
-# rule
-$(TARGET):
- $(call gen_agent_from_py)
-
-clean: clean-man
- rm -f $(CLEAN_TARGET:%.8=%) $(CLEAN_TARGET_ADDITIONAL) $(scsidata_SCRIPTS) */*.pyc */*.wiki
-
- if [ "$(abs_builddir)" = "$(abs_top_builddir)/fence/agents/lib" ]; then \
- rm -f $(TARGET); \
- fi
-
-clean-local: clean
-
-install-exec-hook: $(TARGET)
- if [ -n "$(man8dir)" ]; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \
- fi
- for p in $(TARGET); do \
- dir=`dirname $$p`; \
- for x in `PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $$p -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"`; do \
- echo " $(INSTALL_SCRIPT) $$dir/$$x '$(DESTDIR)$(sbindir)'"; \
- $(INSTALL_SCRIPT) $$dir/$$x "$(DESTDIR)$(sbindir)" || exit $$?; \
- echo " $(INSTALL_DATA) '$$dir/$$x.8' '$(DESTDIR)$(man8dir)'"; \
- $(INSTALL_DATA) "$$dir/$$x.8" "$(DESTDIR)$(man8dir)" || exit $$?; \
- done; \
- done
-
-uninstall-hook: $(TARGET)
- files=`for p in $(TARGET); do \
- for x in \`PYTHONPATH=$(abs_srcdir)/lib:$(abs_builddir)/lib $(PYTHON) $$p -o metadata | grep symlink | sed -e "s/.*\(fence.*\)\" .*/\1/g"\`; do \
- echo " rm -f '$(DESTDIR)$(sbindir)/$$x'"; \
- rm -f "$(DESTDIR)$(sbindir)/$$x"; \
- echo " rm -f '$(DESTDIR)$(man8dir)/$$x.8'"; \
- rm -f "$(DESTDIR)$(man8dir)/$$x.8"; \
- done; \
- done`
-
-clean-man:
-
-# 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.
-.NOEXPORT:
diff --git a/fence/agents/lib/check_used_options.py b/fence/agents/lib/check_used_options.py
index 6ed3827..e6e62ee 100644
--- a/fence/agents/lib/check_used_options.py
+++ b/fence/agents/lib/check_used_options.py
@@ -24,7 +24,7 @@ def main():
## all_opt defined in fence agent are found
agent_file = open(agent)
opt_re = re.compile(r"\s*all_opt\[\"([^\"]*)\"\] = {")
- opt_longopt_re = re.compile(r"\s*\"longopt\" : \"([^\"]*)\"")
+ opt_longopt_re = re.compile(r"\"longopt\"\s*:\s*\"([^\"]*)\"")
in_opt = False
for line in agent_file:
diff --git a/fence/agents/lib/fence2man.xsl b/fence/agents/lib/fence2man.xsl
index 073de95..3dc0b39 100644
--- a/fence/agents/lib/fence2man.xsl
+++ b/fence/agents/lib/fence2man.xsl
@@ -2,6 +2,7 @@
<xsl:output method="text" indent="no"/>
<xsl:template match="parameter">
<xsl:param name="show" />
+<xsl:if test="not(@deprecated)">
.TP
<xsl:if test="$show = 'getopt'">.B <xsl:value-of select="getopt/@mixed" /></xsl:if>
<xsl:if test="$show = 'stdin'">.B <xsl:value-of select="@name"/></xsl:if>
@@ -19,6 +20,11 @@
</xsl:if>
<xsl:if test="not(content/@default)"><xsl:if test="@required = 1"> This parameter is always required.</xsl:if></xsl:if>
<xsl:if test="content/@default"> (Default Value: <xsl:value-of select="content/@default"/>)</xsl:if>
+<xsl:if test="$show = 'stdin'">
+<xsl:if test="@obsoletes"> Obsoletes: <xsl:value-of select="@obsoletes" /></xsl:if>
+</xsl:if>
+
+</xsl:if>
</xsl:template>
<xsl:template match="action">
diff --git a/fence/agents/lib/fencing.py.py b/fence/agents/lib/fencing.py.py
index e303160..45b2789 100644
--- a/fence/agents/lib/fencing.py.py
+++ b/fence/agents/lib/fencing.py.py
@@ -10,12 +10,7 @@ import socket
import textwrap
import __main__
-## do not add code here.
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION = "New fence lib agent - test release on steroids"
-REDHAT_COPYRIGHT = ""
-BUILD_DATE = "March, 2008"
-#END_VERSION_GENERATION
+RELEASE_VERSION = "@RELEASE_VERSION@"
__all__ = ['atexit_handler', 'check_input', 'process_input', 'all_opt', 'show_docs',
'fence_login', 'fence_action', 'fence_logout']
@@ -33,6 +28,8 @@ EC_STATUS_HMC = 9
EC_PASSWORD_MISSING = 10
EC_INVALID_PRIVILEGES = 11
+LOG_FORMAT = "%(asctime)-15s %(levelname)s: %(message)s"
+
all_opt = {
"help" : {
"getopt" : "h",
@@ -449,7 +446,7 @@ all_opt = {
"quiet": {
"getopt" : "q",
"longopt": "quiet",
- "help" : "-q, --quiet Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.",
+ "help" : "-q, --quiet Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.",
"required" : "0",
"order" : 50}
}
@@ -472,9 +469,11 @@ DEPENDENCY_OPT = {
}
class fspawn(pexpect.spawn):
- def __init__(self, options, command):
+ def __init__(self, options, command, **kwargs):
+ if sys.version_info[0] > 2:
+ kwargs.setdefault('encoding', 'utf-8')
logging.info("Running command: %s", command)
- pexpect.spawn.__init__(self, command)
+ pexpect.spawn.__init__(self, command, **kwargs)
self.opt = options
def log_expect(self, pattern, timeout):
@@ -490,6 +489,15 @@ class fspawn(pexpect.spawn):
def send_eol(self, message):
return self.send(message + self.opt["eol"])
+def frun(command, timeout=30, withexitstatus=False, events=None,
+ extra_args=None, logfile=None, cwd=None, env=None, **kwargs):
+ if sys.version_info[0] > 2:
+ kwargs.setdefault('encoding', 'utf-8')
+ return pexpect.run(command, timeout=timeout,
+ withexitstatus=withexitstatus, events=events,
+ extra_args=extra_args, logfile=logfile, cwd=cwd,
+ env=env, **kwargs)
+
def atexit_handler():
try:
sys.stdout.close()
@@ -551,7 +559,12 @@ def usage(avail_opt):
def metadata(avail_opt, docs):
# avail_opt has to be unique, if there are duplicities then they should be removed
- sorted_list = [(key, all_opt[key]) for key in list(set(avail_opt))]
+ sorted_list = [(key, all_opt[key]) for key in list(set(avail_opt)) if "longopt" in all_opt[key]]
+ # Find keys that are going to replace inconsistent names
+ mapping = dict([(opt["longopt"].replace("-", "_"), key) for (key, opt) in sorted_list if (key != opt["longopt"].replace("-", "_"))])
+ new_options = [(key, all_opt[mapping[key]]) for key in mapping]
+ sorted_list.extend(new_options)
+
sorted_list.sort(key=lambda x: (x[1]["order"], x[0]))
print("<?xml version=\"1.0\" ?>")
@@ -562,34 +575,43 @@ def metadata(avail_opt, docs):
print("<longdesc>" + docs["longdesc"] + "</longdesc>")
print("<vendor-url>" + docs["vendorurl"] + "</vendor-url>")
print("<parameters>")
- for option, _ in sorted_list:
- if "help" in all_opt[option] and len(all_opt[option]["help"]) > 0:
- print("\t<parameter name=\"" + option + "\" unique=\"0\" required=\"" + all_opt[option]["required"] + "\">")
+ for (key, opt) in sorted_list:
+ info = ""
+ if key in all_opt:
+ if key != all_opt[key].get('longopt', key).replace("-", "_"):
+ info = "deprecated=\"1\""
+ else:
+ info = "obsoletes=\"%s\"" % (mapping.get(key))
+
+ if "help" in opt and len(opt["help"]) > 0:
+ if info != "":
+ info = " " + info
+ print("\t<parameter name=\"" + key + "\" unique=\"0\" required=\"" + opt["required"] + "\"" + info + ">")
default = ""
- if "default" in all_opt[option]:
- default = "default=\"" + _encode_html_entities(str(all_opt[option]["default"])) + "\" "
+ if "default" in opt:
+ default = "default=\"" + _encode_html_entities(str(opt["default"])) + "\" "
- mixed = all_opt[option]["help"]
+ mixed = opt["help"]
## split it between option and help text
res = re.compile(r"^(.*?--\S+)\s+", re.IGNORECASE | re.S).search(mixed)
if None != res:
mixed = res.group(1)
mixed = _encode_html_entities(mixed)
- if not "shortdesc" in all_opt[option]:
- shortdesc = re.sub("\s\s+", " ", all_opt[option]["help"][31:])
+ if not "shortdesc" in opt:
+ shortdesc = re.sub("\s\s+", " ", opt["help"][31:])
else:
- shortdesc = all_opt[option]["shortdesc"]
+ shortdesc = opt["shortdesc"]
print("\t\t<getopt mixed=\"" + mixed + "\" />")
- if "choices" in all_opt[option]:
+ if "choices" in opt:
print("\t\t<content type=\"select\" "+default+" >")
- for choice in all_opt[option]["choices"]:
+ for choice in opt["choices"]:
print("\t\t\t<option value=\"%s\" />" % (choice))
print("\t\t</content>")
- elif all_opt[option]["getopt"].count(":") > 0:
- t = all_opt[option].get("type", "string")
+ elif opt["getopt"].count(":") > 0:
+ t = opt.get("type", "string")
print("\t\t<content type=\"%s\" " % (t) +default+" />")
else:
print("\t\t<content type=\"boolean\" "+default+" />")
@@ -657,11 +679,15 @@ def check_input(device_opt, opt, other_conditions = False):
if "--verbose" in options:
logging.getLogger().setLevel(logging.DEBUG)
+ formatter = logging.Formatter(LOG_FORMAT)
+
## add logging to syslog
logging.getLogger().addHandler(SyslogLibHandler())
if "--quiet" not in options:
## add logging to stderr
- logging.getLogger().addHandler(logging.StreamHandler(sys.stderr))
+ stderrHandler = logging.StreamHandler(sys.stderr)
+ stderrHandler.setFormatter(formatter)
+ logging.getLogger().addHandler(stderrHandler)
(acceptable_actions, _) = _get_available_actions(device_opt)
@@ -680,7 +706,8 @@ def check_input(device_opt, opt, other_conditions = False):
if options["--action"] == "validate-all" and not other_conditions:
- _validate_input(options, False)
+ if not _validate_input(options, False):
+ fail_usage("validate-all failed")
sys.exit(EC_OK)
else:
_validate_input(options, True)
@@ -689,6 +716,7 @@ def check_input(device_opt, opt, other_conditions = False):
try:
debug_file = logging.FileHandler(options["--debug-file"])
debug_file.setLevel(logging.DEBUG)
+ debug_file.setFormatter(formatter)
logging.getLogger().addHandler(debug_file)
except IOError:
logging.error("Unable to create file %s", options["--debug-file"])
@@ -724,7 +752,7 @@ def get_multi_power_fn(connection, options, get_power_fn):
return status
-def set_multi_power_fn(connection, options, set_power_fn, get_power_fn, retry_attempts=1):
+def async_set_multi_power_fn(connection, options, set_power_fn, get_power_fn, retry_attempts):
plugs = options["--plugs"] if "--plugs" in options else [""]
for _ in range(retry_attempts):
@@ -747,6 +775,40 @@ def set_multi_power_fn(connection, options, set_power_fn, get_power_fn, retry_at
return True
return False
+def sync_set_multi_power_fn(connection, options, sync_set_power_fn, retry_attempts):
+ success = True
+ plugs = options["--plugs"] if "--plugs" in options else [""]
+
+ for plug in plugs:
+ try:
+ options["--uuid"] = str(uuid.UUID(plug))
+ except ValueError:
+ pass
+ except KeyError:
+ pass
+
+ options["--plug"] = plug
+ for retry in range(retry_attempts):
+ if sync_set_power_fn(connection, options):
+ break
+ if retry == retry_attempts-1:
+ success = False
+ time.sleep(int(options["--power-wait"]))
+
+ return success
+
+
+def set_multi_power_fn(connection, options, set_power_fn, get_power_fn, sync_set_power_fn, retry_attempts=1):
+
+ if set_power_fn != None:
+ if get_power_fn != None:
+ return async_set_multi_power_fn(connection, options, set_power_fn, get_power_fn, retry_attempts)
+ elif sync_set_power_fn != None:
+ return sync_set_multi_power_fn(connection, options, sync_set_power_fn, retry_attempts)
+
+ return False
+
+
def show_docs(options, docs=None):
device_opt = options["device_opt"]
@@ -766,11 +828,10 @@ def show_docs(options, docs=None):
sys.exit(0)
if "--version" in options:
- print(__main__.RELEASE_VERSION, __main__.BUILD_DATE)
- print(__main__.REDHAT_COPYRIGHT)
+ print(RELEASE_VERSION)
sys.exit(0)
-def fence_action(connection, options, set_power_fn, get_power_fn, get_outlet_list=None, reboot_cycle_fn=None):
+def fence_action(connection, options, set_power_fn, get_power_fn, get_outlet_list=None, reboot_cycle_fn=None, sync_set_power_fn=None):
result = 0
try:
@@ -827,12 +888,12 @@ def fence_action(connection, options, set_power_fn, get_power_fn, get_outlet_lis
return 0
if options["--action"] == "on":
- if set_multi_power_fn(connection, options, set_power_fn, get_power_fn, 1 + int(options["--retry-on"])):
+ if set_multi_power_fn(connection, options, set_power_fn, get_power_fn, sync_set_power_fn, 1 + int(options["--retry-on"])):
print("Success: Powered ON")
else:
fail(EC_WAITING_ON)
elif options["--action"] == "off":
- if set_multi_power_fn(connection, options, set_power_fn, get_power_fn):
+ if set_multi_power_fn(connection, options, set_power_fn, get_power_fn, sync_set_power_fn):
print("Success: Powered OFF")
else:
fail(EC_WAITING_OFF)
@@ -850,18 +911,21 @@ def fence_action(connection, options, set_power_fn, get_power_fn, get_outlet_lis
else:
if status != "off":
options["--action"] = "off"
- if not set_multi_power_fn(connection, options, set_power_fn, get_power_fn):
+ if not set_multi_power_fn(connection, options, set_power_fn, get_power_fn, sync_set_power_fn):
fail(EC_WAITING_OFF)
options["--action"] = "on"
try:
- power_on = set_multi_power_fn(connection, options, set_power_fn, get_power_fn, int(options["--retry-on"]))
+ power_on = set_multi_power_fn(connection, options, set_power_fn, get_power_fn, sync_set_power_fn, int(options["--retry-on"]))
except Exception as ex:
# an error occured during power ON phase in reboot
# fence action was completed succesfully even in that case
logging.warning("%s", str(ex))
+ # switch back to original action for the case it is used lateron
+ options["--action"] = "reboot"
+
if power_on == False:
# this should not fail as node was fenced succesfully
logging.error('Timed out waiting to power ON\n')
@@ -949,11 +1013,21 @@ def run_command(options, command, timeout=None, env=None, log_command=None):
return (status, pipe_stdout, pipe_stderr)
-def run_delay(options):
- ## Delay is important for two-node clusters fencing but we do not need to delay 'status' operations
- if options["--action"] in ["off", "reboot"]:
- logging.info("Delay %s second(s) before logging in to the fence device", options["--delay"])
- time.sleep(int(options["--delay"]))
+def run_delay(options, reserve=0, result=0):
+ ## Delay is important for two-node clusters fencing
+ ## but we do not need to delay 'status' operations
+ ## and get us out quickly if we already know that we are gonna fail
+ ## still wanna do something right before fencing? - reserve some time
+ if options["--action"] in ["off", "reboot"] \
+ and options["--delay"] != "0" \
+ and result == 0 \
+ and reserve >= 0:
+ time_left = 1 + int(options["--delay"]) - (time.time() - run_delay.time_start) - reserve
+ if time_left > 0:
+ logging.info("Delay %d second(s) before logging in to the fence device", time_left)
+ time.sleep(time_left)
+# mark time when fence-agent is started
+run_delay.time_start = time.time()
def fence_logout(conn, logout_string, sleep=0):
# Logout is not required part of fencing but we should attempt to do it properly
@@ -1222,7 +1296,7 @@ def _validate_input(options, stop = True):
valid_input = False
fail_usage("Failed: You have to set login name", stop)
- if device_opt.count("ipaddr") and "--ip" not in options and "--managed" not in options:
+ if device_opt.count("ipaddr") and "--ip" not in options and "--managed" not in options and "--target" not in options:
valid_input = False
fail_usage("Failed: You have to enter fence address", stop)
@@ -1297,6 +1371,9 @@ def _prepare_getopt_args(options):
def _parse_input_stdin(avail_opt):
opt = {}
name = ""
+
+ mapping_longopt_names = dict([(all_opt[o].get("longopt"), o) for o in avail_opt])
+
for line in sys.stdin.readlines():
line = line.strip()
if (line.startswith("#")) or (len(line) == 0):
@@ -1305,6 +1382,11 @@ def _parse_input_stdin(avail_opt):
(name, value) = (line + "=").split("=", 1)
value = value[:-1]
+ if name.replace("-", "_") in mapping_longopt_names:
+ name = mapping_longopt_names[name.replace("-", "_")]
+ elif name.replace("_", "-") in mapping_longopt_names:
+ name = mapping_longopt_names[name.replace("_", "-")]
+
if avail_opt.count(name) == 0 and name in ["nodename"]:
continue
elif avail_opt.count(name) == 0:
diff --git a/fence/agents/lib/fencing_snmp.py.py b/fence/agents/lib/fencing_snmp.py.py
index 9aaf52b..f9e5768 100644
--- a/fence/agents/lib/fencing_snmp.py.py
+++ b/fence/agents/lib/fencing_snmp.py.py
@@ -5,17 +5,11 @@
import re, pexpect
import logging
from fencing import *
-from fencing import fail, fail_usage, EC_TIMED_OUT, run_delay
+from fencing import fail, fail_usage, EC_TIMED_OUT, run_delay, frun
__all__ = ['FencingSnmp']
## do not add code here.
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION = ""
-REDHAT_COPYRIGHT = ""
-BUILD_DATE = ""
-#END_VERSION_GENERATION
-
class FencingSnmp:
def __init__(self, options):
self.options = options
@@ -83,14 +77,14 @@ class FencingSnmp:
"--ipport" in self.options and self.quote_for_run(":" + str(self.options["--ipport"])) or "")
return cmd
- def run_command(self, command, additional_timemout=0):
+ def run_command(self, command, additional_timeout=0):
try:
logging.debug("%s\n", command)
- (res_output, res_code) = pexpect.run(command,
+ (res_output, res_code) = frun(command,
int(self.options["--shell-timeout"]) +
int(self.options["--login-timeout"]) +
- additional_timemout, True)
+ additional_timeout, True)
if res_code == None:
fail(EC_TIMED_OUT)
@@ -104,14 +98,14 @@ class FencingSnmp:
return res_output
- def get(self, oid, additional_timemout=0):
+ def get(self, oid, additional_timeout=0):
cmd = "%s '%s'"% (self.prepare_cmd(self.options["--snmpget-path"]), self.quote_for_run(oid))
- output = self.run_command(cmd, additional_timemout).splitlines()
+ output = self.run_command(cmd, additional_timeout).splitlines()
return output[len(output)-1].split(None, 1)
- def set(self, oid, value, additional_timemout=0):
+ def set(self, oid, value, additional_timeout=0):
mapping = ((int, 'i'), (str, 's'))
type_of_value = ''
@@ -124,11 +118,11 @@ class FencingSnmp:
cmd = "%s '%s' %s '%s'" % (self.prepare_cmd(self.options["--snmpset-path"]),
self.quote_for_run(oid), type_of_value, self.quote_for_run(str(value)))
- self.run_command(cmd, additional_timemout)
+ self.run_command(cmd, additional_timeout)
- def walk(self, oid, additional_timemout=0):
+ def walk(self, oid, additional_timeout=0):
cmd = "%s '%s'"% (self.prepare_cmd(self.options["--snmpwalk-path"]), self.quote_for_run(oid))
- output = self.run_command(cmd, additional_timemout).splitlines()
+ output = self.run_command(cmd, additional_timeout).splitlines()
return [x.split(None, 1) for x in output if x.startswith(".")]
diff --git a/fence/agents/lib/metadata.rng b/fence/agents/lib/metadata.rng
index 2185cbf..e0cd441 100644
--- a/fence/agents/lib/metadata.rng
+++ b/fence/agents/lib/metadata.rng
@@ -19,7 +19,8 @@
<attribute name="name" />
<attribute name="unique"> <ref name="boolean-values" /> </attribute>
<attribute name="required"> <ref name="boolean-values" /> </attribute>
-
+ <optional><attribute name="deprecated"> <ref name="boolean-values" /></attribute></optional>
+ <optional><attribute name="obsoletes" /> </optional>
<element name="getopt">
<attribute name="mixed" />
</element>
diff --git a/fence/agents/lib/tests/test_fencing.py b/fence/agents/lib/tests/test_fencing.py
new file mode 100644
index 0000000..6ee9385
--- /dev/null
+++ b/fence/agents/lib/tests/test_fencing.py
@@ -0,0 +1,123 @@
+#!/usr/bin/python
+
+import unittest
+import sys
+sys.path.append("..")
+import fencing
+import copy
+
+class Test_join2(unittest.TestCase):
+ def test_single(self):
+ words = ["Mike"]
+ self.assertEqual(fencing._join2(words), "Mike")
+ self.assertEqual(fencing._join2(words, last_separator=" xor "), "Mike")
+ self.assertEqual(fencing._join2(words, normal_separator=" xor "), "Mike")
+
+ def test_double(self):
+ words = ["Mike", "John"]
+ self.assertEqual(fencing._join2(words), "Mike and John")
+ self.assertEqual(fencing._join2(words, last_separator=" xor "), "Mike xor John")
+ self.assertEqual(fencing._join2(words, normal_separator=" xor "), "Mike and John")
+
+ def test_triple(self):
+ words = ["Mike", "John", "Adam"]
+ self.assertEqual(fencing._join2(words), "Mike, John and Adam")
+ self.assertEqual(fencing._join2(words, last_separator=" xor "), "Mike, John xor Adam")
+ self.assertEqual(fencing._join2(words, normal_separator=" xor "), "Mike xor John and Adam")
+
+ def test_quadruple(self):
+ words = ["Eve", "Mike", "John", "Adam"]
+ self.assertEqual(fencing._join2(words), "Eve, Mike, John and Adam")
+ self.assertEqual(fencing._join2(words, last_separator=" xor "), "Eve, Mike, John xor Adam")
+ self.assertEqual(fencing._join2(words, normal_separator=" xor "), "Eve xor Mike xor John and Adam")
+
+class Test_add_dependency_options(unittest.TestCase):
+ basic_set = fencing.DEPENDENCY_OPT["default"]
+
+ def test_add_nothing(self):
+ self.assertEqual(set(fencing._add_dependency_options([])), set(self.basic_set))
+ self.assertEqual(set(fencing._add_dependency_options(["not-exist"])), set(self.basic_set))
+
+ def test_add_single(self):
+ self.assertEqual(set(fencing._add_dependency_options(["passwd"])), set(self.basic_set + ["passwd_script"]))
+
+ def test_add_tuple(self):
+ self.assertEqual(set(fencing._add_dependency_options(["ssl", "passwd"])), \
+ set(self.basic_set + ["passwd_script", "ssl_secure", "ssl_insecure", "gnutlscli_path"]))
+
+class Test_set_default_values(unittest.TestCase):
+ original_all_opt = None
+
+ def setUp(self):
+ # all_opt[*]["default"] can be changed during tests
+ self.original_all_opt = copy.deepcopy(fencing.all_opt)
+
+ def tearDown(self):
+ fencing.all_opt = copy.deepcopy(self.original_all_opt)
+
+ def _prepare_options(self, device_opts, args = {}):
+ device_opts = fencing._add_dependency_options(device_opts) + device_opts
+
+ arg_opts = args
+ options = dict(arg_opts)
+ options["device_opt"] = device_opts
+ fencing._update_metadata(options)
+ return fencing._set_default_values(options)
+
+ def test_status_io(self):
+ options = self._prepare_options([])
+
+ self.assertEqual(options["--action"], "reboot")
+ self.assertIsNone(options.get("--not-exist", None))
+
+ def test_status_fabric(self):
+ options = self._prepare_options(["fabric_fencing"])
+ self.assertEqual(options["--action"], "off")
+
+ def test_ipport_nothing(self):
+ # should fail because connection method (telnet/ssh/...) is not set at all
+ self.assertRaises(IndexError, self._prepare_options, ["ipaddr"])
+
+ def test_ipport_set(self):
+ options = self._prepare_options(["ipaddr", "telnet"], {"--ipport" : "999"})
+ self.assertEqual(options["--ipport"], "999")
+
+ def test_ipport_telnet(self):
+ options = self._prepare_options(["ipaddr", "telnet"])
+ self.assertEqual(options["--ipport"], "23")
+
+ def test_ipport_ssh(self):
+ options = self._prepare_options(["ipaddr", "secure"], {"--ssh" : "1"})
+ self.assertEqual(options["--ipport"], "22")
+
+ def test_ipport_sshtelnet_use_telnet(self):
+ options = self._prepare_options(["ipaddr", "secure", "telnet"])
+ self.assertEqual(options["--ipport"], "23")
+
+ def test_ipport_sshtelnet_use_ssh(self):
+ options = self._prepare_options(["ipaddr", "secure", "telnet"], {"--ssh" : "1"})
+ self.assertEqual(options["--ipport"], "22")
+
+ def test_ipport_ssl(self):
+ options = self._prepare_options(["ipaddr", "ssl"], {"--ssl-secure" : "1"})
+ self.assertEqual(options["--ipport"], "443")
+
+ def test_ipport_ssl_insecure_as_default(self):
+ fencing.all_opt["ssl_insecure"]["default"] = "1"
+ options = self._prepare_options(["ipaddr", "ssl"])
+ self.assertEqual(options["--ipport"], "443")
+
+ def test_ipport_snmp(self):
+ options = self._prepare_options(["ipaddr", "community"])
+ self.assertEqual(options["--ipport"], "161")
+
+ def test_ipport_web(self):
+ options = self._prepare_options(["ipaddr", "web", "ssl"])
+ self.assertEqual(options["--ipport"], "80")
+
+ def test_path_telnet(self):
+ options = self._prepare_options(["ipaddr", "telnet"])
+ self.assertTrue("--telnet-path" in options)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/fence/agents/lpar/fence_lpar.py b/fence/agents/lpar/fence_lpar.py
index 5487b84..270bbe3 100644
--- a/fence/agents/lpar/fence_lpar.py
+++ b/fence/agents/lpar/fence_lpar.py
@@ -16,12 +16,6 @@ sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
from fencing import fail, fail_usage, EC_STATUS_HMC
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION=""
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
def get_power_status(conn, options):
if options["--hmc-version"] == "3":
conn.send("lssyscfg -r lpar -m " + options["--managed"] + " -n " + options["--plug"] + " -F name,state\n")
diff --git a/fence/agents/mpath/fence_mpath.py b/fence/agents/mpath/fence_mpath.py
index 5426a18..183c38a 100644
--- a/fence/agents/mpath/fence_mpath.py
+++ b/fence/agents/mpath/fence_mpath.py
@@ -10,12 +10,6 @@ sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import fail_usage, run_command, atexit_handler, check_input, process_input, show_docs
from fencing import fence_action, all_opt, run_delay
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION=""
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
def get_status(conn, options):
del conn
status = "off"
diff --git a/fence/agents/netio/fence_netio.py b/fence/agents/netio/fence_netio.py
index 6dc6a1a..4fb59cf 100755
--- a/fence/agents/netio/fence_netio.py
+++ b/fence/agents/netio/fence_netio.py
@@ -6,12 +6,6 @@ sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
from fencing import fspawn, fail, EC_LOGIN_DENIED, run_delay
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION=""
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
def get_power_status(conn, options):
conn.send_eol("port %s" % options["--plug"])
re_status = re.compile("250 [01imt]")
diff --git a/fence/agents/powerman/fence_powerman.py b/fence/agents/powerman/fence_powerman.py
index d9ab849..962fdb8 100755
--- a/fence/agents/powerman/fence_powerman.py
+++ b/fence/agents/powerman/fence_powerman.py
@@ -11,14 +11,6 @@ from fencing import *
from fencing import is_executable, fail_usage, run_delay
import logging
-
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="Powerman Fencing Agent"
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
-
#### important!!! #######
class PowerMan:
"""Python wrapper for calling powerman commands
diff --git a/fence/agents/pve/fence_pve.py b/fence/agents/pve/fence_pve.py
index c2feb0d..c11f8c1 100755
--- a/fence/agents/pve/fence_pve.py
+++ b/fence/agents/pve/fence_pve.py
@@ -16,13 +16,6 @@ from fencing import fail, EC_LOGIN_DENIED, atexit_handler, all_opt, check_input,
if sys.version_info[0] > 2: import urllib.parse as urllib
else: import urllib
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION=""
-BUILD_DATE=""
-REDHAT_COPYRIGHT=""
-#END_VERSION_GENERATION
-
-
def get_power_status(conn, options):
del conn
state = {"running" : "on", "stopped" : "off"}
@@ -100,7 +93,7 @@ def send_cmd(options, cmd, post=None):
if logging.getLogger().getEffectiveLevel() < logging.WARNING:
conn.setopt(pycurl.VERBOSE, True)
conn.setopt(pycurl.HTTPGET, 1)
- conn.setopt(pycurl.URL, str(url))
+ conn.setopt(pycurl.URL, url.encode("ascii"))
if "auth" in options and options["auth"] is not None:
conn.setopt(pycurl.COOKIE, options["auth"]["ticket"])
conn.setopt(pycurl.HTTPHEADER, [options["auth"]["CSRF_token"]])
@@ -179,6 +172,12 @@ machines acting as nodes in a virtualized cluster."
if options["auth"] is None:
fail(EC_LOGIN_DENIED)
+ # Workaround for unsupported API call on some Proxmox hosts
+ outlets = get_outlet_list(None, options) # Unsupported API-Call will result in value: None
+ if outlets is None:
+ result = fence_action(None, options, set_power_status, get_power_status, None)
+ sys.exit(result)
+
result = fence_action(None, options, set_power_status, get_power_status, get_outlet_list)
sys.exit(result)
diff --git a/fence/agents/raritan/fence_raritan.py b/fence/agents/raritan/fence_raritan.py
index 36f2bea..17fa0f5 100644
--- a/fence/agents/raritan/fence_raritan.py
+++ b/fence/agents/raritan/fence_raritan.py
@@ -6,12 +6,6 @@ sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
from fencing import fspawn, fail, EC_LOGIN_DENIED, run_delay
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION=""
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
# --plug should include path to the outlet # such as port 1:
# /system1/outlet1
diff --git a/fence/agents/rcd_serial/fence_rcd_serial.py b/fence/agents/rcd_serial/fence_rcd_serial.py
index 0148951..4b80f42 100644
--- a/fence/agents/rcd_serial/fence_rcd_serial.py
+++ b/fence/agents/rcd_serial/fence_rcd_serial.py
@@ -24,13 +24,6 @@ from time import sleep
sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="rcd_serial (serial reset) fence agent"
-REDHAT_COPYRIGHT=""
-BUILD_DATE="22 Jul 2015"
-#END_VERSION_GENERATION
-
-
class RCDSerial(object):
"""Control class for serial device"""
diff --git a/fence/agents/rcd_serial/rcd_serial_cable_diagram.svg b/fence/agents/rcd_serial/rcd_serial_cable_diagram.svg
new file mode 100644
index 0000000..36f219f
--- /dev/null
+++ b/fence/agents/rcd_serial/rcd_serial_cable_diagram.svg
@@ -0,0 +1,276 @@
+<?xml version="1.0"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg viewBox="24 24 1460 442" preserveAspectRatio="xMinYMin meet" version="1.1" xmlns="http://www.w3.org/2000/svg">
+<g class="Diode">
+<line x1="320" y1="128" x2="342" y2="128" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<line x1="361" y1="128" x2="384" y2="128" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<polygon fill="#000000" stroke="none" points="342,115 342,141 361,128 " />
+<polygon stroke="#000000" stroke-width="2" fill="none" points="342,115 342,141 361,128 " />
+<line x1="361" y1="115" x2="361" y2="141" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<text x="322" y="103" font-family="sans-serif">1N4148</text>
+</g>
+<g class="Diode">
+<line x1="320" y1="288" x2="342" y2="288" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<line x1="361" y1="288" x2="384" y2="288" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<polygon fill="#000000" stroke="none" points="342,275 342,301 361,288 " />
+<polygon stroke="#000000" stroke-width="2" fill="none" points="342,275 342,301 361,288 " />
+<line x1="361" y1="275" x2="361" y2="301" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<text x="317" y="263" font-family="sans-serif">1N4148.</text>
+</g>
+<g class="Resistor">
+<line x1="448" y1="128" x2="464" y2="128" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<line x1="496" y1="128" x2="512" y2="128" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<polyline stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="3" fill="none" points="464,128 466.6667,120 469.3333,128 472,136 474.6667,128 " />
+<polyline stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="3" fill="none" points="474.6667,128 477.3333,120 480,128 482.6667,136 485.3333,128 " />
+<polyline stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="3" fill="none" points="485.3333,128 488,120 490.6667,128 493.3333,136 496,128 " />
+<text x="465" y="113" font-family="sans-serif">10k</text>
+</g>
+<g class="Resistor">
+<line x1="448" y1="288" x2="464" y2="288" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<line x1="496" y1="288" x2="512" y2="288" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<polyline stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="3" fill="none" points="464,288 466.6667,280 469.3333,288 472,296 474.6667,288 " />
+<polyline stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="3" fill="none" points="474.6667,288 477.3333,280 480,288 482.6667,296 485.3333,288 " />
+<polyline stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="3" fill="none" points="485.3333,288 488,280 490.6667,288 493.3333,296 496,288 " />
+<text x="465" y="273" font-family="sans-serif">10k</text>
+</g>
+<g class="Resistor">
+<line x1="576" y1="384" x2="576" y2="368" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<line x1="576" y1="336" x2="576" y2="320" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<polyline stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="3" fill="none" points="576,368 568,365.3333 576,362.6667 584,360 576,357.3333 " />
+<polyline stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="3" fill="none" points="576,357.3333 568,354.6667 576,352 584,349.3333 576,346.6667 " />
+<polyline stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="3" fill="none" points="576,346.6667 568,344 576,341.3333 584,338.6667 576,336 " />
+<text x="591" y="357" font-family="sans-serif">20k</text>
+</g>
+<g class="Resistor">
+<line x1="672" y1="224" x2="672" y2="208" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<line x1="672" y1="176" x2="672" y2="160" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<polyline stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="3" fill="none" points="672,208 664,205.3333 672,202.6667 680,200 672,197.3333 " />
+<polyline stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="3" fill="none" points="672,197.3333 664,194.6667 672,192 680,189.3333 672,186.6667 " />
+<polyline stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="3" fill="none" points="672,186.6667 664,184 672,181.3333 680,178.6667 672,176 " />
+<text x="687" y="197" font-family="sans-serif">120</text>
+</g>
+<g class="Wire">
+<line x1="448" y1="128" x2="384" y2="128" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+</g>
+<g class="Wire">
+<line x1="448" y1="288" x2="384" y2="288" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+</g>
+<g class="Wire">
+<line x1="512" y1="288" x2="576" y2="288" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+<ellipse cx="576" cy="288" rx="4" ry="4" fill="#000000" stroke="none" />
+</g>
+<g class="Wire">
+<line x1="576" y1="288" x2="608" y2="288" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+<ellipse cx="576" cy="288" rx="4" ry="4" fill="#000000" stroke="none" />
+</g>
+<g class="Wire">
+<line x1="512" y1="128" x2="672" y2="128" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+<ellipse cx="672" cy="128" rx="4" ry="4" fill="#000000" stroke="none" />
+</g>
+<g class="Wire">
+<line x1="672" y1="128" x2="672" y2="160" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+<ellipse cx="672" cy="128" rx="4" ry="4" fill="#000000" stroke="none" />
+</g>
+<g class="Wire">
+<line x1="672" y1="256" x2="672" y2="224" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+</g>
+<g class="Wire">
+<line x1="672" y1="416" x2="576" y2="416" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+<ellipse cx="672" cy="416" rx="4" ry="4" fill="#000000" stroke="none" />
+<ellipse cx="576" cy="416" rx="4" ry="4" fill="#000000" stroke="none" />
+</g>
+<g class="Wire">
+<line x1="320" y1="128" x2="288" y2="128" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+</g>
+<g class="Wire">
+<line x1="288" y1="288" x2="320" y2="288" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+</g>
+<g class="Resistor">
+<line x1="800" y1="320" x2="800" y2="304" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<line x1="800" y1="272" x2="800" y2="256" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<polyline stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="3" fill="none" points="800,304 792,301.3333 800,298.6667 808,296 800,293.3333 " />
+<polyline stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="3" fill="none" points="800,293.3333 792,290.6667 800,288 808,285.3333 800,282.6667 " />
+<polyline stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="3" fill="none" points="800,282.6667 792,280 800,277.3333 808,274.6667 800,272 " />
+<text x="815" y="293" font-family="sans-serif">100k</text>
+</g>
+<g class="Capacitor">
+<line x1="896" y1="320" x2="896" y2="292" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<line x1="884" y1="292" x2="908" y2="292" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<line x1="896" y1="256" x2="896" y2="284" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<path d="M 907.313708566442 279.313708431527 A 16 16 0 0 1 884.686291748284 279.313708746254" stroke="#000000" stroke-width="3" fill="none" />
+<text x="918" y="293" font-family="sans-serif">100uF</text>
+</g>
+<g class="Wire">
+<line x1="800" y1="256" x2="800" y2="128" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+<ellipse cx="800" cy="128" rx="4" ry="4" fill="#000000" stroke="none" />
+</g>
+<g class="Wire">
+<line x1="896" y1="256" x2="896" y2="128" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+<ellipse cx="896" cy="128" rx="4" ry="4" fill="#000000" stroke="none" />
+</g>
+<g class="Wire">
+<line x1="896" y1="128" x2="800" y2="128" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+<ellipse cx="896" cy="128" rx="4" ry="4" fill="#000000" stroke="none" />
+<ellipse cx="800" cy="128" rx="4" ry="4" fill="#000000" stroke="none" />
+</g>
+<g class="Wire">
+<line x1="896" y1="416" x2="800" y2="416" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+<ellipse cx="896" cy="416" rx="4" ry="4" fill="#000000" stroke="none" />
+<ellipse cx="800" cy="416" rx="4" ry="4" fill="#000000" stroke="none" />
+</g>
+<g class="LED">
+<line x1="992" y1="160" x2="992" y2="182" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<line x1="992" y1="201" x2="992" y2="224" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<polygon fill="#FFFFFF" stroke="none" points="1005,182 979,182 992,201 " />
+<polygon stroke="#000000" stroke-width="2" fill="none" points="1005,182 979,182 992,201 " />
+<line x1="1005" y1="201" x2="979" y2="201" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<text x="1013" y="197" font-family="sans-serif">Red LED</text>
+<line x1="1003" y1="192" x2="1007" y2="195" stroke="#000000" stroke-width="2" stroke-linecap="round" fill="none" />
+<line x1="1006" y1="188" x2="1010" y2="191" stroke="#000000" stroke-width="2" stroke-linecap="round" fill="none" />
+</g>
+<g class="LED">
+<line x1="992" y1="288" x2="992" y2="310" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<line x1="992" y1="329" x2="992" y2="352" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<polygon fill="#FFFFFF" stroke="none" points="1005,310 979,310 992,329 " />
+<polygon stroke="#000000" stroke-width="2" fill="none" points="1005,310 979,310 992,329 " />
+<line x1="1005" y1="329" x2="979" y2="329" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<line x1="1003" y1="320" x2="1007" y2="323" stroke="#000000" stroke-width="2" stroke-linecap="round" fill="none" />
+<line x1="1006" y1="316" x2="1010" y2="319" stroke="#000000" stroke-width="2" stroke-linecap="round" fill="none" />
+</g>
+<g class="BJT Transistor (NPN)">
+<line x1="1088" y1="288" x2="1060" y2="308" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<line x1="1088" y1="352" x2="1060" y2="332" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<polygon fill="#000000" stroke="none" points="1088,352 1080,336 1070,349 " />
+<line x1="1024" y1="320" x2="1056" y2="320" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<polygon fill="#000000" stroke="none" points="1056,294 1062,294 1062,346 1056,346 " />
+<text x="1087" y="325" font-family="sans-serif">PS2501 Optocoupler</text>
+<ellipse cx="1024" cy="320" rx="4" ry="4" stroke="#000000" stroke-width="1" fill="none" />
+</g>
+<g class="Wire">
+<line x1="992" y1="288" x2="992" y2="224" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+<text x="1007" y="261" font-family="sans-serif">1</text>
+</g>
+<g class="Port">
+<polygon fill="#FFFFFF" stroke="none" points="1184,256 1192,246 1248,246 1248,266 1192,266 " />
+<polygon stroke="#000000" stroke-width="1" fill="none" points="1184,256 1192,246 1248,246 1248,266 1192,266 " />
+<text x="1211" y="261" font-family="sans-serif">1</text>
+<text x="1256" y="261" font-family="sans-serif">RWL</text>
+</g>
+<g class="Port">
+<polygon fill="#FFFFFF" stroke="none" points="1184,384 1192,374 1248,374 1248,394 1192,394 " />
+<polygon stroke="#000000" stroke-width="1" fill="none" points="1184,384 1192,374 1248,374 1248,394 1192,394 " />
+<text x="1211" y="389" font-family="sans-serif">2</text>
+<text x="1256" y="389" font-family="sans-serif">RWG</text>
+</g>
+<g class="Port">
+<polygon fill="#FFFFFF" stroke="none" points="288,128 280,138 224,138 224,118 280,118 " />
+<polygon stroke="#000000" stroke-width="1" fill="none" points="288,128 280,138 224,138 224,118 280,118 " />
+<text x="251" y="133" font-family="sans-serif">7</text>
+<text x="186" y="133" font-family="sans-serif">RTS</text>
+</g>
+<g class="Port">
+<polygon fill="#FFFFFF" stroke="none" points="288,288 280,298 224,298 224,278 280,278 " />
+<polygon stroke="#000000" stroke-width="1" fill="none" points="288,288 280,298 224,298 224,278 280,278 " />
+<text x="251" y="293" font-family="sans-serif">4</text>
+<text x="186" y="293" font-family="sans-serif">DTR</text>
+</g>
+<g class="Port">
+<polygon fill="#FFFFFF" stroke="none" points="288,416 280,426 224,426 224,406 280,406 " />
+<polygon stroke="#000000" stroke-width="1" fill="none" points="288,416 280,426 224,426 224,406 280,406 " />
+<text x="251" y="421" font-family="sans-serif">5</text>
+<text x="196" y="421" font-family="sans-serif">SG</text>
+</g>
+<g class="Wire">
+<line x1="576" y1="416" x2="288" y2="416" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+<ellipse cx="576" cy="416" rx="4" ry="4" fill="#000000" stroke="none" />
+</g>
+<g class="Wire">
+<line x1="896" y1="416" x2="992" y2="416" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+<ellipse cx="896" cy="416" rx="4" ry="4" fill="#000000" stroke="none" />
+</g>
+<g class="Wire">
+<line x1="896" y1="128" x2="992" y2="128" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+<ellipse cx="896" cy="128" rx="4" ry="4" fill="#000000" stroke="none" />
+</g>
+<g class="Wire">
+<line x1="992" y1="160" x2="992" y2="128" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+</g>
+<g class="Wire">
+<line x1="1088" y1="256" x2="1184" y2="256" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+<text x="1131" y="241" font-family="sans-serif">4</text>
+</g>
+<g class="Wire">
+<line x1="1088" y1="384" x2="1184" y2="384" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+<text x="1131" y="369" font-family="sans-serif">3</text>
+</g>
+<g class="RS232 Serial Connector">
+<rect x="56" y="248" width="106" height="62" fill="#FFFFFF" stroke="none" />
+<rect x="56" y="248" width="106" height="62" rx="5" ry="5" stroke="#000000" stroke-width="2" fill="none" />
+<text x="84" y="266" font-family="sans-serif">RS232</text>
+<text x="79" y="284" font-family="sans-serif">Serial</text>
+<text x="64" y="302" font-family="sans-serif">Connector</text>
+</g>
+<g class="Motherboard Reset Pins">
+<rect x="1304" y="280" width="126" height="62" fill="#FFFFFF" stroke="none" />
+<rect x="1304" y="280" width="126" height="62" rx="5" ry="5" stroke="#000000" stroke-width="2" fill="none" />
+<text x="1312" y="298" font-family="sans-serif">Motherboard</text>
+<text x="1342" y="316" font-family="sans-serif">Reset</text>
+<text x="1347" y="334" font-family="sans-serif">Pins</text>
+</g>
+<g class="n-MOSFET">
+<polyline stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="3" fill="none" points="640,312 672,312 672,320 " />
+<polyline stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="3" fill="none" points="640,264 672,264 672,256 " />
+<line x1="640" y1="312" x2="640" y2="288" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<line x1="640" y1="288" x2="640" y2="264" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<line x1="640" y1="312" x2="640" y2="320" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<line x1="640" y1="264" x2="640" y2="256" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<polygon fill="#000000" stroke="none" points="672,312 656,304 656,320 " />
+<line x1="608" y1="288" x2="630" y2="288" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<line x1="630" y1="264" x2="630" y2="312" stroke="#000000" stroke-width="3" stroke-linecap="round" fill="none" />
+<text x="679" y="293" font-family="sans-serif">6512A-ND1</text>
+</g>
+<g class="Wire">
+<line x1="672" y1="128" x2="800" y2="128" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+<ellipse cx="672" cy="128" rx="4" ry="4" fill="#000000" stroke="none" />
+<ellipse cx="800" cy="128" rx="4" ry="4" fill="#000000" stroke="none" />
+</g>
+<g class="Wire">
+<line x1="672" y1="416" x2="800" y2="416" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+<ellipse cx="672" cy="416" rx="4" ry="4" fill="#000000" stroke="none" />
+<ellipse cx="800" cy="416" rx="4" ry="4" fill="#000000" stroke="none" />
+</g>
+<g class="Wire">
+<line x1="576" y1="288" x2="576" y2="320" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+<ellipse cx="576" cy="288" rx="4" ry="4" fill="#000000" stroke="none" />
+</g>
+<g class="Wire">
+<line x1="576" y1="384" x2="576" y2="416" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+<ellipse cx="576" cy="416" rx="4" ry="4" fill="#000000" stroke="none" />
+</g>
+<g class="Wire">
+<line x1="992" y1="352" x2="992" y2="416" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+<text x="1007" y="389" font-family="sans-serif">2</text>
+</g>
+<g class="Wire">
+<line x1="672" y1="320" x2="672" y2="416" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+<ellipse cx="672" cy="416" rx="4" ry="4" fill="#000000" stroke="none" />
+</g>
+<g class="Wire">
+<line x1="896" y1="320" x2="896" y2="416" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+<ellipse cx="896" cy="416" rx="4" ry="4" fill="#000000" stroke="none" />
+</g>
+<g class="Wire">
+<line x1="800" y1="320" x2="800" y2="416" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+<ellipse cx="800" cy="416" rx="4" ry="4" fill="#000000" stroke="none" />
+</g>
+<g class="Delayed Serial Cable For STONITH">
+<rect x="536" y="56" width="336" height="26" fill="#FFFFFF" stroke="none" />
+<text x="544" y="74" font-family="sans-serif">Delayed Serial Cable For STONITH</text>
+</g>
+<g class="Wire">
+<line x1="1088" y1="256" x2="1088" y2="288" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+</g>
+<g class="Wire">
+<line x1="1088" y1="384" x2="1088" y2="352" stroke="#000000" stroke-width="1.5" stroke-linecap="round" fill="none" />
+</g>
+</svg>
diff --git a/fence/agents/rhevm/fence_rhevm.py b/fence/agents/rhevm/fence_rhevm.py
index e2942e1..0594e66 100644
--- a/fence/agents/rhevm/fence_rhevm.py
+++ b/fence/agents/rhevm/fence_rhevm.py
@@ -8,13 +8,6 @@ sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
from fencing import fail, EC_STATUS, run_delay
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="New RHEV-M Agent - test release on steroids"
-REDHAT_COPYRIGHT=""
-BUILD_DATE="March, 2008"
-#END_VERSION_GENERATION
-
-
RE_GET_ID = re.compile("<vm( .*)? id=\"(.*?)\"", re.IGNORECASE)
RE_STATUS = re.compile("<state>(.*?)</state>", re.IGNORECASE)
RE_GET_NAME = re.compile("<name>(.*?)</name>", re.IGNORECASE)
@@ -81,14 +74,28 @@ def send_command(opt, command, method="GET"):
url = "https:"
else:
url = "http:"
+ if opt.has_key("--api-path"):
+ api_path = opt["--api-path"]
+ else:
+ api_path = "/ovirt-engine/api"
+ if opt.has_key("--disable-http-filter"):
+ http_filter = 'false'
+ else:
+ http_filter = 'true'
- url += "//" + opt["--ip"] + ":" + str(opt["--ipport"]) + "/api/" + command
+ url += "//" + opt["--ip"] + ":" + str(opt["--ipport"]) + api_path + "/" + command
## send command through pycurl
conn = pycurl.Curl()
web_buffer = io.BytesIO()
- conn.setopt(pycurl.URL, url)
- conn.setopt(pycurl.HTTPHEADER, ["Content-type: application/xml", "Accept: application/xml", "Prefer: persistent-auth", "Filter: true"])
+ conn.setopt(pycurl.URL, url.encode("ascii"))
+ conn.setopt(pycurl.HTTPHEADER, [
+ "Version: 3",
+ "Content-type: application/xml",
+ "Accept: application/xml",
+ "Prefer: persistent-auth",
+ "Filter: {}".format(http_filter),
+ ])
if "cookie" in opt:
conn.setopt(pycurl.COOKIE, opt["cookie"])
@@ -136,9 +143,36 @@ def define_new_opts():
"required" : "0",
"shortdesc" : "Reuse cookies for authentication",
"order" : 1}
+ all_opt["api_path"] = {
+ "getopt" : ":",
+ "longopt" : "api-path",
+ "help" : "--api-path=[path] The path part of the API URL",
+ "default" : "/ovirt-engine/api",
+ "required" : "0",
+ "shortdesc" : "The path part of the API URL",
+ "order" : 2}
+ all_opt["disable_http_filter"] = {
+ "getopt" : "",
+ "longopt" : "disable-http-filter",
+ "help" : "--disable-http-filter Set HTTP Filter header to false",
+ "required" : "0",
+ "shortdesc" : "Set HTTP Filter header to false",
+ "order" : 3}
+
def main():
- device_opt = ["ipaddr", "login", "passwd", "ssl", "notls", "web", "port", "use_cookies" ]
+ device_opt = [
+ "ipaddr",
+ "api_path",
+ "login",
+ "passwd",
+ "ssl",
+ "notls",
+ "web",
+ "port",
+ "use_cookies",
+ "disable_http_filter",
+ ]
atexit.register(atexit_handler)
define_new_opts()
diff --git a/fence/agents/rsa/fence_rsa.py b/fence/agents/rsa/fence_rsa.py
index 7b24ea6..44fdd9d 100644
--- a/fence/agents/rsa/fence_rsa.py
+++ b/fence/agents/rsa/fence_rsa.py
@@ -12,12 +12,6 @@ import atexit
sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="New RSA2 Agent - test release on steroids"
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
def get_power_status(conn, options):
conn.send_eol("power state")
conn.log_expect(options["--command-prompt"], int(options["--shell-timeout"]))
diff --git a/fence/agents/rsb/fence_rsb.py b/fence/agents/rsb/fence_rsb.py
index 725398d..45355f5 100755
--- a/fence/agents/rsb/fence_rsb.py
+++ b/fence/agents/rsb/fence_rsb.py
@@ -5,12 +5,6 @@ import atexit
sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION=""
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
def get_power_status(conn, options):
conn.send("2")
conn.log_expect(options["--command-prompt"], int(options["--shell-timeout"]))
diff --git a/fence/agents/sanbox2/fence_sanbox2.py b/fence/agents/sanbox2/fence_sanbox2.py
index e298a3e..679d1d9 100644
--- a/fence/agents/sanbox2/fence_sanbox2.py
+++ b/fence/agents/sanbox2/fence_sanbox2.py
@@ -15,12 +15,6 @@ sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
from fencing import fail, EC_TIMED_OUT, EC_GENERIC_ERROR
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="New Sanbox2 Agent - test release on steroids"
-REDHAT_COPYRIGHT=""
-BUILD_DATE="March, 2008"
-#END_VERSION_GENERATION
-
def get_power_status(conn, options):
status_trans = {
'online' : "on",
diff --git a/fence/agents/sbd/fence_sbd.py b/fence/agents/sbd/fence_sbd.py
index d09b97e..b1df70a 100644
--- a/fence/agents/sbd/fence_sbd.py
+++ b/fence/agents/sbd/fence_sbd.py
@@ -9,12 +9,6 @@ from fencing import fail_usage, run_command, fence_action, all_opt
from fencing import atexit_handler, check_input, process_input, show_docs
from fencing import run_delay
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION=""
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
DEVICE_INIT = 1
DEVICE_NOT_INIT = -3
PATH_NOT_EXISTS = -1
diff --git a/fence/agents/scsi/fence_scsi.py b/fence/agents/scsi/fence_scsi.py
index 37ff1d3..99c426e 100644
--- a/fence/agents/scsi/fence_scsi.py
+++ b/fence/agents/scsi/fence_scsi.py
@@ -13,12 +13,6 @@ sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import fail_usage, run_command, atexit_handler, check_input, process_input, show_docs, fence_action, all_opt
from fencing import run_delay
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION=""
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
STORE_PATH = "/var/run/cluster/fence_scsi"
@@ -182,7 +176,16 @@ def get_cluster_id(options):
cmd = options["--corosync-cmap-path"] + " totem.cluster_name"
match = re.search(r"\(str\) = (\S+)\n", run_cmd(options, cmd)["out"])
- return hashlib.md5(match.group(1)).hexdigest() if match else fail_usage("Failed: cannot get cluster name")
+
+ if not match:
+ fail_usage("Failed: cannot get cluster name")
+
+ try:
+ return hashlib.md5(match.group(1)).hexdigest()
+ except ValueError:
+ # FIPS requires usedforsecurity=False and might not be
+ # available on all distros: https://bugs.python.org/issue9216
+ return hashlib.md5(match.group(1), usedforsecurity=False).hexdigest()
def get_node_id(options):
@@ -332,7 +335,7 @@ be removed from the device(s).",
"shortdesc" : "Log output (stdout and stderr) to file",
"order": 5
}
- all_opt["corosync-cmap_path"] = {
+ all_opt["corosync_cmap_path"] = {
"getopt" : ":",
"longopt" : "corosync-cmap-path",
"help" : "--corosync-cmap-path=[path] Path to corosync-cmapctl binary",
@@ -416,7 +419,7 @@ def main():
atexit.register(atexit_handler)
device_opt = ["no_login", "no_password", "devices", "nodename", "key",\
- "aptpl", "fabric_fencing", "on_target", "corosync-cmap_path",\
+ "aptpl", "fabric_fencing", "on_target", "corosync_cmap_path",\
"sg_persist_path", "sg_turs_path", "logfile", "vgs_path", "force_on"]
define_new_opts()
diff --git a/fence/agents/vbox/fence_vbox.py b/fence/agents/vbox/fence_vbox.py
index 4347352..5491b9b 100644
--- a/fence/agents/vbox/fence_vbox.py
+++ b/fence/agents/vbox/fence_vbox.py
@@ -14,27 +14,13 @@ sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
from fencing import fail_usage
-
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION = "VirtualBox fence agent"
-REDHAT_COPYRIGHT = ""
-BUILD_DATE = ""
-#END_VERSION_GENERATION
-
-
-def get_name_or_uuid(options):
- return options.get("--uuid") or options.get("--plug")
-
-_domain_re = re.compile(r'^\"(.*)\" \{(.*)\}$')
-
-
def _invoke(conn, options, *cmd):
prefix = options["--sudo-path"] + " " if "--use-sudo" in options else ""
- conn.sendline(prefix + "VBoxManage " + " ".join(cmd))
+ conn.send_eol(prefix + options["--vboxmanage-path"] + " " + " ".join(cmd))
conn.log_expect(options["--command-prompt"], int(options["--shell-timeout"]))
-
def get_outlets_status(conn, options):
+ _domain_re = re.compile(r'^\"(.*)\" \{(.*)\}$')
result = {}
_invoke(conn, options, "list", "vms")
@@ -42,45 +28,66 @@ def get_outlets_status(conn, options):
# format: "<domain>" {<uuid>}
domain = _domain_re.search(line.strip())
if domain is not None:
- result[domain.group(1)] = ("", "off")
+ result[domain.group(1)] = (domain.group(2), "off")
_invoke(conn, options, "list", "runningvms")
for line in conn.before.splitlines():
# format: "<domain>" {<uuid>}
domain = _domain_re.search(line.strip())
if domain is not None:
- result[domain.group(1)] = ("", "on")
+ result[domain.group(1)] = (domain.group(2), "on")
return result
def get_power_status(conn, options):
- name = get_name_or_uuid(options)
- _invoke(conn, options, "list", "runningvms")
- for line in conn.before.splitlines():
- domain = _domain_re.search(line.strip())
- if domain is not None and name in domain.groups():
- return "on"
+ outlets = get_outlets_status(conn, options)
+
+ if options["--plug"] in outlets:
+ return outlets[options["--plug"]][1]
+
+ right_uuid_line = [outlets[o] for o in outlets.keys() if outlets[o][0] == options["--plug"]]
+
+ if len(right_uuid_line):
+ return right_uuid_line[0][1]
+
if "--missing-as-off" in options:
return "off"
- _invoke(conn, options, "list", "vms")
- for line in conn.before.splitlines():
- domain = _domain_re.search(line.strip())
- if domain is not None and name in domain.groups():
- return "off"
+
fail_usage("Failed: You have to enter existing name/UUID of virtual machine!")
def set_power_status(conn, options):
- name = get_name_or_uuid(options)
if options["--action"] == "on":
- _invoke(conn, options, "startvm", '"%s"' % name, "--type", "headless")
+ _invoke(conn, options, "startvm", '"%s"' % options["--plug"], "--type", "headless")
else:
- _invoke(conn, options, "controlvm", '"%s"' % name, "poweroff")
-
+ _invoke(conn, options, "controlvm", '"%s"' % options["--plug"], "poweroff")
+
+def define_new_opts():
+ all_opt["vboxmanage_path"] = {
+ "getopt" : ":",
+ "longopt" : "vboxmanage-path",
+ "help" : "--vboxmanage-path=[path] Path to VBoxManage on the host",
+ "required" : "0",
+ "shortdesc" : "Path to VBoxManage on the host",
+ "default" : "VBoxManage",
+ "order" : 200
+ }
+ all_opt["host_os"] = {
+ "getopt" : ":",
+ "longopt" : "host-os",
+ "help" : "--host-os=[os] Operating system of the host",
+ "required" : "0",
+ "shortdesc" : "Operating system of the host",
+ "choices" : ["linux", "macos", "windows"],
+ "default" : "linux",
+ "order" : 200
+ }
def main():
- device_opt = ["ipaddr", "login", "passwd", "cmd_prompt", "secure", "port", "sudo", "missing_as_off"]
+ device_opt = ["ipaddr", "login", "passwd", "cmd_prompt", "secure", "port", "sudo",
+ "missing_as_off", "vboxmanage_path", "host_os"]
+ define_new_opts()
atexit.register(atexit_handler)
@@ -89,7 +96,22 @@ def main():
all_opt["cmd_prompt"]["default"] = [r"\[EXPECT\]#\ "]
all_opt["ssh_options"]["default"] = "-t '/bin/bash -c \"" + r"PS1=\\[EXPECT\\]#\ " + "/bin/bash --noprofile --norc\"'"
- options = check_input(device_opt, process_input(device_opt))
+ opt = process_input(device_opt)
+
+ opt["logout_string"] = "quit"
+ if "--host-os" in opt and "--vboxmanage-path" not in opt:
+ if opt["--host-os"] == "linux":
+ opt["--vboxmanage-path"] = "VBoxManage"
+ elif opt["--host-os"] == "macos":
+ opt["--vboxmanage-path"] = "/Applications/VirtualBox.app/Contents/MacOS/VBoxManage"
+ opt["logout_string"] = "exit"
+ elif opt["--host-os"] == "windows":
+ opt["--vboxmanage-path"] = "\"/Program Files/Oracle/VirtualBox/VBoxManage.exe"
+ opt["--command-prompt"] = ""
+ opt["--ssh-options"] = ""
+
+ options = check_input(device_opt, opt)
+ options["eol"] = "\n"
docs = {}
docs["shortdesc"] = "Fence agent for VirtualBox"
@@ -106,7 +128,7 @@ vboxusers group. Also, you must allow ssh login in your sshd_config."
# Operate the fencing device
conn = fence_login(options)
result = fence_action(conn, options, set_power_status, get_power_status, get_outlets_status)
- fence_logout(conn, "quit")
+ fence_logout(conn, opt["logout_string"])
sys.exit(result)
if __name__ == "__main__":
diff --git a/fence/agents/virsh/fence_virsh.py b/fence/agents/virsh/fence_virsh.py
index baa5ee0..7ccda2f 100644
--- a/fence/agents/virsh/fence_virsh.py
+++ b/fence/agents/virsh/fence_virsh.py
@@ -12,12 +12,6 @@ sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
from fencing import fail_usage
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="Virsh fence agent"
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
def get_name_or_uuid(options):
return options["--uuid"] if "--uuid" in options else options["--plug"]
diff --git a/fence/agents/vmware/fence_vmware.py b/fence/agents/vmware/fence_vmware.py
index 8bb061e..bc1785f 100644
--- a/fence/agents/vmware/fence_vmware.py
+++ b/fence/agents/vmware/fence_vmware.py
@@ -27,13 +27,7 @@ import logging
import atexit
sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
-from fencing import fail, fail_usage, EC_TIMED_OUT, run_delay
-
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="VMware Agent using VI Perl API and/or VIX vmrun command"
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
+from fencing import fail, fail_usage, EC_TIMED_OUT, run_delay, frun
### CONSTANTS ####
# VMware type is ESX/ESXi/VC
@@ -146,7 +140,7 @@ def vmware_run_command(options, add_login_params, additional_params, additional_
try:
logging.debug("%s\n", command)
- (res_output, res_code) = pexpect.run(command,
+ (res_output, res_code) = frun(command,
int(options["--shell-timeout"]) + int(options["--login-timeout"]) + additional_timeout, True)
if res_code == None:
diff --git a/fence/agents/vmware/fence_vmware_helper.pl b/fence/agents/vmware/fence_vmware_helper.pl
new file mode 100644
index 0000000..a0b5cea
--- /dev/null
+++ b/fence/agents/vmware/fence_vmware_helper.pl
@@ -0,0 +1,276 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+my $ME = $0;
+
+END {
+ defined fileno STDOUT or return;
+ close STDOUT and return;
+ warn "$ME: failed to close standard output: $!\n";
+ $? ||= 1;
+}
+
+my ($RELEASE_VERSION, $REDHAT_COPYRIGHT, $BUILD_DATE);
+
+#BEGIN_VERSION_GENERATION
+$RELEASE_VERSION="";
+$REDHAT_COPYRIGHT="";
+$BUILD_DATE="";
+#END_VERSION_GENERATION
+
+#### FUNCTIONS #####
+# Show error message
+sub show_error {
+ print STDERR @_;
+}
+
+sub my_exit {
+ my ($exit_code)=@_;
+
+ # Disconnect from server
+ Util::disconnect();
+
+ exit $exit_code;
+}
+
+# Convert one field (string) to format acceptable by DSV. This
+# means replace any : with \: and \ with \\.
+sub convert_field_to_dsv {
+ my ($input_line)=@_;
+
+ $input_line =~ s/([\\:])/\\$1/g;
+ return $input_line
+}
+
+#### Global variables #####
+# Aditional options
+my %opts = (
+ 'operation' => {
+ type => "=s",
+ help => "The operation to perform (on,off,list,status). "
+ . "Operations on/off/status require name of the virtual machine",
+ default => "list",
+ required => 0,
+ },
+ 'vmname' => {
+ type => "=s",
+ help => "The name of the virtual machine",
+ required => 0,
+ },
+ 'datacenter' => {
+ type => "=s",
+ help => "The name of the datacenter",
+ required => 0,
+ }
+);
+
+#################
+##### MAIN ######
+#################
+
+# Conditional use of VIRuntime
+eval "use VMware::VIRuntime;";
+
+if ($@) {
+ show_error "Please install VI Perl API package to use this tool!\nPerl error: $@";
+ exit 1;
+}
+
+# Parse options
+Opts::add_options(%opts);
+Opts::parse();
+Opts::validate();
+
+if (!(Opts::get_option('operation')=~/^(on|off|list|status)$/i)) {
+ show_error "Operation should be on, off, list or status!\n";
+ exit 2;
+}
+
+my $operation=lc(Opts::get_option('operation'));
+
+if (($operation ne 'list') && (!defined Opts::get_option('vmname'))) {
+ show_error "Operation on, off, status require vmname parameter!\n";
+ exit 2;
+}
+
+
+# Try connect to machine
+eval {
+ Util::connect();
+};
+
+if ($@) {
+ show_error "Cannot connect to server!\nVMware error:".$@;
+ exit 3;
+}
+
+my ($datacenter, $datacenter_view, $vm_views,$vm);
+# We are connected to machine
+
+# If user want's datacenter, we must first find datacenter
+my %filter=(view_type => 'VirtualMachine');
+
+if( defined (Opts::get_option('datacenter')) ) {
+ $datacenter = Opts::get_option('datacenter');
+ $datacenter_view = Vim::find_entity_view(view_type => 'Datacenter',
+ filter => { name => $datacenter });
+ if (!$datacenter_view) {
+ show_error "Cannot find datacenter ".$datacenter."!\n";
+
+ my_exit 4;
+ }
+
+ $filter{'begin_entity'}=$datacenter_view;
+}
+
+if ($operation ne 'list') {
+ $filter{'filter'}= {"config.name" => Opts::get_option('vmname')};
+}
+
+$vm_views = Vim::find_entity_views(%filter);
+
+my $found=0;
+
+# Traverse all found vm
+foreach $vm(@$vm_views) {
+ if (($operation eq 'list') or ($operation eq 'status')) {
+ if (!$vm->summary->config->template) {
+ print convert_field_to_dsv($vm->name).":".
+ convert_field_to_dsv($vm->summary->config->vmPathName).":".
+ convert_field_to_dsv($vm->runtime->powerState->val).":".
+ convert_field_to_dsv($vm->runtime->connectionState->val)."\n";
+ }
+ } elsif ($operation eq 'on') {
+ eval {
+ $vm->PowerOnVM();
+ };
+
+ if ($@) {
+ # If error is SoapFault with InvalidPowerState, user maybe use some auto power on tool.
+ # This is not error, warning is enought.
+ if (ref($@) eq 'SoapFault') {
+ if (ref($@->detail) eq 'InvalidPowerState') {
+ show_error "Warning: Cannot power on vm (somebody done it before???) ".Opts::get_option('vmname').
+ "!\nVMware error:".$@."\n";
+ }
+ } else {
+ # Some other more serious problem
+ show_error "Cannot power on vm ".Opts::get_option('vmname')."!\nVMware error:".$@."\n";
+ my_exit 6;
+ }
+ }
+ } elsif ($operation eq 'off') {
+ eval {
+ $vm->PowerOffVM();
+ };
+
+ if ($@) {
+ # If error is SoapFault with InvalidPowerState, user maybe use some auto power off tool.
+ # This is not error, warning is enought.
+ if (ref($@) eq 'SoapFault') {
+ if (ref($@->detail) eq 'InvalidPowerState') {
+ show_error "Warning: Cannot power off vm (somebody done it before???) ".Opts::get_option('vmname').
+ "!\nVMware error:".$@."\n";
+ }
+ } else {
+ # Some other more serious problem
+ show_error "Cannot power off vm ".Opts::get_option('vmname')."!\nVMware error:".$@."\n";
+ my_exit 6;
+ }
+ }
+ } else {
+ show_error "Operation should be on, off or list!\n";
+ my_exit 2;
+ }
+ $found++;
+}
+
+if ((!$found) && ($operation ne 'list')) {
+ show_error "Cannot find vm ".Opts::get_option('vmname')."!\n";
+ my_exit 5;
+}
+
+# Should be 0 -> success all, or 6 in case of error
+my_exit 0;
+
+__END__
+
+=head1 NAME
+
+fence_vmware_helper - Perform list of virtual machines and
+ poweron, poweroff of operations on virtual machines.
+
+=head1 SYNOPSIS
+
+ fence_vmware_helper --operation <on|off|list|status> [options]
+
+=head1 DESCRIPTION
+
+This VI Perl command-line utility provides an interface for
+seven common provisioning operations on one or more virtual
+machines: powering on, powering off and listing virtual mode.
+
+=head1 OPTIONS
+
+=head2 GENERAL OPTIONS
+
+=over
+
+=item B<operation>
+
+Operation to be performed. One of the following:
+
+ <on> (power on one or more virtual machines),
+ <off> (power off one or more virtual machines),
+ <list> (list virtual machines and their status)
+ <status> (same as list, but show only machines with vmname)
+
+=item B<vmname>
+
+Optional. Name of the virtual machine on which the
+operation is to be performed.
+
+=item B<datacenter>
+
+Optional. Name of the datacenter for the virtual machine(s).
+Operations will be performed on all the virtual machines under the given datacenter.
+
+=back
+
+=head1 EXAMPLES
+
+Power on a virtual machine
+
+ fence_vmware_helper --username administrator --password administrator --operation on
+ --vmname rhel --server win1
+
+ fence_vmware_helper --username administrator --password administrator --operation on
+ --vmname rhel --server win1 --datacenter Datacenter
+
+Power off a virtual machine
+
+ fence_vmware_helper --username administrator --password administrator --operation off
+ --vmname rhel --server win1
+
+ perl fence_vmware_helper --username administrator --password administrator --operation off
+ --vmname rhel --server win1 --datacenter Datacenter
+
+List of virtual machines
+
+ fence_vmware_helper --username administrator --password administrator --server win1
+
+ fence_vmware_helper --username administrator --password administrator --server win1
+ --operation list
+
+Get status of virtual machine
+
+ fence_vmware_helper --username administrator --password administrator --server win1
+ --vmname rhel --operation status
+
+=head1 SUPPORTED PLATFORMS
+
+All operations supported on ESX 3.0.1
+
+All operations supported on Virtual Center 2.0.1
diff --git a/fence/agents/vmware_rest/fence_vmware_rest.py b/fence/agents/vmware_rest/fence_vmware_rest.py
new file mode 100644
index 0000000..b544d38
--- /dev/null
+++ b/fence/agents/vmware_rest/fence_vmware_rest.py
@@ -0,0 +1,183 @@
+#!@PYTHON@ -tt
+
+import sys
+import pycurl, io, json
+import logging
+import atexit
+sys.path.append("@FENCEAGENTSLIBDIR@")
+from fencing import *
+from fencing import fail, run_delay, EC_LOGIN_DENIED, EC_STATUS
+
+state = {"POWERED_ON": "on", 'POWERED_OFF': "off"}
+
+def get_power_status(conn, options):
+ res = send_command(conn, "vcenter/vm?filter.names={}".format(options["--plug"]))["value"]
+
+ if len(res) == 0:
+ fail(EC_STATUS)
+
+ options["id"] = res[0]["vm"]
+
+ result = res[0]["power_state"]
+
+ return state[result]
+
+def set_power_status(conn, options):
+ action = {
+ "on" : "start",
+ "off" : "stop"
+ }[options["--action"]]
+
+ send_command(conn, "vcenter/vm/{}/power/{}".format(options["id"], action), "POST")
+
+def get_list(conn, options):
+ outlets = {}
+
+ res = send_command(conn, "vcenter/vm")
+
+ for r in res["value"]:
+ outlets[r["name"]] = ("", state[r["power_state"]])
+
+ return outlets
+
+def connect(opt):
+ conn = pycurl.Curl()
+
+ ## setup correct URL
+ if "--ssl" in opt or "--ssl-secure" in opt or "--ssl-insecure" in opt:
+ conn.base_url = "https:"
+ else:
+ conn.base_url = "http:"
+ if "--api-path" in opt:
+ api_path = opt["--api-path"]
+ else:
+ api_path = "/rest"
+
+ conn.base_url += "//" + opt["--ip"] + ":" + str(opt["--ipport"]) + api_path + "/"
+
+ ## send command through pycurl
+ conn.setopt(pycurl.HTTPHEADER, [
+ "Accept: application/json",
+ ])
+
+ conn.setopt(pycurl.HTTPAUTH, pycurl.HTTPAUTH_BASIC)
+ conn.setopt(pycurl.USERPWD, opt["--username"] + ":" + opt["--password"])
+
+ conn.setopt(pycurl.TIMEOUT, int(opt["--shell-timeout"]))
+ if "--ssl" in opt or "--ssl-secure" in opt:
+ conn.setopt(pycurl.SSL_VERIFYPEER, 1)
+ conn.setopt(pycurl.SSL_VERIFYHOST, 2)
+
+ if "--ssl-insecure" in opt:
+ conn.setopt(pycurl.SSL_VERIFYPEER, 0)
+ conn.setopt(pycurl.SSL_VERIFYHOST, 0)
+
+ try:
+ result = send_command(conn, "com/vmware/cis/session", "POST")
+ except Exception as e:
+ logging.debug("Failed: {}".format(e))
+ fail(EC_LOGIN_DENIED)
+
+ # set session id for later requests
+ conn.setopt(pycurl.HTTPHEADER, [
+ "Accept: application/json",
+ "vmware-api-session-id: {}".format(result["value"]),
+ ])
+
+ return conn
+
+def disconnect(conn):
+ send_command(conn, "com/vmware/cis/session", "DELETE")
+ conn.close()
+
+def send_command(conn, command, method="GET"):
+ url = conn.base_url + command
+
+ conn.setopt(pycurl.URL, url.encode("ascii"))
+
+ web_buffer = io.BytesIO()
+
+ if method == "GET":
+ conn.setopt(pycurl.POST, 0)
+ if method == "POST":
+ conn.setopt(pycurl.POSTFIELDS, "")
+ if method == "DELETE":
+ conn.setopt(pycurl.CUSTOMREQUEST, "DELETE")
+
+ conn.setopt(pycurl.WRITEFUNCTION, web_buffer.write)
+
+ try:
+ conn.perform()
+ except Exception as e:
+ raise Exception(e[1])
+
+ rc = conn.getinfo(pycurl.HTTP_CODE)
+ result = web_buffer.getvalue().decode()
+
+ web_buffer.close()
+
+ if len(result) > 0:
+ result = json.loads(result)
+
+ if rc != 200:
+ raise Exception("{}: {}".format(rc, result["value"]["messages"][0]["default_message"]))
+
+ logging.debug("url: {}".format(url))
+ logging.debug("method: {}".format(method))
+ logging.debug("response code: {}".format(rc))
+ logging.debug("result: {}\n".format(result))
+
+ return result
+
+def define_new_opts():
+ all_opt["api_path"] = {
+ "getopt" : ":",
+ "longopt" : "api-path",
+ "help" : "--api-path=[path] The path part of the API URL",
+ "default" : "/rest",
+ "required" : "0",
+ "shortdesc" : "The path part of the API URL",
+ "order" : 2}
+
+
+def main():
+ device_opt = [
+ "ipaddr",
+ "api_path",
+ "login",
+ "passwd",
+ "ssl",
+ "notls",
+ "web",
+ "port",
+ ]
+
+ atexit.register(atexit_handler)
+ define_new_opts()
+
+ all_opt["shell_timeout"]["default"] = "5"
+ all_opt["power_wait"]["default"] = "1"
+
+ options = check_input(device_opt, process_input(device_opt))
+
+ docs = {}
+ docs["shortdesc"] = "Fence agent for VMware REST API"
+ docs["longdesc"] = "fence_vmware_rest is an I/O Fencing agent which can be \
+used with VMware API to fence virtual machines."
+ docs["vendorurl"] = "https://www.vmware.com"
+ show_docs(options, docs)
+
+ ####
+ ## Fence operations
+ ####
+ run_delay(options)
+
+ conn = connect(options)
+ atexit.register(disconnect, conn)
+
+ result = fence_action(conn, options, set_power_status, get_power_status, get_list)
+
+ sys.exit(result)
+
+if __name__ == "__main__":
+ main()
diff --git a/fence/agents/vmware_soap/fence_vmware_soap.py b/fence/agents/vmware_soap/fence_vmware_soap.py
index 93f9658..6a3b592 100644
--- a/fence/agents/vmware_soap/fence_vmware_soap.py
+++ b/fence/agents/vmware_soap/fence_vmware_soap.py
@@ -14,12 +14,6 @@ from fencing import *
from fencing import fail, fail_usage, EC_STATUS, EC_LOGIN_DENIED, EC_INVALID_PRIVILEGES, EC_WAITING_ON, EC_WAITING_OFF
from fencing import run_delay
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="New VMWare Agent - test release on steroids"
-REDHAT_COPYRIGHT=""
-BUILD_DATE="April, 2011"
-#END_VERSION_GENERATION
-
options_global = None
conn_global = None
@@ -42,7 +36,10 @@ def soap_login(options):
if "--ssl" in options or "--ssl-secure" in options or "--ssl-insecure" in options:
if "--ssl-insecure" in options:
+ import ssl
from requests.packages.urllib3.exceptions import InsecureRequestWarning
+ if hasattr(ssl, '_create_unverified_context'):
+ ssl._create_default_https_context = ssl._create_unverified_context
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
verify = False
else:
diff --git a/fence/agents/vmware_vcloud/fence_vmware_vcloud.py b/fence/agents/vmware_vcloud/fence_vmware_vcloud.py
new file mode 100644
index 0000000..7be0775
--- /dev/null
+++ b/fence/agents/vmware_vcloud/fence_vmware_vcloud.py
@@ -0,0 +1,211 @@
+#!@PYTHON@ -tt
+
+import sys
+import pycurl, io
+import logging
+import atexit
+import xml.etree.ElementTree as etree
+sys.path.append("@FENCEAGENTSLIBDIR@")
+from fencing import *
+from fencing import fail, run_delay, EC_LOGIN_DENIED, EC_STATUS
+
+state = {"POWERED_ON": "on", 'POWERED_OFF': "off", 'SUSPENDED': "off"}
+
+def get_power_status(conn, options):
+ try:
+ VM = send_command(conn, "vApp/vm-{}".format(options["--plug"]))
+ except Exception as e:
+ logging.debug("Failed: {}".format(e))
+ fail(EC_STATUS)
+
+ options["id"] = VM.attrib['href'].split('/vm-', 1)[1]
+
+ if (VM.attrib['status'] == '3'):
+ return state['SUSPENDED']
+ elif (VM.attrib['status'] == '4'):
+ return state['POWERED_ON']
+ elif (VM.attrib['status'] == '8'):
+ return state['POWERED_OFF']
+ return EC_STATUS
+
+
+def set_power_status(conn, options):
+ action = {
+ "on" : "powerOn",
+ "off" : "powerOff",
+ "shutdown": "shutdown",
+ "suspend": "suspend",
+ "reset": "reset"
+ }[options["--action"]]
+ try:
+ VM = send_command(conn, "vApp/vm-{}/power/action/{}".format(options["--plug"], action), "POST")
+ except Exception as e:
+ logging.debug("Failed: {}".format(e))
+ fail(EC_STATUS)
+
+def get_list(conn, options):
+ outlets = {}
+
+ VMsResponse = send_command(conn, "vms/query")
+
+ for VM in VMsResponse.iter('{http://www.vmware.com/vcloud/v1.5}VMRecord'):
+ if '/vApp/' not in VM.attrib['href']:
+ continue
+ uuid = (VM.attrib['href'].split('/vm-', 1))[1]
+ outlets['['+ uuid + '] ' + VM.attrib['containerName'] + '\\' + VM.attrib['name']] = (VM.attrib['status'], state[VM.attrib['status']])
+
+ return outlets
+
+def connect(opt):
+ conn = pycurl.Curl()
+
+ ## setup correct URL
+ if "--ssl" in opt or "--ssl-secure" in opt or "--ssl-insecure" in opt:
+ conn.base_url = "https:"
+ else:
+ conn.base_url = "http:"
+
+ conn.base_url += "//" + opt["--ip"] + ":" + str(opt["--ipport"]) + opt["--api-path"] + "/"
+
+ ## send command through pycurl
+ conn.setopt(pycurl.HTTPHEADER, [
+ "Accept: application/*+xml;version=1.5",
+ ])
+
+ conn.setopt(pycurl.HTTPAUTH, pycurl.HTTPAUTH_BASIC)
+ conn.setopt(pycurl.USERPWD, opt["--username"] + ":" + opt["--password"])
+
+ conn.setopt(pycurl.TIMEOUT, int(opt["--shell-timeout"]))
+ if "--ssl" in opt or "--ssl-secure" in opt:
+ conn.setopt(pycurl.SSL_VERIFYPEER, 1)
+ conn.setopt(pycurl.SSL_VERIFYHOST, 2)
+ elif "--ssl-insecure" in opt:
+ conn.setopt(pycurl.SSL_VERIFYPEER, 0)
+ conn.setopt(pycurl.SSL_VERIFYHOST, 0)
+
+ headers = {}
+ try:
+ result = send_command(conn, "sessions", "POST", headers)
+ except Exception as e:
+ logging.debug("Failed: {}".format(e))
+ fail(EC_LOGIN_DENIED)
+
+ # set session id for later requests
+ conn.setopt(pycurl.HTTPHEADER, [
+ "Accept: application/*+xml;version=1.5",
+ "x-vcloud-authorization: {}".format(headers['x-vcloud-authorization']),
+ ])
+
+ return conn
+
+def disconnect(conn):
+ send_command(conn, "session", "DELETE")
+ conn.close()
+
+def parse_headers(data):
+ headers = {}
+ data = data.split("\r\n")
+ for header_line in data[1:]:
+ if ':' not in header_line:
+ break
+ name, value = header_line.split(':', 1)
+ name = name.strip()
+ value = value.strip()
+ name = name.lower()
+ headers[name] = value
+
+ return headers
+
+def send_command(conn, command, method="GET", headers={}):
+ url = conn.base_url + command
+
+ conn.setopt(pycurl.URL, url.encode("ascii"))
+
+ web_buffer = io.BytesIO()
+ headers_buffer = io.BytesIO()
+
+ if method == "GET":
+ conn.setopt(pycurl.POST, 0)
+ elif method == "POST":
+ conn.setopt(pycurl.POSTFIELDS, "")
+ elif method == "DELETE":
+ conn.setopt(pycurl.CUSTOMREQUEST, "DELETE")
+
+ conn.setopt(pycurl.WRITEFUNCTION, web_buffer.write)
+ conn.setopt(pycurl.HEADERFUNCTION, headers_buffer.write)
+
+ try:
+ conn.perform()
+ except Exception as e:
+ raise Exception(e[1])
+
+ rc = conn.getinfo(pycurl.HTTP_CODE)
+ result = web_buffer.getvalue().decode()
+ headers.update(parse_headers(headers_buffer.getvalue().decode()))
+
+ headers_buffer.close()
+ web_buffer.close()
+
+ if len(result) > 0:
+ result = etree.fromstring(result)
+
+ if rc != 200 and rc != 202 and rc != 204:
+ raise Exception("{}: {}".format(rc, result["value"]["messages"][0]["default_message"]))
+
+ logging.debug("url: {}".format(url))
+ logging.debug("method: {}".format(method))
+ logging.debug("response code: {}".format(rc))
+ logging.debug("result: {}\n".format(result))
+
+ return result
+
+def define_new_opts():
+ all_opt["api_path"] = {
+ "getopt" : ":",
+ "longopt" : "api-path",
+ "help" : "--api-path=[path] The path part of the API URL",
+ "default" : "/api",
+ "required" : "0",
+ "shortdesc" : "The path part of the API URL",
+ "order" : 2}
+
+def main():
+ device_opt = [
+ "ipaddr",
+ "api_path",
+ "login",
+ "passwd",
+ "ssl",
+ "notls",
+ "web",
+ "port",
+ ]
+
+ atexit.register(atexit_handler)
+ define_new_opts()
+
+ all_opt["shell_timeout"]["default"] = "5"
+ all_opt["power_wait"]["default"] = "1"
+
+ options = check_input(device_opt, process_input(device_opt))
+
+ docs = {}
+ docs["shortdesc"] = "Fence agent for VMware vCloud Director API"
+ docs["longdesc"] = "fence_vmware_vcloud is an I/O Fencing agent which can be used with VMware vCloud Director API to fence virtual machines."
+ docs["vendorurl"] = "https://www.vmware.com"
+ show_docs(options, docs)
+
+ ####
+ ## Fence operations
+ ####
+ run_delay(options)
+
+ conn = connect(options)
+ atexit.register(disconnect, conn)
+
+ result = fence_action(conn, options, set_power_status, get_power_status, get_list)
+
+ sys.exit(result)
+
+if __name__ == "__main__":
+ main()
diff --git a/fence/agents/wti/fence_wti.py b/fence/agents/wti/fence_wti.py
index a7b2f0d..68640ae 100644
--- a/fence/agents/wti/fence_wti.py
+++ b/fence/agents/wti/fence_wti.py
@@ -18,12 +18,6 @@ sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
from fencing import fspawn, fail, fail_usage, EC_LOGIN_DENIED
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="New WTI Agent - test release on steroids"
-REDHAT_COPYRIGHT=""
-BUILD_DATE="March, 2008"
-#END_VERSION_GENERATION
-
def get_listing(conn, options, listing_command):
listing = ""
diff --git a/fence/agents/xenapi/fence_xenapi.py b/fence/agents/xenapi/fence_xenapi.py
index ccddf2d..7b91683 100644
--- a/fence/agents/xenapi/fence_xenapi.py
+++ b/fence/agents/xenapi/fence_xenapi.py
@@ -38,12 +38,6 @@ from fencing import *
from fencing import run_delay
import XenAPI
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION=""
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
EC_BAD_SESSION = 1
# Find the status of the port given in the -U flag of options.
def get_power_fn(session, options):
diff --git a/fence/agents/zvm/fence_zvm.8 b/fence/agents/zvm/fence_zvm.8
deleted file mode 100644
index 359436e..0000000
--- a/fence/agents/zvm/fence_zvm.8
+++ /dev/null
@@ -1,87 +0,0 @@
-.TH fence_zvm 8
-
-.SH NAME
-fence_zvm - Power Fencing agent for GFS on System z z/VM Clusters
-
-.SH SYNOPSIS
-.B
-fence_zvm
-[\fIOPTION\fR]...
-
-.SH DESCRIPTION
-fence_zvm is a Power Fencing agent used on a GFS virtual machine in a System z z/VM cluster.
-It uses the SMAPI interface to recycle an active image.
-
-fence_zvm accepts options on the command line as well as from stdin.
-fence_node sends the options through stdin when it execs the agent.
-fence_zvm can be run by itself with command line options which is useful
-for testing.
-
-Vendor URL: http://www.sinenomine.net
-
-.SH OPTIONS
-.TP
-\fB-o --action\fP
-Fencing action: "off" - deactivate virtual machine; "on" - activate virtual machine; "metadata" - display device metadata" - describe fence agent parameters; "status" - state of virtual machine
-.TP
-\fB--delay\fP \fIseconds\fP
-Time to delay fencing action in seconds
-.TP
-\fB-n --plug\fP \fItarget\fP
-Name of virtual machine to recycle.
-.TP
-\fB-h --help\fP
-Print out a help message describing available options, then exit.
-.TP
-\fB-a --ip\fP \fIsmapi Server\fP
-\fBName\fP of SMAPI server virtual machine. To be consistent with other fence agents this name is a little misleading: it is the name of the virtual machine not its IP address or hostname.
-.TP
-\fB--zvmsys\fP \fIz/VM System\fP
-\fBName\fP of z/VM on which the SMAPI server virtual machine resides. Optional - defaults to system on which the node is running.
-.TP
-\fB-h --help\fP
-Display usage information
-.TP
-\fI-t --timeout = < shutdown timeout >\fP
-Amount of \fIgrace\fP time to give the virtual machine to shutdown cleanly before being
-forcibly terminated. Currently, this option is ignored.
-
-.SH STDIN PARAMETERS
-.TP
-\fIagent = < param >\fP
-This option is used by fence_node(8) and is ignored by fence_zvm.
-.TP
-\fIaction = < action >\fP
-Fencing action: "off" - fence off device; "metadata" - display device metadata; "status" - state of device
-.TP
-\fIport = < target >\fP
-Name of virtual machine to recycle.
-.TP
-\fIipaddr= < server name >\fP
-\fBName\fP of SMAPI server virtual machine. To be consistent with other fence agents thisname is a little misleading: it is the name of the virtual machine not its IP address or hostname.
-.TP
-\fItimeout = < shutdown timeout >\fP
-Amount of \fIgrace\fP time to give the virtual machine to shutdown cleanly before being
-forcibly terminated. Currently, this option is ignored.
-
-.SH SEE ALSO
-fence(8), fenced(8), fence_node(8)
-
-.SH NOTES
-To use this agent the z/VM SMAPI service needs to be configured to allow the virtual
-machine running this agent to connect to it and issue the image_recycle operation.
-This involves updating the VSMWORK1 AUTHLIST VMSYS:VSMWORK1. file. The entry should look
-something similar to this:
-
-.nf
-Column 1 Column 66 Column 131
-| | |
-V V V
-XXXXXXXX ALL IMAGE_OPERATIONS
-.fi
-
-Where XXXXXXX is the name of the virtual machine where the agent resides.
-
-In addition, the VM directory entry that defines this virtual machine requires the
-IUCV ANY statement (or IUCV <userid of SMAPI Server>). This authorizes use of IUCV
-to connect to the SMAPI server.
diff --git a/fence/agents/zvm/fence_zvm.c b/fence/agents/zvm/fence_zvm.c
index dcd00c8..9158b58 100644
--- a/fence/agents/zvm/fence_zvm.c
+++ b/fence/agents/zvm/fence_zvm.c
@@ -25,6 +25,7 @@
#ifdef __s390__
#include <stdio.h>
#include <stdlib.h>
+#include <stdint.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
diff --git a/fence/agents/zvm/fence_zvm_man_page b/fence/agents/zvm/fence_zvm_man_page
index 359436e..057cc6d 100644
--- a/fence/agents/zvm/fence_zvm_man_page
+++ b/fence/agents/zvm/fence_zvm_man_page
@@ -77,10 +77,11 @@ something similar to this:
Column 1 Column 66 Column 131
| | |
V V V
-XXXXXXXX ALL IMAGE_OPERATIONS
+XXXXXXXX ALL IMAGE_CHARACTERISTICS
.fi
-Where XXXXXXX is the name of the virtual machine where the agent resides.
+Where XXXXXXX is the name of the virtual machine used in the authuser field of the request. This virtual machine also has to be authorized
+to access the system's directory manager.
In addition, the VM directory entry that defines this virtual machine requires the
IUCV ANY statement (or IUCV <userid of SMAPI Server>). This authorizes use of IUCV
diff --git a/fence/agents/zvm/fence_zvm.c b/fence/agents/zvm/fence_zvmip.c
similarity index 73%
copy from fence/agents/zvm/fence_zvm.c
copy to fence/agents/zvm/fence_zvmip.c
index dcd00c8..b16de48 100644
--- a/fence/agents/zvm/fence_zvm.c
+++ b/fence/agents/zvm/fence_zvmip.c
@@ -1,5 +1,5 @@
/*
- * fence_zvm.c: SMAPI interface for managing zVM Guests
+ * fence_zvmip.c: SMAPI interface for managing zVM Guests
*
* Copyright (C) 2012 Sine Nomine Associates
*
@@ -22,11 +22,10 @@
*
*/
-#ifdef __s390__
#include <stdio.h>
#include <stdlib.h>
-#include <string.h>
#include <unistd.h>
+#include <string.h>
#include <fcntl.h>
#include <sys/types.h>
#include <dirent.h>
@@ -49,7 +48,7 @@
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define DEFAULT_TIMEOUT 300
-#define DEFAULT_DELAY 0
+#define DEFAULT_DELAY 0
#define ACT_OFFON 0
#define ACT_OFF 1
@@ -64,16 +63,17 @@ static int zvm_smapi_reportError(void *, void *);
static struct option longopts[] = {
{"action", required_argument, NULL, 'o'},
- {"delay", required_argument, NULL, 'h'},
+ {"delay", required_argument, NULL, 'd'},
{"help", no_argument, NULL, 'h'},
- {"ip", required_argument, NULL, 'a'},
+ {"ipaddr", required_argument, NULL, 'a'},
+ {"password", required_argument, NULL, 'p'},
{"plug", required_argument, NULL, 'n'},
- {"timeout", required_argument, NULL, 'T'},
- {"zvmsys", required_argument, NULL, 'z'},
+ {"timeout", required_argument, NULL, 't'},
+ {"username", required_argument, NULL, 'u'},
{NULL, 0, NULL, 0}
};
-static const char *optString = "a:ho:n:T:";
+static const char *optString = "a:o:hn:p:t:u:";
static int zvm_metadata(void);
static int usage(void);
@@ -87,31 +87,29 @@ static int usage(void);
int
zvm_smapi_open(zvm_driver_t *zvm)
{
- int rc = -1,
- sockaddrlen;
- static char iucvprog[9] = "DMSRSRQU\0";
- struct sockaddr_iucv siucv_addr;
- const struct sockaddr *siucv_ptr = (void *) &siucv_addr;
-
- if ((zvm->sd = socket(AF_IUCV, SOCK_STREAM, IPPROTO_IP)) != -1) {
- memset(&siucv_addr,0,sizeof(siucv_addr));
- siucv_addr.siucv_family = AF_IUCV;
- siucv_addr.siucv_port = 0;
- siucv_addr.siucv_addr = 0;
- memset(&siucv_addr.siucv_nodeid,' ',8);
- memset(&siucv_addr.siucv_user_id,' ',8);
- memset(&siucv_addr.siucv_name,' ',8);
- sockaddrlen = sizeof(siucv_addr);
- if ((rc = bind(zvm->sd,siucv_ptr,sockaddrlen)) != -1) {
- memcpy(&siucv_addr.siucv_user_id,zvm->smapiSrv,strlen(zvm->smapiSrv));
- memcpy(&siucv_addr.siucv_name,&iucvprog,8);
- memcpy(&siucv_addr.siucv_nodeid,zvm->node,strlen(zvm->node));
- rc = connect(zvm->sd,(__CONST_SOCKADDR_ARG)siucv_ptr,sockaddrlen);
- }
- if (rc == -1) {
- syslog(LOG_ERR, "Error connecting to %s - %m", zvm->smapiSrv);
- close(zvm->sd);
+ int rc = -1,
+ option = SO_REUSEADDR,
+ optVal = 1,
+ lOption = sizeof(optVal);
+ struct addrinfo hints, *ai;
+
+ hints.ai_family = AF_UNSPEC;
+ hints.ai_socktype = SOCK_STREAM;
+ hints.ai_flags = AI_PASSIVE;
+ hints.ai_protocol = IPPROTO_TCP;
+ if ((rc = getaddrinfo(zvm->smapiSrv, "44444", &hints, &ai)) == 0) {
+ if ((zvm->sd = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol)) != -1) {
+ rc = setsockopt(zvm->sd,SOL_SOCKET,option,&optVal,lOption);
+
+ if ((rc = connect(zvm->sd, ai->ai_addr, ai->ai_addrlen)) == -1) {
+ syslog(LOG_ERR, "Error connecting to %s - %m", zvm->smapiSrv);
+ close(zvm->sd);
+ }
+ } else {
+ syslog(LOG_ERR, "Error creating socket - %m");
}
+ } else {
+ syslog(LOG_ERR, "Error resolving server address: %s", gai_strerror(rc));
}
return(rc);
}
@@ -129,11 +127,19 @@ zvm_smapi_imageRecycle(zvm_driver_t *zvm)
int32_t lPlist;
int32_t lFName;
char fName[13];
- int32_t lUser;
- int32_t lPass;
+ } __attribute__ ((packed)) *inPlist;
+ struct _authUser {
+ int32_t lAuthUser;
+ char userId[0];
+ } __attribute__ ((packed)) *authUser;
+ struct _authPass {
+ int32_t lAuthPass;
+ char password[0];
+ } __attribute__ ((packed)) *authPass;
+ struct _image {
int32_t lTarget;
- char target[0];
- } __attribute__ ((__packed__)) *inPlist;
+ char target[0];
+ } __attribute__ ((packed)) *image;
int32_t lInPlist;
struct _outPlist {
smapiOutHeader_t hdr;
@@ -153,15 +159,25 @@ zvm_smapi_imageRecycle(zvm_driver_t *zvm)
if (zvm->delay > 0)
sleep(zvm->delay);
- lInPlist = sizeof(*inPlist) + strlen(zvm->target);
+ lInPlist = sizeof(*inPlist) + sizeof(*authUser) + strlen(zvm->authUser) +
+ sizeof(*authPass) + strlen(zvm->authPass) + sizeof(*image) +
+ + strlen(zvm->target);
inPlist = malloc(lInPlist);
if (inPlist != NULL) {
+ authUser = (void *) ((uintptr_t) inPlist + sizeof(*inPlist));
+ authPass = (void *) ((uintptr_t) authUser + sizeof(*authUser) +
+ strlen(zvm->authUser));
+ image = (void *) ((uintptr_t) authPass + sizeof(*authPass) +
+ strlen(zvm->authPass));
inPlist->lPlist = lInPlist - sizeof(inPlist->lPlist);
inPlist->lFName = sizeof(inPlist->fName);
memcpy(inPlist->fName, Image_Recycle, sizeof(inPlist->fName));
- inPlist->lUser = inPlist->lPass = 0;
- inPlist->lTarget = strlen(zvm->target);
- memcpy(inPlist->target, zvm->target, inPlist->lTarget);
+ authUser->lAuthUser = strlen(zvm->authUser);
+ memcpy(authUser->userId, zvm->authUser, strlen(zvm->authUser));
+ authPass->lAuthPass = strlen(zvm->authPass);
+ memcpy(authPass->password, zvm->authPass, strlen(zvm->authPass));
+ image->lTarget = strlen(zvm->target);
+ strncpy(image->target, zvm->target, strlen(zvm->target));
if ((rc = zvm_smapi_send(zvm, inPlist, &reqId, lInPlist)) != -1) {
if ((rc = zvm_smapi_recv(zvm, &pOut, &lRsp)) != -1) {
outPlist = pOut;
@@ -170,15 +186,15 @@ zvm_smapi_imageRecycle(zvm_driver_t *zvm)
zvm->target);
rc = 0;
} else {
- if ((outPlist->hdr.rc == RCERR_IMAGEOP) &
- ((outPlist->hdr.reason == RS_NOT_ACTIVE) |
- (outPlist->hdr.reason == RS_BEING_DEACT))) {
+ if ((ntohl(outPlist->hdr.rc) == RCERR_IMAGEOP) &
+ ((ntohl(outPlist->hdr.reason) == RS_NOT_ACTIVE) |
+ (ntohl(outPlist->hdr.reason) == RS_BEING_DEACT))) {
syslog(LOG_INFO, "Recycling of %s successful",
zvm->target);
rc = 0;
} else {
- rc = outPlist->hdr.rc;
- zvm->reason = outPlist->hdr.reason;
+ rc = ntohl(outPlist->hdr.rc);
+ zvm->reason = ntohl(outPlist->hdr.reason);
(void) zvm_smapi_reportError(inPlist, outPlist);
}
}
@@ -206,11 +222,19 @@ zvm_smapi_imageDeactivate(zvm_driver_t *zvm)
int32_t lPlist;
int32_t lFName;
char fName[16];
- int32_t lUser;
- int32_t lPass;
+ } __attribute__ ((packed)) *inPlist;
+ struct _authUser {
+ int32_t lAuthUser;
+ char userId[0];
+ } __attribute__ ((packed)) *authUser;
+ struct _authPass {
+ int32_t lAuthPass;
+ char password[0];
+ } __attribute__ ((packed)) *authPass;
+ struct _image {
int32_t lTarget;
- char target[0];
- } __attribute__ ((__packed__)) *inPlist;
+ char target[0];
+ } __attribute__ ((packed)) *image;
struct _deactTime {
int32_t lForceTime;
char forceTime[5];
@@ -234,18 +258,29 @@ zvm_smapi_imageDeactivate(zvm_driver_t *zvm)
if (zvm->delay > 0)
sleep(zvm->delay);
- lInPlist = sizeof(*inPlist) + strlen(zvm->target) + sizeof(*deactTime);
+ lInPlist = sizeof(*inPlist) + sizeof(*authUser) + strlen(zvm->authUser) +
+ sizeof(*authPass) + strlen(zvm->authPass) + sizeof(*image) +
+ sizeof(*deactTime) + strlen(zvm->target);
inPlist = malloc(lInPlist);
if (inPlist != NULL) {
+ authUser = (void *) ((uintptr_t) inPlist + sizeof(*inPlist));
+ authPass = (void *) ((uintptr_t) authUser + sizeof(*authUser) +
+ strlen(zvm->authUser));
+ image = (void *) ((uintptr_t) authPass + sizeof(*authPass) +
+ strlen(zvm->authPass));
+ deactTime = (void *) ((intptr_t) image + sizeof(*image) +
+ strlen(zvm->target));
inPlist->lPlist = lInPlist - sizeof(inPlist->lPlist);
inPlist->lFName = sizeof(inPlist->fName);
memcpy(inPlist->fName, Image_Deactivate, sizeof(inPlist->fName));
- deactTime = (void *) ((intptr_t) inPlist + sizeof(*inPlist) + strlen(zvm->target));
+ authUser->lAuthUser = strlen(zvm->authUser);
+ memcpy(authUser->userId, zvm->authUser, strlen(zvm->authUser));
+ authPass->lAuthPass = strlen(zvm->authPass);
+ memcpy(authPass->password, zvm->authPass, strlen(zvm->authPass));
+ image->lTarget = strlen(zvm->target);
+ memcpy(image->target, zvm->target, strlen(zvm->target));
deactTime->lForceTime = sizeof(deactTime->forceTime);
memcpy(deactTime->forceTime, "IMMED", sizeof(deactTime->forceTime));
- inPlist->lUser = inPlist->lPass = 0;
- inPlist->lTarget = strlen(zvm->target);
- memcpy(inPlist->target, zvm->target, inPlist->lTarget);
if ((rc = zvm_smapi_send(zvm, inPlist, &reqId, lInPlist)) != -1) {
if ((rc = zvm_smapi_recv(zvm, &pOut, &lRsp)) != -1) {
outPlist = pOut;
@@ -290,11 +325,19 @@ zvm_smapi_imageActivate(zvm_driver_t *zvm)
int32_t lPlist;
int32_t lFName;
char fName[14];
- int32_t lUser;
- int32_t lPass;
+ } __attribute__ ((packed)) *inPlist;
+ struct _authUser {
+ int32_t lAuthUser;
+ char userId[0];
+ } __attribute__ ((packed)) *authUser;
+ struct _authPass {
+ int32_t lAuthPass;
+ char password[0];
+ } __attribute__ ((packed)) *authPass;
+ struct _image {
int32_t lTarget;
- char target[0];
- } __attribute__ ((__packed__)) *inPlist;
+ char target[0];
+ } __attribute__ ((packed)) *image;
int32_t lInPlist;
struct _outPlist {
smapiOutHeader_t hdr;
@@ -314,15 +357,25 @@ zvm_smapi_imageActivate(zvm_driver_t *zvm)
if (zvm->delay > 0)
sleep(zvm->delay);
- lInPlist = sizeof(*inPlist) + strlen(zvm->target);
+ lInPlist = sizeof(*inPlist) + sizeof(*authUser) + strlen(zvm->authUser) +
+ sizeof(*authPass) + strlen(zvm->authPass) + sizeof(*image) +
+ strlen(zvm->target);
inPlist = malloc(lInPlist);
if (inPlist != NULL) {
+ authUser = (void *) ((uintptr_t) inPlist + sizeof(*inPlist));
+ authPass = (void *) ((uintptr_t) authUser + sizeof(*authUser) +
+ strlen(zvm->authUser));
+ image = (void *) ((uintptr_t) authPass + sizeof(*authPass) +
+ strlen(zvm->authPass));
inPlist->lPlist = lInPlist - sizeof(inPlist->lPlist);
inPlist->lFName = sizeof(inPlist->fName);
memcpy(inPlist->fName, Image_Activate, sizeof(inPlist->fName));
- inPlist->lUser = inPlist->lPass = 0;
- inPlist->lTarget = strlen(zvm->target);
- memcpy(inPlist->target, zvm->target, inPlist->lTarget);
+ authUser->lAuthUser = strlen(zvm->authUser);
+ memcpy(authUser->userId, zvm->authUser, strlen(zvm->authUser));
+ authPass->lAuthPass = strlen(zvm->authPass);
+ memcpy(authPass->password, zvm->authPass, strlen(zvm->authPass));
+ image->lTarget = strlen(zvm->target);
+ memcpy(image->target, zvm->target, strlen(zvm->target));
if ((rc = zvm_smapi_send(zvm, inPlist, &reqId, lInPlist)) != -1) {
if ((rc = zvm_smapi_recv(zvm, &pOut, &lRsp)) != -1) {
outPlist = pOut;
@@ -498,6 +551,7 @@ zvm_smapi_recv(zvm_driver_t *zvm, void **rsp, int32_t *lRsp)
* Get response length
*/
if ((rc = recv(zvm->sd,lRsp,sizeof(*lRsp),0)) != -1) {
+ *lRsp = ntohl(*lRsp);
lRem = *lRsp;
if (*rsp == NULL)
*rsp = malloc(*lRsp + sizeof(out->outLen));
@@ -557,7 +611,7 @@ zvm_smapi_reportError(void *inHdr, void *oHdr)
memset(fName, 0, sizeof(fName));
memcpy(fName, inParm->fName, inParm->lFName);
syslog(LOG_ERR, "%s - returned (%d,%d)",
- fName, outHdr->rc, outHdr->reason);
+ fName, ntohl(outHdr->rc), ntohl(outHdr->reason));
return(-1);
}
@@ -594,84 +648,6 @@ trim(char *str)
}
/**
- * zvm_metadata - Show fence metadata
- * @self - Path to this executable
- *
- */
-static int
-zvm_metadata()
-{
- fprintf (stdout, "<?xml version=\"1.0\" ?>\n");
- fprintf (stdout, "<resource-agent name=\"fence_zvm\"");
- fprintf (stdout, " shortdesc=\"Fence agent for use with z/VM Virtual Machines\">\n");
- fprintf (stdout, "<longdesc>");
- fprintf (stdout, "The fence_zvm agent is intended to be used with with z/VM SMAPI service.");
- fprintf (stdout, "</longdesc>\n");
- fprintf (stdout, "<vendor-url>http://www.ibm.com</vendor-url>\n");
-
- fprintf (stdout, "<parameters>\n");
-
- fprintf (stdout, "\t<parameter name=\"port\" unique=\"1\" required=\"1\">\n");
- fprintf (stdout, "\t\t<getopt mixed=\"-n, --plug\" />\n");
- fprintf (stdout, "\t\t<content type=\"string\" />\n");
- fprintf (stdout, "\t\t<shortdesc lang=\"en\">%s</shortdesc>\n",
- "Name of the Virtual Machine to be fenced");
- fprintf (stdout, "\t</parameter>\n");
-
- fprintf (stdout, "\t<parameter name=\"ipaddr\" unique=\"1\" required=\"1\">\n");
- fprintf (stdout, "\t\t<getopt mixed=\"-a, --ip\" />\n");
- fprintf (stdout, "\t\t<content type=\"string\" />\n");
- fprintf (stdout, "\t\t<shortdesc lang=\"en\">%s</shortdesc>\n",
- "Name of the SMAPI IUCV Server Virtual Machine");
- fprintf (stdout, "\t</parameter>\n");
-
- fprintf (stdout, "\t<parameter name=\"zvmsys\" unique=\"1\" required=\"0\">\n");
- fprintf (stdout, "\t\t<getopt mixed=\"--zvmsys\" />\n");
- fprintf (stdout, "\t\t<content type=\"string\" />\n");
- fprintf (stdout, "\t\t<shortdesc lang=\"en\">%s</shortdesc>\n",
- "Node of the SMAPI IUCV Server Virtual Machine");
- fprintf (stdout, "\t</parameter>\n");
-
- fprintf (stdout, "\t<parameter name=\"action\" unique=\"1\" required=\"0\">\n");
- fprintf (stdout, "\t\t<getopt mixed=\"-o, --action\" />\n");
- fprintf (stdout, "\t\t<content type=\"string\" default=\"off\" />\n");
- fprintf (stdout, "\t\t<shortdesc lang=\"en\">%s</shortdesc>\n",
- "Fencing action");
- fprintf (stdout, "\t</parameter>\n");
-
- fprintf (stdout, "\t<parameter name=\"delay\" unique=\"1\" required=\"0\">\n");
- fprintf (stdout, "\t\t<getopt mixed=\"--delay\" />\n");
- fprintf (stdout, "\t\t<content type=\"string\" default=\"0\" />\n");
- fprintf (stdout, "\t\t<shortdesc lang=\"en\">%s</shortdesc>\n",
- "Time to delay fencing action in seconds");
- fprintf (stdout, "\t</parameter>\n");
-
- fprintf (stdout, "\t<parameter name=\"usage\" unique=\"1\" required=\"0\">\n");
- fprintf (stdout, "\t\t<getopt mixed=\"-h, --help\" />\n");
- fprintf (stdout, "\t\t<content type=\"boolean\" />\n");
- fprintf (stdout, "\t\t<shortdesc lang=\"en\">%s</shortdesc>\n",
- "Print usage");
- fprintf (stdout, "\t</parameter>\n");
-
- fprintf (stdout, "</parameters>\n");
-
- fprintf (stdout, "<actions>\n");
- fprintf (stdout, "\t<action name=\"off\" />\n");
- fprintf (stdout, "\t<action name=\"on\" automatic=\"0\" />\n");
- fprintf (stdout, "\t<action name=\"list\" />\n");
- fprintf (stdout, "\t<action name=\"metadata\" />\n");
- fprintf (stdout, "\t<action name=\"monitor\" />\n");
- fprintf (stdout, "\t<action name=\"reboot\" />\n");
- fprintf (stdout, "\t<action name=\"status\" />\n");
- fprintf (stdout, "</actions>\n");
-
- fprintf (stdout, "</resource-agent>\n");
-
- return(0);
-
-}
-
-/**
* get_options_stdin - get options from stdin
* @zvm - Pointer to driver information
*
@@ -684,7 +660,6 @@ get_options_stdin (zvm_driver_t *zvm)
*opt,
*arg;
int32_t lSrvName,
- lSrvNode,
lTarget;
int fence = ACT_OFFON;
@@ -727,32 +702,28 @@ get_options_stdin (zvm_driver_t *zvm)
fence = ACT_HELP;
}
} else if (!strcasecmp (opt, "ipaddr")) {
- lSrvName = MIN(strlen(arg), sizeof(zvm->smapiSrv));
+ lSrvName = MIN(strlen(arg), sizeof(zvm->smapiSrv)-1);
memcpy(zvm->smapiSrv, arg, lSrvName);
continue;
+ } else if (!strcasecmp (opt, "login")) {
+ lSrvName = MIN(strlen(arg), sizeof(zvm->authUser)-1);
+ memcpy(zvm->authUser, arg, lSrvName);
+ continue;
+ } else if (!strcasecmp (opt, "passwd")) {
+ lSrvName = MIN(strlen(arg), sizeof(zvm->authPass)-1);
+ memcpy(zvm->authPass, arg, lSrvName);
+ continue;
} else if (!strcasecmp (opt, "port")) {
lTarget = MIN(strlen(arg), sizeof(zvm->target)-1);
strncpy(zvm->target, arg, lTarget);
continue;
- } else if (!strcasecmp (opt, "timeout")) {
+ } if (!strcasecmp (opt, "timeout")) {
zvm->timeOut = strtoul(arg, &endPtr, 10);
if (*endPtr != 0) {
syslog(LOG_WARNING, "Invalid timeout value specified %s "
"defaulting to %d",
- arg, DEFAULT_DELAY);
- zvm->timeOut = DEFAULT_DELAY;
- }
- } else if (!strcasecmp (opt, "zvmsys")) {
- lSrvNode = MIN(strlen(arg), sizeof(zvm->node));
- memcpy(zvm->node, arg, lSrvNode);
- continue;
- } else if (!strcasecmp (opt, "delay")) {
- zvm->delay = strtoul(arg, &endPtr, 10);
- if (*endPtr != 0) {
- syslog(LOG_WARNING, "Invalid delay value specified %s "
- "defaulting to %d",
- arg, DEFAULT_DELAY);
- zvm->delay = DEFAULT_DELAY;
+ arg, DEFAULT_TIMEOUT);
+ zvm->timeOut = DEFAULT_TIMEOUT;
}
} else if (!strcasecmp (opt, "help")) {
fence = ACT_HELP;
@@ -774,14 +745,17 @@ get_options(int argc, char **argv, zvm_driver_t *zvm)
int c,
fence = ACT_OFFON;
int32_t lSrvName,
- lSrvNode,
lTarget;
char *endPtr;
while ((c = getopt_long(argc, argv, optString, longopts, NULL)) != -1) {
switch (c) {
+ case 'a' :
+ lSrvName = MIN(strlen(optarg), sizeof(zvm->smapiSrv)-1);
+ memcpy(zvm->smapiSrv, optarg, lSrvName);
+ break;
case 'n' :
- lTarget = MIN(strlen(optarg), sizeof(zvm->target));
+ lTarget = MIN(strlen(optarg), sizeof(zvm->target)-1);
memcpy(zvm->target, optarg, lTarget);
break;
case 'o' :
@@ -803,11 +777,15 @@ get_options(int argc, char **argv, zvm_driver_t *zvm)
fence = ACT_HELP;
}
break;
- case 'a' :
- lSrvName = MIN(strlen(optarg), sizeof(zvm->smapiSrv));
- memcpy(zvm->smapiSrv, optarg, lSrvName);
+ case 'p' :
+ lSrvName = MIN(strlen(optarg), 8);
+ memcpy(zvm->authPass, optarg, lSrvName);
break;
- case 'T' :
+ case 'u' :
+ lSrvName = MIN(strlen(optarg), 8);
+ memcpy(zvm->authUser, optarg, lSrvName);
+ break;
+ case 't' :
zvm->timeOut = strtoul(optarg, &endPtr, 10);
if (*endPtr != 0) {
syslog(LOG_WARNING, "Invalid timeout value specified: %s - "
@@ -825,10 +803,6 @@ get_options(int argc, char **argv, zvm_driver_t *zvm)
zvm->delay = DEFAULT_DELAY;
}
break;
- case 'z' :
- lSrvNode = MIN(strlen(optarg), sizeof(zvm->node));
- memcpy(zvm->node, optarg, lSrvNode);
- break;
default :
fence = ACT_HELP;
}
@@ -837,23 +811,109 @@ get_options(int argc, char **argv, zvm_driver_t *zvm)
}
/**
+ * zvm_metadata - Show fence metadata
+ * @self - Path to this executable
+ *
+ */
+static int
+zvm_metadata()
+{
+ fprintf (stdout, "<?xml version=\"1.0\" ?>\n");
+ fprintf (stdout, "<resource-agent name=\"fence_zvmip\"");
+ fprintf (stdout, " shortdesc=\"Fence agent for use with z/VM Virtual Machines\">\n");
+ fprintf (stdout, "<longdesc>");
+ fprintf (stdout, "The fence_zvm agent is intended to be used with with z/VM SMAPI service via TCP/IP");
+ fprintf (stdout, "</longdesc>\n");
+ fprintf (stdout, "<vendor-url>http://www.ibm.com</vendor-url>\n");
+
+ fprintf (stdout, "<parameters>\n");
+
+ fprintf (stdout, "\t<parameter name=\"port\" unique=\"1\" required=\"1\">\n");
+ fprintf (stdout, "\t\t<getopt mixed=\"-n, --plug\" />\n");
+ fprintf (stdout, "\t\t<content type=\"string\" />\n");
+ fprintf (stdout, "\t\t<shortdesc lang=\"en\">%s</shortdesc>\n",
+ "Name of the Virtual Machine to be fenced");
+ fprintf (stdout, "\t</parameter>\n");
+
+ fprintf (stdout, "\t<parameter name=\"ipaddr\" unique=\"1\" required=\"1\">\n");
+ fprintf (stdout, "\t\t<getopt mixed=\"-i, --ip\" />\n");
+ fprintf (stdout, "\t\t<content type=\"string\" />\n");
+ fprintf (stdout, "\t\t<shortdesc lang=\"en\">%s</shortdesc>\n",
+ "IP Name or Address of SMAPI Server");
+ fprintf (stdout, "\t</parameter>\n");
+
+ fprintf (stdout, "\t<parameter name=\"login\" unique=\"1\" required=\"1\">\n");
+ fprintf (stdout, "\t\t<getopt mixed=\"-u, --username\" />\n");
+ fprintf (stdout, "\t\t<content type=\"string\" />\n");
+ fprintf (stdout, "\t\t<shortdesc lang=\"en\">%s</shortdesc>\n",
+ "Name of authorized SMAPI user");
+ fprintf (stdout, "\t</parameter>\n");
+
+ fprintf (stdout, "\t<parameter name=\"passwd\" unique=\"1\" required=\"1\">\n");
+ fprintf (stdout, "\t\t<getopt mixed=\"-p, --password\" />\n");
+ fprintf (stdout, "\t\t<content type=\"string\" />\n");
+ fprintf (stdout, "\t\t<shortdesc lang=\"en\">%s</shortdesc>\n",
+ "Password of authorized SMAPI user");
+ fprintf (stdout, "\t</parameter>\n");
+
+ fprintf (stdout, "\t<parameter name=\"action\" unique=\"1\" required=\"0\">\n");
+ fprintf (stdout, "\t\t<getopt mixed=\"-o, --action\" />\n");
+ fprintf (stdout, "\t\t<content type=\"string\" default=\"off\" />\n");
+ fprintf (stdout, "\t\t<shortdesc lang=\"en\">%s</shortdesc>\n",
+ "Fencing action");
+ fprintf (stdout, "\t</parameter>\n");
+
+ fprintf (stdout, "\t<parameter name=\"delay\" unique=\"1\" required=\"0\">\n");
+ fprintf (stdout, "\t\t<getopt mixed=\"--delay\" />\n");
+ fprintf (stdout, "\t\t<content type=\"string\" default=\"0\" />\n");
+ fprintf (stdout, "\t\t<shortdesc lang=\"en\">%s</shortdesc>\n",
+ "Time to delay fencing action in seconds");
+ fprintf (stdout, "\t</parameter>\n");
+
+ fprintf (stdout, "\t<parameter name=\"usage\" unique=\"1\" required=\"0\">\n");
+ fprintf (stdout, "\t\t<getopt mixed=\"-h, --help\" />\n");
+ fprintf (stdout, "\t\t<content type=\"boolean\" />\n");
+ fprintf (stdout, "\t\t<shortdesc lang=\"en\">%s</shortdesc>\n",
+ "Print usage");
+ fprintf (stdout, "\t</parameter>\n");
+
+ fprintf (stdout, "</parameters>\n");
+
+ fprintf (stdout, "<actions>\n");
+ fprintf (stdout, "\t<action name=\"off\" />\n");
+ fprintf (stdout, "\t<action name=\"on\" automatic=\"0\" />\n");
+ fprintf (stdout, "\t<action name=\"list\" />\n");
+ fprintf (stdout, "\t<action name=\"metadata\" />\n");
+ fprintf (stdout, "\t<action name=\"monitor\" />\n");
+ fprintf (stdout, "\t<action name=\"status\" />\n");
+ fprintf (stdout, "\t<action name=\"reboot\" />\n");
+ fprintf (stdout, "</actions>\n");
+
+ fprintf (stdout, "</resource-agent>\n");
+
+ return(0);
+
+}
+
+/**
* usage - display command syntax and parameters
*
*/
static int
usage()
{
- printf("Usage: fence_zvm [options]\n\n"
+ fprintf(stderr,"Usage: fence_zvmip [options]\n\n"
"\tWhere [options] =\n"
"\t-o --action [action] - \"off\", \"on\", \"list\", \"metadata\", "
"\"monitor\", \"reboot\", \"status\"\n"
"\t--delay [seconds] - Time to delay fencing action in seconds\n"
"\t-n --plug [target] - Name of virtual machine to fence\n"
- "\t-a --ip [server] - Name of SMAPI IUCV Request server\n"
- "\t-T --timeout [secs] - Time to wait for fence in seconds - currently ignored\n"
- "\t--zvmsys [node] - z/VM Node on which SMAPI server lives\n"
+ "\t-a --ip [server] - IP Name/Address of SMAPI Server\n"
+ "\t-u --username [user] - Name of autorized SMAPI user\n"
+ "\t-p --password [pass] - Password of autorized SMAPI user\n"
+ "\t-t --timeout [secs] - Time to wait for fence in seconds - currently ignored\n"
"\t-h --help - Display this usage information\n");
- return(0);
+ return(1);
}
/**
@@ -868,7 +928,17 @@ check_parm(zvm_driver_t *zvm)
if (zvm->smapiSrv[0] != 0) {
if (zvm->target[0] != 0) {
- rc = 0;
+ if (zvm->authUser[0] != 0) {
+ if (zvm->authPass[0] != 0) {
+ rc = 0;
+ } else {
+ syslog(LOG_ERR, "Missing authorized password");
+ rc = 4;
+ }
+ } else {
+ syslog(LOG_ERR, "Missing authorized user name");
+ rc = 3;
+ }
} else {
syslog(LOG_ERR, "Missing fence target name");
rc = 2;
@@ -884,10 +954,10 @@ int
main(int argc, char **argv)
{
zvm_driver_t zvm;
- int fence,
+ int fence = 1,
rc = 0;
- openlog ("fence_zvm", LOG_CONS|LOG_PID, LOG_DAEMON);
+ openlog ("fence_zvmip", LOG_CONS|LOG_PID, LOG_DAEMON);
memset(&zvm, 0, sizeof(zvm));
zvm.timeOut = DEFAULT_TIMEOUT;
zvm.delay = DEFAULT_DELAY;
@@ -899,7 +969,7 @@ main(int argc, char **argv)
switch(fence) {
case ACT_OFFON : // OFFON
- if ((rc = check_parm(&zvm)) == 0)
+ if ((rc = check_parm(&zvm)) == 0)
rc = zvm_smapi_imageRecycle(&zvm);
break;
case ACT_OFF : // OFF
@@ -920,9 +990,8 @@ main(int argc, char **argv)
case ACT_MONITOR : // MONITOR
rc = 0;
break;
- case ACT_LIST : // LIST
+ case ACT_LIST :
printf("N/A");
- rc = 0;
break;
case ACT_HELP :
rc = usage();
@@ -930,14 +999,3 @@ main(int argc, char **argv)
closelog();
return (rc);
}
-#else
-#include <syslog.h>
-int
-main(int argc, char **argv)
-{
- openlog ("fence_zvm", LOG_CONS|LOG_PID, LOG_DAEMON);
- syslog(LOG_ERR,"Fencing of a z/VM agent is not possible on this platform\n");
- closelog();
- return(-1);
-}
-#endif
diff --git a/fence/agents/zvm/fence_zvmip.py b/fence/agents/zvm/fence_zvmip.py
index e5f8940..5fbe53e 100644
--- a/fence/agents/zvm/fence_zvmip.py
+++ b/fence/agents/zvm/fence_zvmip.py
@@ -9,12 +9,6 @@ sys.path.append("@FENCEAGENTSLIBDIR@")
from fencing import *
from fencing import fail, fail_usage, run_delay, EC_LOGIN_DENIED, EC_TIMED_OUT
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION=""
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
INT4 = 4
def open_socket(options):
@@ -180,9 +174,10 @@ Column 1 Column 66 Column 131
| | |
V V V
-XXXXXXXX ALL IMAGE_OPERATIONS
+XXXXXXXX ALL IMAGE_CHARACTERISTICS
-Where XXXXXXX is the name of the virtual machine used in the authuser field of the request.
+Where XXXXXXX is the name of the virtual machine used in the authuser field of the request. This virtual machine also has to be authorized
+to access the system's directory manager.
"""
docs["vendorurl"] = "http://www.ibm.com"
show_docs(options, docs)
diff --git a/install-sh b/install-sh
deleted file mode 100755
index 0b0fdcb..0000000
--- a/install-sh
+++ /dev/null
@@ -1,501 +0,0 @@
-#!/bin/sh
-# install - install a program, script, or datafile
-
-scriptversion=2013-12-25.23; # UTC
-
-# This originates from X11R5 (mit/util/scripts/install.sh), which was
-# later released in X11R6 (xc/config/util/install.sh) with the
-# following copyright and license.
-#
-# Copyright (C) 1994 X Consortium
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to
-# deal in the Software without restriction, including without limitation the
-# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-# sell copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
-# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
-# Except as contained in this notice, the name of the X Consortium shall not
-# be used in advertising or otherwise to promote the sale, use or other deal-
-# ings in this Software without prior written authorization from the X Consor-
-# tium.
-#
-#
-# FSF changes to this file are in the public domain.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# 'make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch.
-
-tab=' '
-nl='
-'
-IFS=" $tab$nl"
-
-# Set DOITPROG to "echo" to test this script.
-
-doit=${DOITPROG-}
-doit_exec=${doit:-exec}
-
-# Put in absolute file names if you don't have them in your path;
-# or use environment vars.
-
-chgrpprog=${CHGRPPROG-chgrp}
-chmodprog=${CHMODPROG-chmod}
-chownprog=${CHOWNPROG-chown}
-cmpprog=${CMPPROG-cmp}
-cpprog=${CPPROG-cp}
-mkdirprog=${MKDIRPROG-mkdir}
-mvprog=${MVPROG-mv}
-rmprog=${RMPROG-rm}
-stripprog=${STRIPPROG-strip}
-
-posix_mkdir=
-
-# Desired mode of installed file.
-mode=0755
-
-chgrpcmd=
-chmodcmd=$chmodprog
-chowncmd=
-mvcmd=$mvprog
-rmcmd="$rmprog -f"
-stripcmd=
-
-src=
-dst=
-dir_arg=
-dst_arg=
-
-copy_on_change=false
-is_target_a_directory=possibly
-
-usage="\
-Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
- or: $0 [OPTION]... SRCFILES... DIRECTORY
- or: $0 [OPTION]... -t DIRECTORY SRCFILES...
- or: $0 [OPTION]... -d DIRECTORIES...
-
-In the 1st form, copy SRCFILE to DSTFILE.
-In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
-In the 4th, create DIRECTORIES.
-
-Options:
- --help display this help and exit.
- --version display version info and exit.
-
- -c (ignored)
- -C install only if different (preserve the last data modification time)
- -d create directories instead of installing files.
- -g GROUP $chgrpprog installed files to GROUP.
- -m MODE $chmodprog installed files to MODE.
- -o USER $chownprog installed files to USER.
- -s $stripprog installed files.
- -t DIRECTORY install into DIRECTORY.
- -T report an error if DSTFILE is a directory.
-
-Environment variables override the default commands:
- CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
- RMPROG STRIPPROG
-"
-
-while test $# -ne 0; do
- case $1 in
- -c) ;;
-
- -C) copy_on_change=true;;
-
- -d) dir_arg=true;;
-
- -g) chgrpcmd="$chgrpprog $2"
- shift;;
-
- --help) echo "$usage"; exit $?;;
-
- -m) mode=$2
- case $mode in
- *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
- echo "$0: invalid mode: $mode" >&2
- exit 1;;
- esac
- shift;;
-
- -o) chowncmd="$chownprog $2"
- shift;;
-
- -s) stripcmd=$stripprog;;
-
- -t)
- is_target_a_directory=always
- dst_arg=$2
- # Protect names problematic for 'test' and other utilities.
- case $dst_arg in
- -* | [=\(\)!]) dst_arg=./$dst_arg;;
- esac
- shift;;
-
- -T) is_target_a_directory=never;;
-
- --version) echo "$0 $scriptversion"; exit $?;;
-
- --) shift
- break;;
-
- -*) echo "$0: invalid option: $1" >&2
- exit 1;;
-
- *) break;;
- esac
- shift
-done
-
-# We allow the use of options -d and -T together, by making -d
-# take the precedence; this is for compatibility with GNU install.
-
-if test -n "$dir_arg"; then
- if test -n "$dst_arg"; then
- echo "$0: target directory not allowed when installing a directory." >&2
- exit 1
- fi
-fi
-
-if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
- # When -d is used, all remaining arguments are directories to create.
- # When -t is used, the destination is already specified.
- # Otherwise, the last argument is the destination. Remove it from $@.
- for arg
- do
- if test -n "$dst_arg"; then
- # $@ is not empty: it contains at least $arg.
- set fnord "$@" "$dst_arg"
- shift # fnord
- fi
- shift # arg
- dst_arg=$arg
- # Protect names problematic for 'test' and other utilities.
- case $dst_arg in
- -* | [=\(\)!]) dst_arg=./$dst_arg;;
- esac
- done
-fi
-
-if test $# -eq 0; then
- if test -z "$dir_arg"; then
- echo "$0: no input file specified." >&2
- exit 1
- fi
- # It's OK to call 'install-sh -d' without argument.
- # This can happen when creating conditional directories.
- exit 0
-fi
-
-if test -z "$dir_arg"; then
- if test $# -gt 1 || test "$is_target_a_directory" = always; then
- if test ! -d "$dst_arg"; then
- echo "$0: $dst_arg: Is not a directory." >&2
- exit 1
- fi
- fi
-fi
-
-if test -z "$dir_arg"; then
- do_exit='(exit $ret); exit $ret'
- trap "ret=129; $do_exit" 1
- trap "ret=130; $do_exit" 2
- trap "ret=141; $do_exit" 13
- trap "ret=143; $do_exit" 15
-
- # Set umask so as not to create temps with too-generous modes.
- # However, 'strip' requires both read and write access to temps.
- case $mode in
- # Optimize common cases.
- *644) cp_umask=133;;
- *755) cp_umask=22;;
-
- *[0-7])
- if test -z "$stripcmd"; then
- u_plus_rw=
- else
- u_plus_rw='% 200'
- fi
- cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
- *)
- if test -z "$stripcmd"; then
- u_plus_rw=
- else
- u_plus_rw=,u+rw
- fi
- cp_umask=$mode$u_plus_rw;;
- esac
-fi
-
-for src
-do
- # Protect names problematic for 'test' and other utilities.
- case $src in
- -* | [=\(\)!]) src=./$src;;
- esac
-
- if test -n "$dir_arg"; then
- dst=$src
- dstdir=$dst
- test -d "$dstdir"
- dstdir_status=$?
- else
-
- # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
- # might cause directories to be created, which would be especially bad
- # if $src (and thus $dsttmp) contains '*'.
- if test ! -f "$src" && test ! -d "$src"; then
- echo "$0: $src does not exist." >&2
- exit 1
- fi
-
- if test -z "$dst_arg"; then
- echo "$0: no destination specified." >&2
- exit 1
- fi
- dst=$dst_arg
-
- # If destination is a directory, append the input filename; won't work
- # if double slashes aren't ignored.
- if test -d "$dst"; then
- if test "$is_target_a_directory" = never; then
- echo "$0: $dst_arg: Is a directory" >&2
- exit 1
- fi
- dstdir=$dst
- dst=$dstdir/`basename "$src"`
- dstdir_status=0
- else
- dstdir=`dirname "$dst"`
- test -d "$dstdir"
- dstdir_status=$?
- fi
- fi
-
- obsolete_mkdir_used=false
-
- if test $dstdir_status != 0; then
- case $posix_mkdir in
- '')
- # Create intermediate dirs using mode 755 as modified by the umask.
- # This is like FreeBSD 'install' as of 1997-10-28.
- umask=`umask`
- case $stripcmd.$umask in
- # Optimize common cases.
- *[2367][2367]) mkdir_umask=$umask;;
- .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
- *[0-7])
- mkdir_umask=`expr $umask + 22 \
- - $umask % 100 % 40 + $umask % 20 \
- - $umask % 10 % 4 + $umask % 2
- `;;
- *) mkdir_umask=$umask,go-w;;
- esac
-
- # With -d, create the new directory with the user-specified mode.
- # Otherwise, rely on $mkdir_umask.
- if test -n "$dir_arg"; then
- mkdir_mode=-m$mode
- else
- mkdir_mode=
- fi
-
- posix_mkdir=false
- case $umask in
- *[123567][0-7][0-7])
- # POSIX mkdir -p sets u+wx bits regardless of umask, which
- # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
- ;;
- *)
- tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
- trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
-
- if (umask $mkdir_umask &&
- exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
- then
- if test -z "$dir_arg" || {
- # Check for POSIX incompatibilities with -m.
- # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
- # other-writable bit of parent directory when it shouldn't.
- # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
- ls_ld_tmpdir=`ls -ld "$tmpdir"`
- case $ls_ld_tmpdir in
- d????-?r-*) different_mode=700;;
- d????-?--*) different_mode=755;;
- *) false;;
- esac &&
- $mkdirprog -m$different_mode -p -- "$tmpdir" && {
- ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
- test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
- }
- }
- then posix_mkdir=:
- fi
- rmdir "$tmpdir/d" "$tmpdir"
- else
- # Remove any dirs left behind by ancient mkdir implementations.
- rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
- fi
- trap '' 0;;
- esac;;
- esac
-
- if
- $posix_mkdir && (
- umask $mkdir_umask &&
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
- )
- then :
- else
-
- # The umask is ridiculous, or mkdir does not conform to POSIX,
- # or it failed possibly due to a race condition. Create the
- # directory the slow way, step by step, checking for races as we go.
-
- case $dstdir in
- /*) prefix='/';;
- [-=\(\)!]*) prefix='./';;
- *) prefix='';;
- esac
-
- oIFS=$IFS
- IFS=/
- set -f
- set fnord $dstdir
- shift
- set +f
- IFS=$oIFS
-
- prefixes=
-
- for d
- do
- test X"$d" = X && continue
-
- prefix=$prefix$d
- if test -d "$prefix"; then
- prefixes=
- else
- if $posix_mkdir; then
- (umask=$mkdir_umask &&
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
- # Don't fail if two instances are running concurrently.
- test -d "$prefix" || exit 1
- else
- case $prefix in
- *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
- *) qprefix=$prefix;;
- esac
- prefixes="$prefixes '$qprefix'"
- fi
- fi
- prefix=$prefix/
- done
-
- if test -n "$prefixes"; then
- # Don't fail if two instances are running concurrently.
- (umask $mkdir_umask &&
- eval "\$doit_exec \$mkdirprog $prefixes") ||
- test -d "$dstdir" || exit 1
- obsolete_mkdir_used=true
- fi
- fi
- fi
-
- if test -n "$dir_arg"; then
- { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
- { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
- { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
- test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
- else
-
- # Make a couple of temp file names in the proper directory.
- dsttmp=$dstdir/_inst.$$_
- rmtmp=$dstdir/_rm.$$_
-
- # Trap to clean up those temp files at exit.
- trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
-
- # Copy the file name to the temp name.
- (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
-
- # and set any options; do chmod last to preserve setuid bits.
- #
- # If any of these fail, we abort the whole thing. If we want to
- # ignore errors from any of these, just make sure not to ignore
- # errors from the above "$doit $cpprog $src $dsttmp" command.
- #
- { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
- { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
- { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
- { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
-
- # If -C, don't bother to copy if it wouldn't change the file.
- if $copy_on_change &&
- old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
- new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
- set -f &&
- set X $old && old=:$2:$4:$5:$6 &&
- set X $new && new=:$2:$4:$5:$6 &&
- set +f &&
- test "$old" = "$new" &&
- $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
- then
- rm -f "$dsttmp"
- else
- # Rename the file to the real destination.
- $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
-
- # The rename failed, perhaps because mv can't rename something else
- # to itself, or perhaps because mv is so ancient that it does not
- # support -f.
- {
- # Now remove or move aside any old file at destination location.
- # We try this two ways since rm can't unlink itself on some
- # systems and the destination file might be busy for other
- # reasons. In this case, the final cleanup might fail but the new
- # file should still install successfully.
- {
- test ! -f "$dst" ||
- $doit $rmcmd -f "$dst" 2>/dev/null ||
- { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
- { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
- } ||
- { echo "$0: cannot unlink or rename $dst" >&2
- (exit 1); exit 1
- }
- } &&
-
- # Now rename the file to the real destination.
- $doit $mvcmd "$dsttmp" "$dst"
- }
- fi || exit 1
-
- trap '' 0
- fi
-done
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
-# time-stamp-end: "; # UTC"
-# End:
diff --git a/ltmain.sh b/ltmain.sh
deleted file mode 100644
index 63ae69d..0000000
--- a/ltmain.sh
+++ /dev/null
@@ -1,9655 +0,0 @@
-
-# libtool (GNU libtool) 2.4.2
-# Written by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
-# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
-# This is free software; see the source for copying conditions. There is NO
-# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-# GNU Libtool 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.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Libtool; see the file COPYING. If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html,
-# or obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# Usage: $progname [OPTION]... [MODE-ARG]...
-#
-# Provide generalized library-building support services.
-#
-# --config show all configuration variables
-# --debug enable verbose shell tracing
-# -n, --dry-run display commands without modifying any files
-# --features display basic configuration information and exit
-# --mode=MODE use operation mode MODE
-# --preserve-dup-deps don't remove duplicate dependency libraries
-# --quiet, --silent don't print informational messages
-# --no-quiet, --no-silent
-# print informational messages (default)
-# --no-warn don't display warning messages
-# --tag=TAG use configuration variables from tag TAG
-# -v, --verbose print more informational messages than default
-# --no-verbose don't print the extra informational messages
-# --version print version information
-# -h, --help, --help-all print short, long, or detailed help message
-#
-# MODE must be one of the following:
-#
-# clean remove files from the build directory
-# compile compile a source file into a libtool object
-# execute automatically set library path, then run a program
-# finish complete the installation of libtool libraries
-# install install libraries or executables
-# link create a library or an executable
-# uninstall remove libraries from an installed directory
-#
-# MODE-ARGS vary depending on the MODE. When passed as first option,
-# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
-# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
-#
-# When reporting a bug, please describe a test case to reproduce it and
-# include the following information:
-#
-# host-triplet: $host
-# shell: $SHELL
-# compiler: $LTCC
-# compiler flags: $LTCFLAGS
-# linker: $LD (gnu? $with_gnu_ld)
-# $progname: (GNU libtool) 2.4.2
-# automake: $automake_version
-# autoconf: $autoconf_version
-#
-# Report bugs to <bug-libtool at gnu.org>.
-# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
-# General help using GNU software: <http://www.gnu.org/gethelp/>.
-
-PROGRAM=libtool
-PACKAGE=libtool
-VERSION=2.4.2
-TIMESTAMP=""
-package_revision=1.3337
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
-fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-$1
-_LTECHO_EOF'
-}
-
-# NLS nuisances: We save the old values to restore during execute mode.
-lt_user_locale=
-lt_safe_locale=
-for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
-do
- eval "if test \"\${$lt_var+set}\" = set; then
- save_$lt_var=\$$lt_var
- $lt_var=C
- export $lt_var
- lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
- lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
- fi"
-done
-LC_ALL=C
-LANGUAGE=C
-export LANGUAGE LC_ALL
-
-$lt_unset CDPATH
-
-
-# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
-# is ksh but when the shell is invoked as "sh" and the current value of
-# the _XPG environment variable is not equal to 1 (one), the special
-# positional parameter $0, within a function call, is the name of the
-# function.
-progpath="$0"
-
-
-
-: ${CP="cp -f"}
-test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
-: ${MAKE="make"}
-: ${MKDIR="mkdir"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
-: ${Xsed="$SED -e 1s/^X//"}
-
-# Global variables:
-EXIT_SUCCESS=0
-EXIT_FAILURE=1
-EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing.
-EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake.
-
-exit_status=$EXIT_SUCCESS
-
-# Make sure IFS has a sensible default
-lt_nl='
-'
-IFS=" $lt_nl"
-
-dirname="s,/[^/]*$,,"
-basename="s,^.*/,,"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE. If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
- if test "X$func_dirname_result" = "X${1}"; then
- func_dirname_result="${3}"
- else
- func_dirname_result="$func_dirname_result${2}"
- fi
-} # func_dirname may be replaced by extended shell implementation
-
-
-# func_basename file
-func_basename ()
-{
- func_basename_result=`$ECHO "${1}" | $SED "$basename"`
-} # func_basename may be replaced by extended shell implementation
-
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-# dirname: Compute the dirname of FILE. If nonempty,
-# add APPEND to the result, otherwise set result
-# to NONDIR_REPLACEMENT.
-# value returned in "$func_dirname_result"
-# basename: Compute filename of FILE.
-# value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
- # Extract subdirectory from the argument.
- func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
- if test "X$func_dirname_result" = "X${1}"; then
- func_dirname_result="${3}"
- else
- func_dirname_result="$func_dirname_result${2}"
- fi
- func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
-} # func_dirname_and_basename may be replaced by extended shell implementation
-
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
- case ${2} in
- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
- esac
-} # func_stripname may be replaced by extended shell implementation
-
-
-# These SED scripts presuppose an absolute path with a trailing slash.
-pathcar='s,^/\([^/]*\).*$,\1,'
-pathcdr='s,^/[^/]*,,'
-removedotparts=':dotsl
- s@/\./@/@g
- t dotsl
- s,/\.$,/,'
-collapseslashes='s@/\{1,\}@/@g'
-finalslash='s,/*$,/,'
-
-# func_normal_abspath PATH
-# Remove doubled-up and trailing slashes, "." path components,
-# and cancel out any ".." path components in PATH after making
-# it an absolute path.
-# value returned in "$func_normal_abspath_result"
-func_normal_abspath ()
-{
- # Start from root dir and reassemble the path.
- func_normal_abspath_result=
- func_normal_abspath_tpath=$1
- func_normal_abspath_altnamespace=
- case $func_normal_abspath_tpath in
- "")
- # Empty path, that just means $cwd.
- func_stripname '' '/' "`pwd`"
- func_normal_abspath_result=$func_stripname_result
- return
- ;;
- # The next three entries are used to spot a run of precisely
- # two leading slashes without using negated character classes;
- # we take advantage of case's first-match behaviour.
- ///*)
- # Unusual form of absolute path, do nothing.
- ;;
- //*)
- # Not necessarily an ordinary path; POSIX reserves leading '//'
- # and for example Cygwin uses it to access remote file shares
- # over CIFS/SMB, so we conserve a leading double slash if found.
- func_normal_abspath_altnamespace=/
- ;;
- /*)
- # Absolute path, do nothing.
- ;;
- *)
- # Relative path, prepend $cwd.
- func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
- ;;
- esac
- # Cancel out all the simple stuff to save iterations. We also want
- # the path to end with a slash for ease of parsing, so make sure
- # there is one (and only one) here.
- func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
- -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
- while :; do
- # Processed it all yet?
- if test "$func_normal_abspath_tpath" = / ; then
- # If we ascended to the root using ".." the result may be empty now.
- if test -z "$func_normal_abspath_result" ; then
- func_normal_abspath_result=/
- fi
- break
- fi
- func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
- -e "$pathcar"`
- func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
- -e "$pathcdr"`
- # Figure out what to do with it
- case $func_normal_abspath_tcomponent in
- "")
- # Trailing empty path component, ignore it.
- ;;
- ..)
- # Parent dir; strip last assembled component from result.
- func_dirname "$func_normal_abspath_result"
- func_normal_abspath_result=$func_dirname_result
- ;;
- *)
- # Actual path component, append it.
- func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
- ;;
- esac
- done
- # Restore leading double-slash if one was found on entry.
- func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
-}
-
-# func_relative_path SRCDIR DSTDIR
-# generates a relative path from SRCDIR to DSTDIR, with a trailing
-# slash if non-empty, suitable for immediately appending a filename
-# without needing to append a separator.
-# value returned in "$func_relative_path_result"
-func_relative_path ()
-{
- func_relative_path_result=
- func_normal_abspath "$1"
- func_relative_path_tlibdir=$func_normal_abspath_result
- func_normal_abspath "$2"
- func_relative_path_tbindir=$func_normal_abspath_result
-
- # Ascend the tree starting from libdir
- while :; do
- # check if we have found a prefix of bindir
- case $func_relative_path_tbindir in
- $func_relative_path_tlibdir)
- # found an exact match
- func_relative_path_tcancelled=
- break
- ;;
- $func_relative_path_tlibdir*)
- # found a matching prefix
- func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
- func_relative_path_tcancelled=$func_stripname_result
- if test -z "$func_relative_path_result"; then
- func_relative_path_result=.
- fi
- break
- ;;
- *)
- func_dirname $func_relative_path_tlibdir
- func_relative_path_tlibdir=${func_dirname_result}
- if test "x$func_relative_path_tlibdir" = x ; then
- # Have to descend all the way to the root!
- func_relative_path_result=../$func_relative_path_result
- func_relative_path_tcancelled=$func_relative_path_tbindir
- break
- fi
- func_relative_path_result=../$func_relative_path_result
- ;;
- esac
- done
-
- # Now calculate path; take care to avoid doubling-up slashes.
- func_stripname '' '/' "$func_relative_path_result"
- func_relative_path_result=$func_stripname_result
- func_stripname '/' '/' "$func_relative_path_tcancelled"
- if test "x$func_stripname_result" != x ; then
- func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
- fi
-
- # Normalisation. If bindir is libdir, return empty string,
- # else relative path ending with a slash; either way, target
- # file name can be directly appended.
- if test ! -z "$func_relative_path_result"; then
- func_stripname './' '' "$func_relative_path_result/"
- func_relative_path_result=$func_stripname_result
- fi
-}
-
-# The name of this program:
-func_dirname_and_basename "$progpath"
-progname=$func_basename_result
-
-# Make sure we have an absolute path for reexecution:
-case $progpath in
- [\\/]*|[A-Za-z]:\\*) ;;
- *[\\/]*)
- progdir=$func_dirname_result
- progdir=`cd "$progdir" && pwd`
- progpath="$progdir/$progname"
- ;;
- *)
- save_IFS="$IFS"
- IFS=${PATH_SEPARATOR-:}
- for progdir in $PATH; do
- IFS="$save_IFS"
- test -x "$progdir/$progname" && break
- done
- IFS="$save_IFS"
- test -n "$progdir" || progdir=`pwd`
- progpath="$progdir/$progname"
- ;;
-esac
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed="${SED}"' -e 1s/^X//'
-sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Sed substitution that turns a string into a regex matching for the
-# string literally.
-sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
-
-# Sed substitution that converts a w32 file name or path
-# which contains forward slashes, into one that contains
-# (escaped) backslashes. A very naive implementation.
-lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
-
-# Re-`\' parameter expansions in output of double_quote_subst that were
-# `\'-ed in input to the same. If an odd number of `\' preceded a '$'
-# in input to double_quote_subst, that '$' was protected from expansion.
-# Since each input `\' is now two `\'s, look for any number of runs of
-# four `\'s followed by two `\'s and then a '$'. `\' that '$'.
-bs='\\'
-bs2='\\\\'
-bs4='\\\\\\\\'
-dollar='\$'
-sed_double_backslash="\
- s/$bs4/&\\
-/g
- s/^$bs2$dollar/$bs&/
- s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
- s/\n//g"
-
-# Standard options:
-opt_dry_run=false
-opt_help=false
-opt_quiet=false
-opt_verbose=false
-opt_warning=:
-
-# func_echo arg...
-# Echo program name prefixed message, along with the current mode
-# name if it has been set yet.
-func_echo ()
-{
- $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
-}
-
-# func_verbose arg...
-# Echo program name prefixed message in verbose mode only.
-func_verbose ()
-{
- $opt_verbose && func_echo ${1+"$@"}
-
- # A bug in bash halts the script if the last line of a function
- # fails when set -e is in force, so we need another command to
- # work around that:
- :
-}
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
- $ECHO "$*"
-}
-
-# func_error arg...
-# Echo program name prefixed message to standard error.
-func_error ()
-{
- $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
-}
-
-# func_warning arg...
-# Echo program name prefixed warning message to standard error.
-func_warning ()
-{
- $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
-
- # bash bug again:
- :
-}
-
-# func_fatal_error arg...
-# Echo program name prefixed message to standard error, and exit.
-func_fatal_error ()
-{
- func_error ${1+"$@"}
- exit $EXIT_FAILURE
-}
-
-# func_fatal_help arg...
-# Echo program name prefixed message to standard error, followed by
-# a help hint, and exit.
-func_fatal_help ()
-{
- func_error ${1+"$@"}
- func_fatal_error "$help"
-}
-help="Try \`$progname --help' for more information." ## default
-
-
-# func_grep expression filename
-# Check whether EXPRESSION matches any line of FILENAME, without output.
-func_grep ()
-{
- $GREP "$1" "$2" >/dev/null 2>&1
-}
-
-
-# func_mkdir_p directory-path
-# Make sure the entire path to DIRECTORY-PATH is available.
-func_mkdir_p ()
-{
- my_directory_path="$1"
- my_dir_list=
-
- if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
-
- # Protect directory names starting with `-'
- case $my_directory_path in
- -*) my_directory_path="./$my_directory_path" ;;
- esac
-
- # While some portion of DIR does not yet exist...
- while test ! -d "$my_directory_path"; do
- # ...make a list in topmost first order. Use a colon delimited
- # list incase some portion of path contains whitespace.
- my_dir_list="$my_directory_path:$my_dir_list"
-
- # If the last portion added has no slash in it, the list is done
- case $my_directory_path in */*) ;; *) break ;; esac
-
- # ...otherwise throw away the child directory and loop
- my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
- done
- my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
-
- save_mkdir_p_IFS="$IFS"; IFS=':'
- for my_dir in $my_dir_list; do
- IFS="$save_mkdir_p_IFS"
- # mkdir can fail with a `File exist' error if two processes
- # try to create one of the directories concurrently. Don't
- # stop in that case!
- $MKDIR "$my_dir" 2>/dev/null || :
- done
- IFS="$save_mkdir_p_IFS"
-
- # Bail out if we (or some other process) failed to create a directory.
- test -d "$my_directory_path" || \
- func_fatal_error "Failed to create \`$1'"
- fi
-}
-
-
-# func_mktempdir [string]
-# Make a temporary directory that won't clash with other running
-# libtool processes, and avoids race conditions if possible. If
-# given, STRING is the basename for that directory.
-func_mktempdir ()
-{
- my_template="${TMPDIR-/tmp}/${1-$progname}"
-
- if test "$opt_dry_run" = ":"; then
- # Return a directory name, but don't create it in dry-run mode
- my_tmpdir="${my_template}-$$"
- else
-
- # If mktemp works, use that first and foremost
- my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
-
- if test ! -d "$my_tmpdir"; then
- # Failing that, at least try and use $RANDOM to avoid a race
- my_tmpdir="${my_template}-${RANDOM-0}$$"
-
- save_mktempdir_umask=`umask`
- umask 0077
- $MKDIR "$my_tmpdir"
- umask $save_mktempdir_umask
- fi
-
- # If we're not in dry-run mode, bomb out on failure
- test -d "$my_tmpdir" || \
- func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
- fi
-
- $ECHO "$my_tmpdir"
-}
-
-
-# func_quote_for_eval arg
-# Aesthetically quote ARG to be evaled later.
-# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
-# is double-quoted, suitable for a subsequent eval, whereas
-# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
-# which are still active within double quotes backslashified.
-func_quote_for_eval ()
-{
- case $1 in
- *[\\\`\"\$]*)
- func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
- *)
- func_quote_for_eval_unquoted_result="$1" ;;
- esac
-
- case $func_quote_for_eval_unquoted_result in
- # Double-quote args containing shell metacharacters to delay
- # word splitting, command substitution and and variable
- # expansion for a subsequent eval.
- # Many Bourne shells cannot handle close brackets correctly
- # in scan sets, so we specify it separately.
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
- ;;
- *)
- func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
- esac
-}
-
-
-# func_quote_for_expand arg
-# Aesthetically quote ARG to be evaled later; same as above,
-# but do not quote variable references.
-func_quote_for_expand ()
-{
- case $1 in
- *[\\\`\"]*)
- my_arg=`$ECHO "$1" | $SED \
- -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
- *)
- my_arg="$1" ;;
- esac
-
- case $my_arg in
- # Double-quote args containing shell metacharacters to delay
- # word splitting and command substitution for a subsequent eval.
- # Many Bourne shells cannot handle close brackets correctly
- # in scan sets, so we specify it separately.
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- my_arg="\"$my_arg\""
- ;;
- esac
-
- func_quote_for_expand_result="$my_arg"
-}
-
-
-# func_show_eval cmd [fail_exp]
-# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
-# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
-# is given, then evaluate it.
-func_show_eval ()
-{
- my_cmd="$1"
- my_fail_exp="${2-:}"
-
- ${opt_silent-false} || {
- func_quote_for_expand "$my_cmd"
- eval "func_echo $func_quote_for_expand_result"
- }
-
- if ${opt_dry_run-false}; then :; else
- eval "$my_cmd"
- my_status=$?
- if test "$my_status" -eq 0; then :; else
- eval "(exit $my_status); $my_fail_exp"
- fi
- fi
-}
-
-
-# func_show_eval_locale cmd [fail_exp]
-# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
-# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
-# is given, then evaluate it. Use the saved locale for evaluation.
-func_show_eval_locale ()
-{
- my_cmd="$1"
- my_fail_exp="${2-:}"
-
- ${opt_silent-false} || {
- func_quote_for_expand "$my_cmd"
- eval "func_echo $func_quote_for_expand_result"
- }
-
- if ${opt_dry_run-false}; then :; else
- eval "$lt_user_locale
- $my_cmd"
- my_status=$?
- eval "$lt_safe_locale"
- if test "$my_status" -eq 0; then :; else
- eval "(exit $my_status); $my_fail_exp"
- fi
- fi
-}
-
-# func_tr_sh
-# Turn $1 into a string suitable for a shell variable name.
-# Result is stored in $func_tr_sh_result. All characters
-# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
-# if $1 begins with a digit, a '_' is prepended as well.
-func_tr_sh ()
-{
- case $1 in
- [0-9]* | *[!a-zA-Z0-9_]*)
- func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
- ;;
- * )
- func_tr_sh_result=$1
- ;;
- esac
-}
-
-
-# func_version
-# Echo version message to standard output and exit.
-func_version ()
-{
- $opt_debug
-
- $SED -n '/(C)/!b go
- :more
- /\./!{
- N
- s/\n# / /
- b more
- }
- :go
- /^# '$PROGRAM' (GNU /,/# warranty; / {
- s/^# //
- s/^# *$//
- s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
- p
- }' < "$progpath"
- exit $?
-}
-
-# func_usage
-# Echo short help message to standard output and exit.
-func_usage ()
-{
- $opt_debug
-
- $SED -n '/^# Usage:/,/^# *.*--help/ {
- s/^# //
- s/^# *$//
- s/\$progname/'$progname'/
- p
- }' < "$progpath"
- echo
- $ECHO "run \`$progname --help | more' for full usage"
- exit $?
-}
-
-# func_help [NOEXIT]
-# Echo long help message to standard output and exit,
-# unless 'noexit' is passed as argument.
-func_help ()
-{
- $opt_debug
-
- $SED -n '/^# Usage:/,/# Report bugs to/ {
- :print
- s/^# //
- s/^# *$//
- s*\$progname*'$progname'*
- s*\$host*'"$host"'*
- s*\$SHELL*'"$SHELL"'*
- s*\$LTCC*'"$LTCC"'*
- s*\$LTCFLAGS*'"$LTCFLAGS"'*
- s*\$LD*'"$LD"'*
- s/\$with_gnu_ld/'"$with_gnu_ld"'/
- s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/
- s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/
- p
- d
- }
- /^# .* home page:/b print
- /^# General help using/b print
- ' < "$progpath"
- ret=$?
- if test -z "$1"; then
- exit $ret
- fi
-}
-
-# func_missing_arg argname
-# Echo program name prefixed message to standard error and set global
-# exit_cmd.
-func_missing_arg ()
-{
- $opt_debug
-
- func_error "missing argument for $1."
- exit_cmd=exit
-}
-
-
-# func_split_short_opt shortopt
-# Set func_split_short_opt_name and func_split_short_opt_arg shell
-# variables after splitting SHORTOPT after the 2nd character.
-func_split_short_opt ()
-{
- my_sed_short_opt='1s/^\(..\).*$/\1/;q'
- my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
-
- func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
- func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
-} # func_split_short_opt may be replaced by extended shell implementation
-
-
-# func_split_long_opt longopt
-# Set func_split_long_opt_name and func_split_long_opt_arg shell
-# variables after splitting LONGOPT at the `=' sign.
-func_split_long_opt ()
-{
- my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
- my_sed_long_arg='1s/^--[^=]*=//'
-
- func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
- func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
-} # func_split_long_opt may be replaced by extended shell implementation
-
-exit_cmd=:
-
-
-
-
-
-magic="%%%MAGIC variable%%%"
-magic_exe="%%%MAGIC EXE variable%%%"
-
-# Global variables.
-nonopt=
-preserve_args=
-lo2o="s/\\.lo\$/.${objext}/"
-o2lo="s/\\.${objext}\$/.lo/"
-extracted_archives=
-extracted_serial=0
-
-# If this variable is set in any of the actions, the command in it
-# will be execed at the end. This prevents here-documents from being
-# left over by shells.
-exec_cmd=
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
- eval "${1}=\$${1}\${2}"
-} # func_append may be replaced by extended shell implementation
-
-# func_append_quoted var value
-# Quote VALUE and append to the end of shell variable VAR, separated
-# by a space.
-func_append_quoted ()
-{
- func_quote_for_eval "${2}"
- eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
-} # func_append_quoted may be replaced by extended shell implementation
-
-
-# func_arith arithmetic-term...
-func_arith ()
-{
- func_arith_result=`expr "${@}"`
-} # func_arith may be replaced by extended shell implementation
-
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
- func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
-} # func_len may be replaced by extended shell implementation
-
-
-# func_lo2o object
-func_lo2o ()
-{
- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
-} # func_lo2o may be replaced by extended shell implementation
-
-
-# func_xform libobj-or-source
-func_xform ()
-{
- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
-} # func_xform may be replaced by extended shell implementation
-
-
-# func_fatal_configuration arg...
-# Echo program name prefixed message to standard error, followed by
-# a configuration failure hint, and exit.
-func_fatal_configuration ()
-{
- func_error ${1+"$@"}
- func_error "See the $PACKAGE documentation for more information."
- func_fatal_error "Fatal configuration error."
-}
-
-
-# func_config
-# Display the configuration for all the tags in this script.
-func_config ()
-{
- re_begincf='^# ### BEGIN LIBTOOL'
- re_endcf='^# ### END LIBTOOL'
-
- # Default configuration.
- $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
-
- # Now print the configurations for the tags.
- for tagname in $taglist; do
- $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
- done
-
- exit $?
-}
-
-# func_features
-# Display the features supported by this script.
-func_features ()
-{
- echo "host: $host"
- if test "$build_libtool_libs" = yes; then
- echo "enable shared libraries"
- else
- echo "disable shared libraries"
- fi
- if test "$build_old_libs" = yes; then
- echo "enable static libraries"
- else
- echo "disable static libraries"
- fi
-
- exit $?
-}
-
-# func_enable_tag tagname
-# Verify that TAGNAME is valid, and either flag an error and exit, or
-# enable the TAGNAME tag. We also add TAGNAME to the global $taglist
-# variable here.
-func_enable_tag ()
-{
- # Global variable:
- tagname="$1"
-
- re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
- re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
- sed_extractcf="/$re_begincf/,/$re_endcf/p"
-
- # Validate tagname.
- case $tagname in
- *[!-_A-Za-z0-9,/]*)
- func_fatal_error "invalid tag name: $tagname"
- ;;
- esac
-
- # Don't test for the "default" C tag, as we know it's
- # there but not specially marked.
- case $tagname in
- CC) ;;
- *)
- if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
- taglist="$taglist $tagname"
-
- # Evaluate the configuration. Be careful to quote the path
- # and the sed script, to avoid splitting on whitespace, but
- # also don't use non-portable quotes within backquotes within
- # quotes we have to do it in 2 steps:
- extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
- eval "$extractedcf"
- else
- func_error "ignoring unknown tag $tagname"
- fi
- ;;
- esac
-}
-
-# func_check_version_match
-# Ensure that we are using m4 macros, and libtool script from the same
-# release of libtool.
-func_check_version_match ()
-{
- if test "$package_revision" != "$macro_revision"; then
- if test "$VERSION" != "$macro_version"; then
- if test -z "$macro_version"; then
- cat >&2 <<_LT_EOF
-$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
-$progname: definition of this LT_INIT comes from an older release.
-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-$progname: and run autoconf again.
-_LT_EOF
- else
- cat >&2 <<_LT_EOF
-$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
-$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-$progname: and run autoconf again.
-_LT_EOF
- fi
- else
- cat >&2 <<_LT_EOF
-$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision,
-$progname: but the definition of this LT_INIT comes from revision $macro_revision.
-$progname: You should recreate aclocal.m4 with macros from revision $package_revision
-$progname: of $PACKAGE $VERSION and run autoconf again.
-_LT_EOF
- fi
-
- exit $EXIT_MISMATCH
- fi
-}
-
-
-# Shorthand for --mode=foo, only valid as the first argument
-case $1 in
-clean|clea|cle|cl)
- shift; set dummy --mode clean ${1+"$@"}; shift
- ;;
-compile|compil|compi|comp|com|co|c)
- shift; set dummy --mode compile ${1+"$@"}; shift
- ;;
-execute|execut|execu|exec|exe|ex|e)
- shift; set dummy --mode execute ${1+"$@"}; shift
- ;;
-finish|finis|fini|fin|fi|f)
- shift; set dummy --mode finish ${1+"$@"}; shift
- ;;
-install|instal|insta|inst|ins|in|i)
- shift; set dummy --mode install ${1+"$@"}; shift
- ;;
-link|lin|li|l)
- shift; set dummy --mode link ${1+"$@"}; shift
- ;;
-uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
- shift; set dummy --mode uninstall ${1+"$@"}; shift
- ;;
-esac
-
-
-
-# Option defaults:
-opt_debug=:
-opt_dry_run=false
-opt_config=false
-opt_preserve_dup_deps=false
-opt_features=false
-opt_finish=false
-opt_help=false
-opt_help_all=false
-opt_silent=:
-opt_warning=:
-opt_verbose=:
-opt_silent=false
-opt_verbose=false
-
-
-# Parse options once, thoroughly. This comes as soon as possible in the
-# script to make things like `--version' happen as quickly as we can.
-{
- # this just eases exit handling
- while test $# -gt 0; do
- opt="$1"
- shift
- case $opt in
- --debug|-x) opt_debug='set -x'
- func_echo "enabling shell trace mode"
- $opt_debug
- ;;
- --dry-run|--dryrun|-n)
- opt_dry_run=:
- ;;
- --config)
- opt_config=:
-func_config
- ;;
- --dlopen|-dlopen)
- optarg="$1"
- opt_dlopen="${opt_dlopen+$opt_dlopen
-}$optarg"
- shift
- ;;
- --preserve-dup-deps)
- opt_preserve_dup_deps=:
- ;;
- --features)
- opt_features=:
-func_features
- ;;
- --finish)
- opt_finish=:
-set dummy --mode finish ${1+"$@"}; shift
- ;;
- --help)
- opt_help=:
- ;;
- --help-all)
- opt_help_all=:
-opt_help=': help-all'
- ;;
- --mode)
- test $# = 0 && func_missing_arg $opt && break
- optarg="$1"
- opt_mode="$optarg"
-case $optarg in
- # Valid mode arguments:
- clean|compile|execute|finish|install|link|relink|uninstall) ;;
-
- # Catch anything else as an error
- *) func_error "invalid argument for $opt"
- exit_cmd=exit
- break
- ;;
-esac
- shift
- ;;
- --no-silent|--no-quiet)
- opt_silent=false
-func_append preserve_args " $opt"
- ;;
- --no-warning|--no-warn)
- opt_warning=false
-func_append preserve_args " $opt"
- ;;
- --no-verbose)
- opt_verbose=false
-func_append preserve_args " $opt"
- ;;
- --silent|--quiet)
- opt_silent=:
-func_append preserve_args " $opt"
- opt_verbose=false
- ;;
- --verbose|-v)
- opt_verbose=:
-func_append preserve_args " $opt"
-opt_silent=false
- ;;
- --tag)
- test $# = 0 && func_missing_arg $opt && break
- optarg="$1"
- opt_tag="$optarg"
-func_append preserve_args " $opt $optarg"
-func_enable_tag "$optarg"
- shift
- ;;
-
- -\?|-h) func_usage ;;
- --help) func_help ;;
- --version) func_version ;;
-
- # Separate optargs to long options:
- --*=*)
- func_split_long_opt "$opt"
- set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
- shift
- ;;
-
- # Separate non-argument short options:
- -\?*|-h*|-n*|-v*)
- func_split_short_opt "$opt"
- set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
- shift
- ;;
-
- --) break ;;
- -*) func_fatal_help "unrecognized option \`$opt'" ;;
- *) set dummy "$opt" ${1+"$@"}; shift; break ;;
- esac
- done
-
- # Validate options:
-
- # save first non-option argument
- if test "$#" -gt 0; then
- nonopt="$opt"
- shift
- fi
-
- # preserve --debug
- test "$opt_debug" = : || func_append preserve_args " --debug"
-
- case $host in
- *cygwin* | *mingw* | *pw32* | *cegcc*)
- # don't eliminate duplications in $postdeps and $predeps
- opt_duplicate_compiler_generated_deps=:
- ;;
- *)
- opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
- ;;
- esac
-
- $opt_help || {
- # Sanity checks first:
- func_check_version_match
-
- if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
- func_fatal_configuration "not configured to build any kind of library"
- fi
-
- # Darwin sucks
- eval std_shrext=\"$shrext_cmds\"
-
- # Only execute mode is allowed to have -dlopen flags.
- if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
- func_error "unrecognized option \`-dlopen'"
- $ECHO "$help" 1>&2
- exit $EXIT_FAILURE
- fi
-
- # Change the help message to a mode-specific one.
- generic_help="$help"
- help="Try \`$progname --help --mode=$opt_mode' for more information."
- }
-
-
- # Bail if the options were screwed
- $exit_cmd $EXIT_FAILURE
-}
-
-
-
-
-## ----------- ##
-## Main. ##
-## ----------- ##
-
-# func_lalib_p file
-# True iff FILE is a libtool `.la' library or `.lo' object file.
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_lalib_p ()
-{
- test -f "$1" &&
- $SED -e 4q "$1" 2>/dev/null \
- | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
-}
-
-# func_lalib_unsafe_p file
-# True iff FILE is a libtool `.la' library or `.lo' object file.
-# This function implements the same check as func_lalib_p without
-# resorting to external programs. To this end, it redirects stdin and
-# closes it afterwards, without saving the original file descriptor.
-# As a safety measure, use it only where a negative result would be
-# fatal anyway. Works if `file' does not exist.
-func_lalib_unsafe_p ()
-{
- lalib_p=no
- if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
- for lalib_p_l in 1 2 3 4
- do
- read lalib_p_line
- case "$lalib_p_line" in
- \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
- esac
- done
- exec 0<&5 5<&-
- fi
- test "$lalib_p" = yes
-}
-
-# func_ltwrapper_script_p file
-# True iff FILE is a libtool wrapper script
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_ltwrapper_script_p ()
-{
- func_lalib_p "$1"
-}
-
-# func_ltwrapper_executable_p file
-# True iff FILE is a libtool wrapper executable
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_ltwrapper_executable_p ()
-{
- func_ltwrapper_exec_suffix=
- case $1 in
- *.exe) ;;
- *) func_ltwrapper_exec_suffix=.exe ;;
- esac
- $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
-}
-
-# func_ltwrapper_scriptname file
-# Assumes file is an ltwrapper_executable
-# uses $file to determine the appropriate filename for a
-# temporary ltwrapper_script.
-func_ltwrapper_scriptname ()
-{
- func_dirname_and_basename "$1" "" "."
- func_stripname '' '.exe' "$func_basename_result"
- func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
-}
-
-# func_ltwrapper_p file
-# True iff FILE is a libtool wrapper script or wrapper executable
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_ltwrapper_p ()
-{
- func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
-}
-
-
-# func_execute_cmds commands fail_cmd
-# Execute tilde-delimited COMMANDS.
-# If FAIL_CMD is given, eval that upon failure.
-# FAIL_CMD may read-access the current command in variable CMD!
-func_execute_cmds ()
-{
- $opt_debug
- save_ifs=$IFS; IFS='~'
- for cmd in $1; do
- IFS=$save_ifs
- eval cmd=\"$cmd\"
- func_show_eval "$cmd" "${2-:}"
- done
- IFS=$save_ifs
-}
-
-
-# func_source file
-# Source FILE, adding directory component if necessary.
-# Note that it is not necessary on cygwin/mingw to append a dot to
-# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
-# behavior happens only for exec(3), not for open(2)! Also, sourcing
-# `FILE.' does not work on cygwin managed mounts.
-func_source ()
-{
- $opt_debug
- case $1 in
- */* | *\\*) . "$1" ;;
- *) . "./$1" ;;
- esac
-}
-
-
-# func_resolve_sysroot PATH
-# Replace a leading = in PATH with a sysroot. Store the result into
-# func_resolve_sysroot_result
-func_resolve_sysroot ()
-{
- func_resolve_sysroot_result=$1
- case $func_resolve_sysroot_result in
- =*)
- func_stripname '=' '' "$func_resolve_sysroot_result"
- func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
- ;;
- esac
-}
-
-# func_replace_sysroot PATH
-# If PATH begins with the sysroot, replace it with = and
-# store the result into func_replace_sysroot_result.
-func_replace_sysroot ()
-{
- case "$lt_sysroot:$1" in
- ?*:"$lt_sysroot"*)
- func_stripname "$lt_sysroot" '' "$1"
- func_replace_sysroot_result="=$func_stripname_result"
- ;;
- *)
- # Including no sysroot.
- func_replace_sysroot_result=$1
- ;;
- esac
-}
-
-# func_infer_tag arg
-# Infer tagged configuration to use if any are available and
-# if one wasn't chosen via the "--tag" command line option.
-# Only attempt this if the compiler in the base compile
-# command doesn't match the default compiler.
-# arg is usually of the form 'gcc ...'
-func_infer_tag ()
-{
- $opt_debug
- if test -n "$available_tags" && test -z "$tagname"; then
- CC_quoted=
- for arg in $CC; do
- func_append_quoted CC_quoted "$arg"
- done
- CC_expanded=`func_echo_all $CC`
- CC_quoted_expanded=`func_echo_all $CC_quoted`
- case $@ in
- # Blanks in the command may have been stripped by the calling shell,
- # but not from the CC environment variable when configure was run.
- " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
- " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
- # Blanks at the start of $base_compile will cause this to fail
- # if we don't check for them as well.
- *)
- for z in $available_tags; do
- if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
- # Evaluate the configuration.
- eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
- CC_quoted=
- for arg in $CC; do
- # Double-quote args containing other shell metacharacters.
- func_append_quoted CC_quoted "$arg"
- done
- CC_expanded=`func_echo_all $CC`
- CC_quoted_expanded=`func_echo_all $CC_quoted`
- case "$@ " in
- " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
- " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
- # The compiler in the base compile command matches
- # the one in the tagged configuration.
- # Assume this is the tagged configuration we want.
- tagname=$z
- break
- ;;
- esac
- fi
- done
- # If $tagname still isn't set, then no tagged configuration
- # was found and let the user know that the "--tag" command
- # line option must be used.
- if test -z "$tagname"; then
- func_echo "unable to infer tagged configuration"
- func_fatal_error "specify a tag with \`--tag'"
-# else
-# func_verbose "using $tagname tagged configuration"
- fi
- ;;
- esac
- fi
-}
-
-
-
-# func_write_libtool_object output_name pic_name nonpic_name
-# Create a libtool object file (analogous to a ".la" file),
-# but don't create it if we're doing a dry run.
-func_write_libtool_object ()
-{
- write_libobj=${1}
- if test "$build_libtool_libs" = yes; then
- write_lobj=\'${2}\'
- else
- write_lobj=none
- fi
-
- if test "$build_old_libs" = yes; then
- write_oldobj=\'${3}\'
- else
- write_oldobj=none
- fi
-
- $opt_dry_run || {
- cat >${write_libobj}T <<EOF
-# $write_libobj - a libtool object file
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# Name of the PIC object.
-pic_object=$write_lobj
-
-# Name of the non-PIC object
-non_pic_object=$write_oldobj
-
-EOF
- $MV "${write_libobj}T" "${write_libobj}"
- }
-}
-
-
-##################################################
-# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
-##################################################
-
-# func_convert_core_file_wine_to_w32 ARG
-# Helper function used by file name conversion functions when $build is *nix,
-# and $host is mingw, cygwin, or some other w32 environment. Relies on a
-# correctly configured wine environment available, with the winepath program
-# in $build's $PATH.
-#
-# ARG is the $build file name to be converted to w32 format.
-# Result is available in $func_convert_core_file_wine_to_w32_result, and will
-# be empty on error (or when ARG is empty)
-func_convert_core_file_wine_to_w32 ()
-{
- $opt_debug
- func_convert_core_file_wine_to_w32_result="$1"
- if test -n "$1"; then
- # Unfortunately, winepath does not exit with a non-zero error code, so we
- # are forced to check the contents of stdout. On the other hand, if the
- # command is not found, the shell will set an exit code of 127 and print
- # *an error message* to stdout. So we must check for both error code of
- # zero AND non-empty stdout, which explains the odd construction:
- func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
- if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
- func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
- $SED -e "$lt_sed_naive_backslashify"`
- else
- func_convert_core_file_wine_to_w32_result=
- fi
- fi
-}
-# end: func_convert_core_file_wine_to_w32
-
-
-# func_convert_core_path_wine_to_w32 ARG
-# Helper function used by path conversion functions when $build is *nix, and
-# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
-# configured wine environment available, with the winepath program in $build's
-# $PATH. Assumes ARG has no leading or trailing path separator characters.
-#
-# ARG is path to be converted from $build format to win32.
-# Result is available in $func_convert_core_path_wine_to_w32_result.
-# Unconvertible file (directory) names in ARG are skipped; if no directory names
-# are convertible, then the result may be empty.
-func_convert_core_path_wine_to_w32 ()
-{
- $opt_debug
- # unfortunately, winepath doesn't convert paths, only file names
- func_convert_core_path_wine_to_w32_result=""
- if test -n "$1"; then
- oldIFS=$IFS
- IFS=:
- for func_convert_core_path_wine_to_w32_f in $1; do
- IFS=$oldIFS
- func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
- if test -n "$func_convert_core_file_wine_to_w32_result" ; then
- if test -z "$func_convert_core_path_wine_to_w32_result"; then
- func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
- else
- func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
- fi
- fi
- done
- IFS=$oldIFS
- fi
-}
-# end: func_convert_core_path_wine_to_w32
-
-
-# func_cygpath ARGS...
-# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
-# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
-# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
-# (2), returns the Cygwin file name or path in func_cygpath_result (input
-# file name or path is assumed to be in w32 format, as previously converted
-# from $build's *nix or MSYS format). In case (3), returns the w32 file name
-# or path in func_cygpath_result (input file name or path is assumed to be in
-# Cygwin format). Returns an empty string on error.
-#
-# ARGS are passed to cygpath, with the last one being the file name or path to
-# be converted.
-#
-# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
-# environment variable; do not put it in $PATH.
-func_cygpath ()
-{
- $opt_debug
- if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
- func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
- if test "$?" -ne 0; then
- # on failure, ensure result is empty
- func_cygpath_result=
- fi
- else
- func_cygpath_result=
- func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
- fi
-}
-#end: func_cygpath
-
-
-# func_convert_core_msys_to_w32 ARG
-# Convert file name or path ARG from MSYS format to w32 format. Return
-# result in func_convert_core_msys_to_w32_result.
-func_convert_core_msys_to_w32 ()
-{
- $opt_debug
- # awkward: cmd appends spaces to result
- func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
- $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
-}
-#end: func_convert_core_msys_to_w32
-
-
-# func_convert_file_check ARG1 ARG2
-# Verify that ARG1 (a file name in $build format) was converted to $host
-# format in ARG2. Otherwise, emit an error message, but continue (resetting
-# func_to_host_file_result to ARG1).
-func_convert_file_check ()
-{
- $opt_debug
- if test -z "$2" && test -n "$1" ; then
- func_error "Could not determine host file name corresponding to"
- func_error " \`$1'"
- func_error "Continuing, but uninstalled executables may not work."
- # Fallback:
- func_to_host_file_result="$1"
- fi
-}
-# end func_convert_file_check
-
-
-# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
-# Verify that FROM_PATH (a path in $build format) was converted to $host
-# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
-# func_to_host_file_result to a simplistic fallback value (see below).
-func_convert_path_check ()
-{
- $opt_debug
- if test -z "$4" && test -n "$3"; then
- func_error "Could not determine the host path corresponding to"
- func_error " \`$3'"
- func_error "Continuing, but uninstalled executables may not work."
- # Fallback. This is a deliberately simplistic "conversion" and
- # should not be "improved". See libtool.info.
- if test "x$1" != "x$2"; then
- lt_replace_pathsep_chars="s|$1|$2|g"
- func_to_host_path_result=`echo "$3" |
- $SED -e "$lt_replace_pathsep_chars"`
- else
- func_to_host_path_result="$3"
- fi
- fi
-}
-# end func_convert_path_check
-
-
-# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
-# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
-# and appending REPL if ORIG matches BACKPAT.
-func_convert_path_front_back_pathsep ()
-{
- $opt_debug
- case $4 in
- $1 ) func_to_host_path_result="$3$func_to_host_path_result"
- ;;
- esac
- case $4 in
- $2 ) func_append func_to_host_path_result "$3"
- ;;
- esac
-}
-# end func_convert_path_front_back_pathsep
-
-
-##################################################
-# $build to $host FILE NAME CONVERSION FUNCTIONS #
-##################################################
-# invoked via `$to_host_file_cmd ARG'
-#
-# In each case, ARG is the path to be converted from $build to $host format.
-# Result will be available in $func_to_host_file_result.
-
-
-# func_to_host_file ARG
-# Converts the file name ARG from $build format to $host format. Return result
-# in func_to_host_file_result.
-func_to_host_file ()
-{
- $opt_debug
- $to_host_file_cmd "$1"
-}
-# end func_to_host_file
-
-
-# func_to_tool_file ARG LAZY
-# converts the file name ARG from $build format to toolchain format. Return
-# result in func_to_tool_file_result. If the conversion in use is listed
-# in (the comma separated) LAZY, no conversion takes place.
-func_to_tool_file ()
-{
- $opt_debug
- case ,$2, in
- *,"$to_tool_file_cmd",*)
- func_to_tool_file_result=$1
- ;;
- *)
- $to_tool_file_cmd "$1"
- func_to_tool_file_result=$func_to_host_file_result
- ;;
- esac
-}
-# end func_to_tool_file
-
-
-# func_convert_file_noop ARG
-# Copy ARG to func_to_host_file_result.
-func_convert_file_noop ()
-{
- func_to_host_file_result="$1"
-}
-# end func_convert_file_noop
-
-
-# func_convert_file_msys_to_w32 ARG
-# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
-# conversion to w32 is not available inside the cwrapper. Returns result in
-# func_to_host_file_result.
-func_convert_file_msys_to_w32 ()
-{
- $opt_debug
- func_to_host_file_result="$1"
- if test -n "$1"; then
- func_convert_core_msys_to_w32 "$1"
- func_to_host_file_result="$func_convert_core_msys_to_w32_result"
- fi
- func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_msys_to_w32
-
-
-# func_convert_file_cygwin_to_w32 ARG
-# Convert file name ARG from Cygwin to w32 format. Returns result in
-# func_to_host_file_result.
-func_convert_file_cygwin_to_w32 ()
-{
- $opt_debug
- func_to_host_file_result="$1"
- if test -n "$1"; then
- # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
- # LT_CYGPATH in this case.
- func_to_host_file_result=`cygpath -m "$1"`
- fi
- func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_cygwin_to_w32
-
-
-# func_convert_file_nix_to_w32 ARG
-# Convert file name ARG from *nix to w32 format. Requires a wine environment
-# and a working winepath. Returns result in func_to_host_file_result.
-func_convert_file_nix_to_w32 ()
-{
- $opt_debug
- func_to_host_file_result="$1"
- if test -n "$1"; then
- func_convert_core_file_wine_to_w32 "$1"
- func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
- fi
- func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_nix_to_w32
-
-
-# func_convert_file_msys_to_cygwin ARG
-# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
-# Returns result in func_to_host_file_result.
-func_convert_file_msys_to_cygwin ()
-{
- $opt_debug
- func_to_host_file_result="$1"
- if test -n "$1"; then
- func_convert_core_msys_to_w32 "$1"
- func_cygpath -u "$func_convert_core_msys_to_w32_result"
- func_to_host_file_result="$func_cygpath_result"
- fi
- func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_msys_to_cygwin
-
-
-# func_convert_file_nix_to_cygwin ARG
-# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed
-# in a wine environment, working winepath, and LT_CYGPATH set. Returns result
-# in func_to_host_file_result.
-func_convert_file_nix_to_cygwin ()
-{
- $opt_debug
- func_to_host_file_result="$1"
- if test -n "$1"; then
- # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
- func_convert_core_file_wine_to_w32 "$1"
- func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
- func_to_host_file_result="$func_cygpath_result"
- fi
- func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_nix_to_cygwin
-
-
-#############################################
-# $build to $host PATH CONVERSION FUNCTIONS #
-#############################################
-# invoked via `$to_host_path_cmd ARG'
-#
-# In each case, ARG is the path to be converted from $build to $host format.
-# The result will be available in $func_to_host_path_result.
-#
-# Path separators are also converted from $build format to $host format. If
-# ARG begins or ends with a path separator character, it is preserved (but
-# converted to $host format) on output.
-#
-# All path conversion functions are named using the following convention:
-# file name conversion function : func_convert_file_X_to_Y ()
-# path conversion function : func_convert_path_X_to_Y ()
-# where, for any given $build/$host combination the 'X_to_Y' value is the
-# same. If conversion functions are added for new $build/$host combinations,
-# the two new functions must follow this pattern, or func_init_to_host_path_cmd
-# will break.
-
-
-# func_init_to_host_path_cmd
-# Ensures that function "pointer" variable $to_host_path_cmd is set to the
-# appropriate value, based on the value of $to_host_file_cmd.
-to_host_path_cmd=
-func_init_to_host_path_cmd ()
-{
- $opt_debug
- if test -z "$to_host_path_cmd"; then
- func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
- to_host_path_cmd="func_convert_path_${func_stripname_result}"
- fi
-}
-
-
-# func_to_host_path ARG
-# Converts the path ARG from $build format to $host format. Return result
-# in func_to_host_path_result.
-func_to_host_path ()
-{
- $opt_debug
- func_init_to_host_path_cmd
- $to_host_path_cmd "$1"
-}
-# end func_to_host_path
-
-
-# func_convert_path_noop ARG
-# Copy ARG to func_to_host_path_result.
-func_convert_path_noop ()
-{
- func_to_host_path_result="$1"
-}
-# end func_convert_path_noop
-
-
-# func_convert_path_msys_to_w32 ARG
-# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
-# conversion to w32 is not available inside the cwrapper. Returns result in
-# func_to_host_path_result.
-func_convert_path_msys_to_w32 ()
-{
- $opt_debug
- func_to_host_path_result="$1"
- if test -n "$1"; then
- # Remove leading and trailing path separator characters from ARG. MSYS
- # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
- # and winepath ignores them completely.
- func_stripname : : "$1"
- func_to_host_path_tmp1=$func_stripname_result
- func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
- func_to_host_path_result="$func_convert_core_msys_to_w32_result"
- func_convert_path_check : ";" \
- "$func_to_host_path_tmp1" "$func_to_host_path_result"
- func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
- fi
-}
-# end func_convert_path_msys_to_w32
-
-
-# func_convert_path_cygwin_to_w32 ARG
-# Convert path ARG from Cygwin to w32 format. Returns result in
-# func_to_host_file_result.
-func_convert_path_cygwin_to_w32 ()
-{
- $opt_debug
- func_to_host_path_result="$1"
- if test -n "$1"; then
- # See func_convert_path_msys_to_w32:
- func_stripname : : "$1"
- func_to_host_path_tmp1=$func_stripname_result
- func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
- func_convert_path_check : ";" \
- "$func_to_host_path_tmp1" "$func_to_host_path_result"
- func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
- fi
-}
-# end func_convert_path_cygwin_to_w32
-
-
-# func_convert_path_nix_to_w32 ARG
-# Convert path ARG from *nix to w32 format. Requires a wine environment and
-# a working winepath. Returns result in func_to_host_file_result.
-func_convert_path_nix_to_w32 ()
-{
- $opt_debug
- func_to_host_path_result="$1"
- if test -n "$1"; then
- # See func_convert_path_msys_to_w32:
- func_stripname : : "$1"
- func_to_host_path_tmp1=$func_stripname_result
- func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
- func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
- func_convert_path_check : ";" \
- "$func_to_host_path_tmp1" "$func_to_host_path_result"
- func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
- fi
-}
-# end func_convert_path_nix_to_w32
-
-
-# func_convert_path_msys_to_cygwin ARG
-# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
-# Returns result in func_to_host_file_result.
-func_convert_path_msys_to_cygwin ()
-{
- $opt_debug
- func_to_host_path_result="$1"
- if test -n "$1"; then
- # See func_convert_path_msys_to_w32:
- func_stripname : : "$1"
- func_to_host_path_tmp1=$func_stripname_result
- func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
- func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
- func_to_host_path_result="$func_cygpath_result"
- func_convert_path_check : : \
- "$func_to_host_path_tmp1" "$func_to_host_path_result"
- func_convert_path_front_back_pathsep ":*" "*:" : "$1"
- fi
-}
-# end func_convert_path_msys_to_cygwin
-
-
-# func_convert_path_nix_to_cygwin ARG
-# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a
-# a wine environment, working winepath, and LT_CYGPATH set. Returns result in
-# func_to_host_file_result.
-func_convert_path_nix_to_cygwin ()
-{
- $opt_debug
- func_to_host_path_result="$1"
- if test -n "$1"; then
- # Remove leading and trailing path separator characters from
- # ARG. msys behavior is inconsistent here, cygpath turns them
- # into '.;' and ';.', and winepath ignores them completely.
- func_stripname : : "$1"
- func_to_host_path_tmp1=$func_stripname_result
- func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
- func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
- func_to_host_path_result="$func_cygpath_result"
- func_convert_path_check : : \
- "$func_to_host_path_tmp1" "$func_to_host_path_result"
- func_convert_path_front_back_pathsep ":*" "*:" : "$1"
- fi
-}
-# end func_convert_path_nix_to_cygwin
-
-
-# func_mode_compile arg...
-func_mode_compile ()
-{
- $opt_debug
- # Get the compilation command and the source file.
- base_compile=
- srcfile="$nonopt" # always keep a non-empty value in "srcfile"
- suppress_opt=yes
- suppress_output=
- arg_mode=normal
- libobj=
- later=
- pie_flag=
-
- for arg
- do
- case $arg_mode in
- arg )
- # do not "continue". Instead, add this to base_compile
- lastarg="$arg"
- arg_mode=normal
- ;;
-
- target )
- libobj="$arg"
- arg_mode=normal
- continue
- ;;
-
- normal )
- # Accept any command-line options.
- case $arg in
- -o)
- test -n "$libobj" && \
- func_fatal_error "you cannot specify \`-o' more than once"
- arg_mode=target
- continue
- ;;
-
- -pie | -fpie | -fPIE)
- func_append pie_flag " $arg"
- continue
- ;;
-
- -shared | -static | -prefer-pic | -prefer-non-pic)
- func_append later " $arg"
- continue
- ;;
-
- -no-suppress)
- suppress_opt=no
- continue
- ;;
-
- -Xcompiler)
- arg_mode=arg # the next one goes into the "base_compile" arg list
- continue # The current "srcfile" will either be retained or
- ;; # replaced later. I would guess that would be a bug.
-
- -Wc,*)
- func_stripname '-Wc,' '' "$arg"
- args=$func_stripname_result
- lastarg=
- save_ifs="$IFS"; IFS=','
- for arg in $args; do
- IFS="$save_ifs"
- func_append_quoted lastarg "$arg"
- done
- IFS="$save_ifs"
- func_stripname ' ' '' "$lastarg"
- lastarg=$func_stripname_result
-
- # Add the arguments to base_compile.
- func_append base_compile " $lastarg"
- continue
- ;;
-
- *)
- # Accept the current argument as the source file.
- # The previous "srcfile" becomes the current argument.
- #
- lastarg="$srcfile"
- srcfile="$arg"
- ;;
- esac # case $arg
- ;;
- esac # case $arg_mode
-
- # Aesthetically quote the previous argument.
- func_append_quoted base_compile "$lastarg"
- done # for arg
-
- case $arg_mode in
- arg)
- func_fatal_error "you must specify an argument for -Xcompile"
- ;;
- target)
- func_fatal_error "you must specify a target with \`-o'"
- ;;
- *)
- # Get the name of the library object.
- test -z "$libobj" && {
- func_basename "$srcfile"
- libobj="$func_basename_result"
- }
- ;;
- esac
-
- # Recognize several different file suffixes.
- # If the user specifies -o file.o, it is replaced with file.lo
- case $libobj in
- *.[cCFSifmso] | \
- *.ada | *.adb | *.ads | *.asm | \
- *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
- *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
- func_xform "$libobj"
- libobj=$func_xform_result
- ;;
- esac
-
- case $libobj in
- *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
- *)
- func_fatal_error "cannot determine name of library object from \`$libobj'"
- ;;
- esac
-
- func_infer_tag $base_compile
-
- for arg in $later; do
- case $arg in
- -shared)
- test "$build_libtool_libs" != yes && \
- func_fatal_configuration "can not build a shared library"
- build_old_libs=no
- continue
- ;;
-
- -static)
- build_libtool_libs=no
- build_old_libs=yes
- continue
- ;;
-
- -prefer-pic)
- pic_mode=yes
- continue
- ;;
-
- -prefer-non-pic)
- pic_mode=no
- continue
- ;;
- esac
- done
-
- func_quote_for_eval "$libobj"
- test "X$libobj" != "X$func_quote_for_eval_result" \
- && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \
- && func_warning "libobj name \`$libobj' may not contain shell special characters."
- func_dirname_and_basename "$obj" "/" ""
- objname="$func_basename_result"
- xdir="$func_dirname_result"
- lobj=${xdir}$objdir/$objname
-
- test -z "$base_compile" && \
- func_fatal_help "you must specify a compilation command"
-
- # Delete any leftover library objects.
- if test "$build_old_libs" = yes; then
- removelist="$obj $lobj $libobj ${libobj}T"
- else
- removelist="$lobj $libobj ${libobj}T"
- fi
-
- # On Cygwin there's no "real" PIC flag so we must build both object types
- case $host_os in
- cygwin* | mingw* | pw32* | os2* | cegcc*)
- pic_mode=default
- ;;
- esac
- if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
- # non-PIC code in shared libraries is not supported
- pic_mode=default
- fi
-
- # Calculate the filename of the output object if compiler does
- # not support -o with -c
- if test "$compiler_c_o" = no; then
- output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
- lockfile="$output_obj.lock"
- else
- output_obj=
- need_locks=no
- lockfile=
- fi
-
- # Lock this critical section if it is needed
- # We use this script file to make the link, it avoids creating a new file
- if test "$need_locks" = yes; then
- until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
- func_echo "Waiting for $lockfile to be removed"
- sleep 2
- done
- elif test "$need_locks" = warn; then
- if test -f "$lockfile"; then
- $ECHO "\
-*** ERROR, $lockfile exists and contains:
-`cat $lockfile 2>/dev/null`
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together. If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
- $opt_dry_run || $RM $removelist
- exit $EXIT_FAILURE
- fi
- func_append removelist " $output_obj"
- $ECHO "$srcfile" > "$lockfile"
- fi
-
- $opt_dry_run || $RM $removelist
- func_append removelist " $lockfile"
- trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
-
- func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
- srcfile=$func_to_tool_file_result
- func_quote_for_eval "$srcfile"
- qsrcfile=$func_quote_for_eval_result
-
- # Only build a PIC object if we are building libtool libraries.
- if test "$build_libtool_libs" = yes; then
- # Without this assignment, base_compile gets emptied.
- fbsd_hideous_sh_bug=$base_compile
-
- if test "$pic_mode" != no; then
- command="$base_compile $qsrcfile $pic_flag"
- else
- # Don't build PIC code
- command="$base_compile $qsrcfile"
- fi
-
- func_mkdir_p "$xdir$objdir"
-
- if test -z "$output_obj"; then
- # Place PIC objects in $objdir
- func_append command " -o $lobj"
- fi
-
- func_show_eval_locale "$command" \
- 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
-
- if test "$need_locks" = warn &&
- test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
- $ECHO "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together. If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
- $opt_dry_run || $RM $removelist
- exit $EXIT_FAILURE
- fi
-
- # Just move the object if needed, then go on to compile the next one
- if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
- func_show_eval '$MV "$output_obj" "$lobj"' \
- 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
- fi
-
- # Allow error messages only from the first compilation.
- if test "$suppress_opt" = yes; then
- suppress_output=' >/dev/null 2>&1'
- fi
- fi
-
- # Only build a position-dependent object if we build old libraries.
- if test "$build_old_libs" = yes; then
- if test "$pic_mode" != yes; then
- # Don't build PIC code
- command="$base_compile $qsrcfile$pie_flag"
- else
- command="$base_compile $qsrcfile $pic_flag"
- fi
- if test "$compiler_c_o" = yes; then
- func_append command " -o $obj"
- fi
-
- # Suppress compiler output if we already did a PIC compilation.
- func_append command "$suppress_output"
- func_show_eval_locale "$command" \
- '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
-
- if test "$need_locks" = warn &&
- test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
- $ECHO "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together. If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
- $opt_dry_run || $RM $removelist
- exit $EXIT_FAILURE
- fi
-
- # Just move the object if needed
- if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
- func_show_eval '$MV "$output_obj" "$obj"' \
- 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
- fi
- fi
-
- $opt_dry_run || {
- func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
-
- # Unlock the critical section if it was locked
- if test "$need_locks" != no; then
- removelist=$lockfile
- $RM "$lockfile"
- fi
- }
-
- exit $EXIT_SUCCESS
-}
-
-$opt_help || {
- test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
-}
-
-func_mode_help ()
-{
- # We need to display help for each of the modes.
- case $opt_mode in
- "")
- # Generic help is extracted from the usage comments
- # at the start of this file.
- func_help
- ;;
-
- clean)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
-
-Remove files from the build directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, object or program, all the files associated
-with it are deleted. Otherwise, only FILE itself is deleted using RM."
- ;;
-
- compile)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
-
-Compile a source file into a libtool library object.
-
-This mode accepts the following additional options:
-
- -o OUTPUT-FILE set the output file name to OUTPUT-FILE
- -no-suppress do not suppress compiler output for multiple passes
- -prefer-pic try to build PIC objects only
- -prefer-non-pic try to build non-PIC objects only
- -shared do not build a \`.o' file suitable for static linking
- -static only build a \`.o' file suitable for static linking
- -Wc,FLAG pass FLAG directly to the compiler
-
-COMPILE-COMMAND is a command to be used in creating a \`standard' object file
-from the given SOURCEFILE.
-
-The output file name is determined by removing the directory component from
-SOURCEFILE, then substituting the C source code suffix \`.c' with the
-library object suffix, \`.lo'."
- ;;
-
- execute)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
-
-Automatically set library path, then run a program.
-
-This mode accepts the following additional options:
-
- -dlopen FILE add the directory containing FILE to the library path
-
-This mode sets the library path environment variable according to \`-dlopen'
-flags.
-
-If any of the ARGS are libtool executable wrappers, then they are translated
-into their corresponding uninstalled binary, and any of their required library
-directories are added to the library path.
-
-Then, COMMAND is executed, with ARGS as arguments."
- ;;
-
- finish)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
-
-Complete the installation of libtool libraries.
-
-Each LIBDIR is a directory that contains libtool libraries.
-
-The commands that this mode executes may require superuser privileges. Use
-the \`--dry-run' option if you just want to see what would be executed."
- ;;
-
- install)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
-
-Install executables or libraries.
-
-INSTALL-COMMAND is the installation command. The first component should be
-either the \`install' or \`cp' program.
-
-The following components of INSTALL-COMMAND are treated specially:
-
- -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation
-
-The rest of the components are interpreted as arguments to that command (only
-BSD-compatible install options are recognized)."
- ;;
-
- link)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
-
-Link object files or libraries together to form another library, or to
-create an executable program.
-
-LINK-COMMAND is a command using the C compiler that you would use to create
-a program from several object files.
-
-The following components of LINK-COMMAND are treated specially:
-
- -all-static do not do any dynamic linking at all
- -avoid-version do not add a version suffix if possible
- -bindir BINDIR specify path to binaries directory (for systems where
- libraries must be found in the PATH setting at runtime)
- -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
- -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
- -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
- -export-symbols SYMFILE
- try to export only the symbols listed in SYMFILE
- -export-symbols-regex REGEX
- try to export only the symbols matching REGEX
- -LLIBDIR search LIBDIR for required installed libraries
- -lNAME OUTPUT-FILE requires the installed library libNAME
- -module build a library that can dlopened
- -no-fast-install disable the fast-install mode
- -no-install link a not-installable executable
- -no-undefined declare that a library does not refer to external symbols
- -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
- -objectlist FILE Use a list of object files found in FILE to specify objects
- -precious-files-regex REGEX
- don't remove output files matching REGEX
- -release RELEASE specify package release information
- -rpath LIBDIR the created library will eventually be installed in LIBDIR
- -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
- -shared only do dynamic linking of libtool libraries
- -shrext SUFFIX override the standard shared library file extension
- -static do not do any dynamic linking of uninstalled libtool libraries
- -static-libtool-libs
- do not do any dynamic linking of libtool libraries
- -version-info CURRENT[:REVISION[:AGE]]
- specify library version info [each variable defaults to 0]
- -weak LIBNAME declare that the target provides the LIBNAME interface
- -Wc,FLAG
- -Xcompiler FLAG pass linker-specific FLAG directly to the compiler
- -Wl,FLAG
- -Xlinker FLAG pass linker-specific FLAG directly to the linker
- -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC)
-
-All other options (arguments beginning with \`-') are ignored.
-
-Every other argument is treated as a filename. Files ending in \`.la' are
-treated as uninstalled libtool libraries, other files are standard or library
-object files.
-
-If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
-only library objects (\`.lo' files) may be specified, and \`-rpath' is
-required, except when creating a convenience library.
-
-If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
-using \`ar' and \`ranlib', or on Windows using \`lib'.
-
-If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
-is created, otherwise an executable program is created."
- ;;
-
- uninstall)
- $ECHO \
-"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
-
-Remove libraries from an installation directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, all the files associated with it are deleted.
-Otherwise, only FILE itself is deleted using RM."
- ;;
-
- *)
- func_fatal_help "invalid operation mode \`$opt_mode'"
- ;;
- esac
-
- echo
- $ECHO "Try \`$progname --help' for more information about other modes."
-}
-
-# Now that we've collected a possible --mode arg, show help if necessary
-if $opt_help; then
- if test "$opt_help" = :; then
- func_mode_help
- else
- {
- func_help noexit
- for opt_mode in compile link execute install finish uninstall clean; do
- func_mode_help
- done
- } | sed -n '1p; 2,$s/^Usage:/ or: /p'
- {
- func_help noexit
- for opt_mode in compile link execute install finish uninstall clean; do
- echo
- func_mode_help
- done
- } |
- sed '1d
- /^When reporting/,/^Report/{
- H
- d
- }
- $x
- /information about other modes/d
- /more detailed .*MODE/d
- s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
- fi
- exit $?
-fi
-
-
-# func_mode_execute arg...
-func_mode_execute ()
-{
- $opt_debug
- # The first argument is the command name.
- cmd="$nonopt"
- test -z "$cmd" && \
- func_fatal_help "you must specify a COMMAND"
-
- # Handle -dlopen flags immediately.
- for file in $opt_dlopen; do
- test -f "$file" \
- || func_fatal_help "\`$file' is not a file"
-
- dir=
- case $file in
- *.la)
- func_resolve_sysroot "$file"
- file=$func_resolve_sysroot_result
-
- # Check to see that this really is a libtool archive.
- func_lalib_unsafe_p "$file" \
- || func_fatal_help "\`$lib' is not a valid libtool archive"
-
- # Read the libtool library.
- dlname=
- library_names=
- func_source "$file"
-
- # Skip this library if it cannot be dlopened.
- if test -z "$dlname"; then
- # Warn if it was a shared library.
- test -n "$library_names" && \
- func_warning "\`$file' was not linked with \`-export-dynamic'"
- continue
- fi
-
- func_dirname "$file" "" "."
- dir="$func_dirname_result"
-
- if test -f "$dir/$objdir/$dlname"; then
- func_append dir "/$objdir"
- else
- if test ! -f "$dir/$dlname"; then
- func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
- fi
- fi
- ;;
-
- *.lo)
- # Just add the directory containing the .lo file.
- func_dirname "$file" "" "."
- dir="$func_dirname_result"
- ;;
-
- *)
- func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
- continue
- ;;
- esac
-
- # Get the absolute pathname.
- absdir=`cd "$dir" && pwd`
- test -n "$absdir" && dir="$absdir"
-
- # Now add the directory to shlibpath_var.
- if eval "test -z \"\$$shlibpath_var\""; then
- eval "$shlibpath_var=\"\$dir\""
- else
- eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
- fi
- done
-
- # This variable tells wrapper scripts just to set shlibpath_var
- # rather than running their programs.
- libtool_execute_magic="$magic"
-
- # Check if any of the arguments is a wrapper script.
- args=
- for file
- do
- case $file in
- -* | *.la | *.lo ) ;;
- *)
- # Do a test to see if this is really a libtool program.
- if func_ltwrapper_script_p "$file"; then
- func_source "$file"
- # Transform arg to wrapped name.
- file="$progdir/$program"
- elif func_ltwrapper_executable_p "$file"; then
- func_ltwrapper_scriptname "$file"
- func_source "$func_ltwrapper_scriptname_result"
- # Transform arg to wrapped name.
- file="$progdir/$program"
- fi
- ;;
- esac
- # Quote arguments (to preserve shell metacharacters).
- func_append_quoted args "$file"
- done
-
- if test "X$opt_dry_run" = Xfalse; then
- if test -n "$shlibpath_var"; then
- # Export the shlibpath_var.
- eval "export $shlibpath_var"
- fi
-
- # Restore saved environment variables
- for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
- do
- eval "if test \"\${save_$lt_var+set}\" = set; then
- $lt_var=\$save_$lt_var; export $lt_var
- else
- $lt_unset $lt_var
- fi"
- done
-
- # Now prepare to actually exec the command.
- exec_cmd="\$cmd$args"
- else
- # Display what would be done.
- if test -n "$shlibpath_var"; then
- eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
- echo "export $shlibpath_var"
- fi
- $ECHO "$cmd$args"
- exit $EXIT_SUCCESS
- fi
-}
-
-test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
-
-
-# func_mode_finish arg...
-func_mode_finish ()
-{
- $opt_debug
- libs=
- libdirs=
- admincmds=
-
- for opt in "$nonopt" ${1+"$@"}
- do
- if test -d "$opt"; then
- func_append libdirs " $opt"
-
- elif test -f "$opt"; then
- if func_lalib_unsafe_p "$opt"; then
- func_append libs " $opt"
- else
- func_warning "\`$opt' is not a valid libtool archive"
- fi
-
- else
- func_fatal_error "invalid argument \`$opt'"
- fi
- done
-
- if test -n "$libs"; then
- if test -n "$lt_sysroot"; then
- sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
- sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
- else
- sysroot_cmd=
- fi
-
- # Remove sysroot references
- if $opt_dry_run; then
- for lib in $libs; do
- echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
- done
- else
- tmpdir=`func_mktempdir`
- for lib in $libs; do
- sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
- > $tmpdir/tmp-la
- mv -f $tmpdir/tmp-la $lib
- done
- ${RM}r "$tmpdir"
- fi
- fi
-
- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
- for libdir in $libdirs; do
- if test -n "$finish_cmds"; then
- # Do each command in the finish commands.
- func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
-'"$cmd"'"'
- fi
- if test -n "$finish_eval"; then
- # Do the single finish_eval.
- eval cmds=\"$finish_eval\"
- $opt_dry_run || eval "$cmds" || func_append admincmds "
- $cmds"
- fi
- done
- fi
-
- # Exit here if they wanted silent mode.
- $opt_silent && exit $EXIT_SUCCESS
-
- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
- echo "----------------------------------------------------------------------"
- echo "Libraries have been installed in:"
- for libdir in $libdirs; do
- $ECHO " $libdir"
- done
- echo
- echo "If you ever happen to want to link against installed libraries"
- echo "in a given directory, LIBDIR, you must either use libtool, and"
- echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
- echo "flag during linking and do at least one of the following:"
- if test -n "$shlibpath_var"; then
- echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
- echo " during execution"
- fi
- if test -n "$runpath_var"; then
- echo " - add LIBDIR to the \`$runpath_var' environment variable"
- echo " during linking"
- fi
- if test -n "$hardcode_libdir_flag_spec"; then
- libdir=LIBDIR
- eval flag=\"$hardcode_libdir_flag_spec\"
-
- $ECHO " - use the \`$flag' linker flag"
- fi
- if test -n "$admincmds"; then
- $ECHO " - have your system administrator run these commands:$admincmds"
- fi
- if test -f /etc/ld.so.conf; then
- echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
- fi
- echo
-
- echo "See any operating system documentation about shared libraries for"
- case $host in
- solaris2.[6789]|solaris2.1[0-9])
- echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
- echo "pages."
- ;;
- *)
- echo "more information, such as the ld(1) and ld.so(8) manual pages."
- ;;
- esac
- echo "----------------------------------------------------------------------"
- fi
- exit $EXIT_SUCCESS
-}
-
-test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
-
-
-# func_mode_install arg...
-func_mode_install ()
-{
- $opt_debug
- # There may be an optional sh(1) argument at the beginning of
- # install_prog (especially on Windows NT).
- if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
- # Allow the use of GNU shtool's install command.
- case $nonopt in *shtool*) :;; *) false;; esac; then
- # Aesthetically quote it.
- func_quote_for_eval "$nonopt"
- install_prog="$func_quote_for_eval_result "
- arg=$1
- shift
- else
- install_prog=
- arg=$nonopt
- fi
-
- # The real first argument should be the name of the installation program.
- # Aesthetically quote it.
- func_quote_for_eval "$arg"
- func_append install_prog "$func_quote_for_eval_result"
- install_shared_prog=$install_prog
- case " $install_prog " in
- *[\\\ /]cp\ *) install_cp=: ;;
- *) install_cp=false ;;
- esac
-
- # We need to accept at least all the BSD install flags.
- dest=
- files=
- opts=
- prev=
- install_type=
- isdir=no
- stripme=
- no_mode=:
- for arg
- do
- arg2=
- if test -n "$dest"; then
- func_append files " $dest"
- dest=$arg
- continue
- fi
-
- case $arg in
- -d) isdir=yes ;;
- -f)
- if $install_cp; then :; else
- prev=$arg
- fi
- ;;
- -g | -m | -o)
- prev=$arg
- ;;
- -s)
- stripme=" -s"
- continue
- ;;
- -*)
- ;;
- *)
- # If the previous option needed an argument, then skip it.
- if test -n "$prev"; then
- if test "x$prev" = x-m && test -n "$install_override_mode"; then
- arg2=$install_override_mode
- no_mode=false
- fi
- prev=
- else
- dest=$arg
- continue
- fi
- ;;
- esac
-
- # Aesthetically quote the argument.
- func_quote_for_eval "$arg"
- func_append install_prog " $func_quote_for_eval_result"
- if test -n "$arg2"; then
- func_quote_for_eval "$arg2"
- fi
- func_append install_shared_prog " $func_quote_for_eval_result"
- done
-
- test -z "$install_prog" && \
- func_fatal_help "you must specify an install program"
-
- test -n "$prev" && \
- func_fatal_help "the \`$prev' option requires an argument"
-
- if test -n "$install_override_mode" && $no_mode; then
- if $install_cp; then :; else
- func_quote_for_eval "$install_override_mode"
- func_append install_shared_prog " -m $func_quote_for_eval_result"
- fi
- fi
-
- if test -z "$files"; then
- if test -z "$dest"; then
- func_fatal_help "no file or destination specified"
- else
- func_fatal_help "you must specify a destination"
- fi
- fi
-
- # Strip any trailing slash from the destination.
- func_stripname '' '/' "$dest"
- dest=$func_stripname_result
-
- # Check to see that the destination is a directory.
- test -d "$dest" && isdir=yes
- if test "$isdir" = yes; then
- destdir="$dest"
- destname=
- else
- func_dirname_and_basename "$dest" "" "."
- destdir="$func_dirname_result"
- destname="$func_basename_result"
-
- # Not a directory, so check to see that there is only one file specified.
- set dummy $files; shift
- test "$#" -gt 1 && \
- func_fatal_help "\`$dest' is not a directory"
- fi
- case $destdir in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- for file in $files; do
- case $file in
- *.lo) ;;
- *)
- func_fatal_help "\`$destdir' must be an absolute directory name"
- ;;
- esac
- done
- ;;
- esac
-
- # This variable tells wrapper scripts just to set variables rather
- # than running their programs.
- libtool_install_magic="$magic"
-
- staticlibs=
- future_libdirs=
- current_libdirs=
- for file in $files; do
-
- # Do each installation.
- case $file in
- *.$libext)
- # Do the static libraries later.
- func_append staticlibs " $file"
- ;;
-
- *.la)
- func_resolve_sysroot "$file"
- file=$func_resolve_sysroot_result
-
- # Check to see that this really is a libtool archive.
- func_lalib_unsafe_p "$file" \
- || func_fatal_help "\`$file' is not a valid libtool archive"
-
- library_names=
- old_library=
- relink_command=
- func_source "$file"
-
- # Add the libdir to current_libdirs if it is the destination.
- if test "X$destdir" = "X$libdir"; then
- case "$current_libdirs " in
- *" $libdir "*) ;;
- *) func_append current_libdirs " $libdir" ;;
- esac
- else
- # Note the libdir as a future libdir.
- case "$future_libdirs " in
- *" $libdir "*) ;;
- *) func_append future_libdirs " $libdir" ;;
- esac
- fi
-
- func_dirname "$file" "/" ""
- dir="$func_dirname_result"
- func_append dir "$objdir"
-
- if test -n "$relink_command"; then
- # Determine the prefix the user has applied to our future dir.
- inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
-
- # Don't allow the user to place us outside of our expected
- # location b/c this prevents finding dependent libraries that
- # are installed to the same prefix.
- # At present, this check doesn't affect windows .dll's that
- # are installed into $libdir/../bin (currently, that works fine)
- # but it's something to keep an eye on.
- test "$inst_prefix_dir" = "$destdir" && \
- func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
-
- if test -n "$inst_prefix_dir"; then
- # Stick the inst_prefix_dir data into the link command.
- relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
- else
- relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
- fi
-
- func_warning "relinking \`$file'"
- func_show_eval "$relink_command" \
- 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
- fi
-
- # See the names of the shared library.
- set dummy $library_names; shift
- if test -n "$1"; then
- realname="$1"
- shift
-
- srcname="$realname"
- test -n "$relink_command" && srcname="$realname"T
-
- # Install the shared library and build the symlinks.
- func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
- 'exit $?'
- tstripme="$stripme"
- case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- case $realname in
- *.dll.a)
- tstripme=""
- ;;
- esac
- ;;
- esac
- if test -n "$tstripme" && test -n "$striplib"; then
- func_show_eval "$striplib $destdir/$realname" 'exit $?'
- fi
-
- if test "$#" -gt 0; then
- # Delete the old symlinks, and create new ones.
- # Try `ln -sf' first, because the `ln' binary might depend on
- # the symlink we replace! Solaris /bin/ln does not understand -f,
- # so we also need to try rm && ln -s.
- for linkname
- do
- test "$linkname" != "$realname" \
- && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
- done
- fi
-
- # Do each command in the postinstall commands.
- lib="$destdir/$realname"
- func_execute_cmds "$postinstall_cmds" 'exit $?'
- fi
-
- # Install the pseudo-library for information purposes.
- func_basename "$file"
- name="$func_basename_result"
- instname="$dir/$name"i
- func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
-
- # Maybe install the static library, too.
- test -n "$old_library" && func_append staticlibs " $dir/$old_library"
- ;;
-
- *.lo)
- # Install (i.e. copy) a libtool object.
-
- # Figure out destination file name, if it wasn't already specified.
- if test -n "$destname"; then
- destfile="$destdir/$destname"
- else
- func_basename "$file"
- destfile="$func_basename_result"
- destfile="$destdir/$destfile"
- fi
-
- # Deduce the name of the destination old-style object file.
- case $destfile in
- *.lo)
- func_lo2o "$destfile"
- staticdest=$func_lo2o_result
- ;;
- *.$objext)
- staticdest="$destfile"
- destfile=
- ;;
- *)
- func_fatal_help "cannot copy a libtool object to \`$destfile'"
- ;;
- esac
-
- # Install the libtool object if requested.
- test -n "$destfile" && \
- func_show_eval "$install_prog $file $destfile" 'exit $?'
-
- # Install the old object if enabled.
- if test "$build_old_libs" = yes; then
- # Deduce the name of the old-style object file.
- func_lo2o "$file"
- staticobj=$func_lo2o_result
- func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
- fi
- exit $EXIT_SUCCESS
- ;;
-
- *)
- # Figure out destination file name, if it wasn't already specified.
- if test -n "$destname"; then
- destfile="$destdir/$destname"
- else
- func_basename "$file"
- destfile="$func_basename_result"
- destfile="$destdir/$destfile"
- fi
-
- # If the file is missing, and there is a .exe on the end, strip it
- # because it is most likely a libtool script we actually want to
- # install
- stripped_ext=""
- case $file in
- *.exe)
- if test ! -f "$file"; then
- func_stripname '' '.exe' "$file"
- file=$func_stripname_result
- stripped_ext=".exe"
- fi
- ;;
- esac
-
- # Do a test to see if this is really a libtool program.
- case $host in
- *cygwin* | *mingw*)
- if func_ltwrapper_executable_p "$file"; then
- func_ltwrapper_scriptname "$file"
- wrapper=$func_ltwrapper_scriptname_result
- else
- func_stripname '' '.exe' "$file"
- wrapper=$func_stripname_result
- fi
- ;;
- *)
- wrapper=$file
- ;;
- esac
- if func_ltwrapper_script_p "$wrapper"; then
- notinst_deplibs=
- relink_command=
-
- func_source "$wrapper"
-
- # Check the variables that should have been set.
- test -z "$generated_by_libtool_version" && \
- func_fatal_error "invalid libtool wrapper script \`$wrapper'"
-
- finalize=yes
- for lib in $notinst_deplibs; do
- # Check to see that each library is installed.
- libdir=
- if test -f "$lib"; then
- func_source "$lib"
- fi
- libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
- if test -n "$libdir" && test ! -f "$libfile"; then
- func_warning "\`$lib' has not been installed in \`$libdir'"
- finalize=no
- fi
- done
-
- relink_command=
- func_source "$wrapper"
-
- outputname=
- if test "$fast_install" = no && test -n "$relink_command"; then
- $opt_dry_run || {
- if test "$finalize" = yes; then
- tmpdir=`func_mktempdir`
- func_basename "$file$stripped_ext"
- file="$func_basename_result"
- outputname="$tmpdir/$file"
- # Replace the output file specification.
- relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
-
- $opt_silent || {
- func_quote_for_expand "$relink_command"
- eval "func_echo $func_quote_for_expand_result"
- }
- if eval "$relink_command"; then :
- else
- func_error "error: relink \`$file' with the above command before installing it"
- $opt_dry_run || ${RM}r "$tmpdir"
- continue
- fi
- file="$outputname"
- else
- func_warning "cannot relink \`$file'"
- fi
- }
- else
- # Install the binary that we compiled earlier.
- file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
- fi
- fi
-
- # remove .exe since cygwin /usr/bin/install will append another
- # one anyway
- case $install_prog,$host in
- */usr/bin/install*,*cygwin*)
- case $file:$destfile in
- *.exe:*.exe)
- # this is ok
- ;;
- *.exe:*)
- destfile=$destfile.exe
- ;;
- *:*.exe)
- func_stripname '' '.exe' "$destfile"
- destfile=$func_stripname_result
- ;;
- esac
- ;;
- esac
- func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
- $opt_dry_run || if test -n "$outputname"; then
- ${RM}r "$tmpdir"
- fi
- ;;
- esac
- done
-
- for file in $staticlibs; do
- func_basename "$file"
- name="$func_basename_result"
-
- # Set up the ranlib parameters.
- oldlib="$destdir/$name"
- func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
- tool_oldlib=$func_to_tool_file_result
-
- func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
-
- if test -n "$stripme" && test -n "$old_striplib"; then
- func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
- fi
-
- # Do each command in the postinstall commands.
- func_execute_cmds "$old_postinstall_cmds" 'exit $?'
- done
-
- test -n "$future_libdirs" && \
- func_warning "remember to run \`$progname --finish$future_libdirs'"
-
- if test -n "$current_libdirs"; then
- # Maybe just do a dry run.
- $opt_dry_run && current_libdirs=" -n$current_libdirs"
- exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
- else
- exit $EXIT_SUCCESS
- fi
-}
-
-test "$opt_mode" = install && func_mode_install ${1+"$@"}
-
-
-# func_generate_dlsyms outputname originator pic_p
-# Extract symbols from dlprefiles and create ${outputname}S.o with
-# a dlpreopen symbol table.
-func_generate_dlsyms ()
-{
- $opt_debug
- my_outputname="$1"
- my_originator="$2"
- my_pic_p="${3-no}"
- my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
- my_dlsyms=
-
- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
- if test -n "$NM" && test -n "$global_symbol_pipe"; then
- my_dlsyms="${my_outputname}S.c"
- else
- func_error "not configured to extract global symbols from dlpreopened files"
- fi
- fi
-
- if test -n "$my_dlsyms"; then
- case $my_dlsyms in
- "") ;;
- *.c)
- # Discover the nlist of each of the dlfiles.
- nlist="$output_objdir/${my_outputname}.nm"
-
- func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
-
- # Parse the name list into a source file.
- func_verbose "creating $output_objdir/$my_dlsyms"
-
- $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
-/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
-/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
-
-#ifdef __cplusplus
-extern \"C\" {
-#endif
-
-#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
-#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
-#endif
-
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
- relocations are performed -- see ld's documentation on pseudo-relocs. */
-# define LT_DLSYM_CONST
-#elif defined(__osf__)
-/* This system does not cope well with relocations in const data. */
-# define LT_DLSYM_CONST
-#else
-# define LT_DLSYM_CONST const
-#endif
-
-/* External symbol declarations for the compiler. */\
-"
-
- if test "$dlself" = yes; then
- func_verbose "generating symbol list for \`$output'"
-
- $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
-
- # Add our own program objects to the symbol list.
- progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
- for progfile in $progfiles; do
- func_to_tool_file "$progfile" func_convert_file_msys_to_w32
- func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
- $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
- done
-
- if test -n "$exclude_expsyms"; then
- $opt_dry_run || {
- eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
- eval '$MV "$nlist"T "$nlist"'
- }
- fi
-
- if test -n "$export_symbols_regex"; then
- $opt_dry_run || {
- eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
- eval '$MV "$nlist"T "$nlist"'
- }
- fi
-
- # Prepare the list of exported symbols
- if test -z "$export_symbols"; then
- export_symbols="$output_objdir/$outputname.exp"
- $opt_dry_run || {
- $RM $export_symbols
- eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
- case $host in
- *cygwin* | *mingw* | *cegcc* )
- eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
- eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
- ;;
- esac
- }
- else
- $opt_dry_run || {
- eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
- eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
- eval '$MV "$nlist"T "$nlist"'
- case $host in
- *cygwin* | *mingw* | *cegcc* )
- eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
- eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
- ;;
- esac
- }
- fi
- fi
-
- for dlprefile in $dlprefiles; do
- func_verbose "extracting global C symbols from \`$dlprefile'"
- func_basename "$dlprefile"
- name="$func_basename_result"
- case $host in
- *cygwin* | *mingw* | *cegcc* )
- # if an import library, we need to obtain dlname
- if func_win32_import_lib_p "$dlprefile"; then
- func_tr_sh "$dlprefile"
- eval "curr_lafile=\$libfile_$func_tr_sh_result"
- dlprefile_dlbasename=""
- if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
- # Use subshell, to avoid clobbering current variable values
- dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
- if test -n "$dlprefile_dlname" ; then
- func_basename "$dlprefile_dlname"
- dlprefile_dlbasename="$func_basename_result"
- else
- # no lafile. user explicitly requested -dlpreopen <import library>.
- $sharedlib_from_linklib_cmd "$dlprefile"
- dlprefile_dlbasename=$sharedlib_from_linklib_result
- fi
- fi
- $opt_dry_run || {
- if test -n "$dlprefile_dlbasename" ; then
- eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
- else
- func_warning "Could not compute DLL name from $name"
- eval '$ECHO ": $name " >> "$nlist"'
- fi
- func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
- eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
- $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
- }
- else # not an import lib
- $opt_dry_run || {
- eval '$ECHO ": $name " >> "$nlist"'
- func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
- eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
- }
- fi
- ;;
- *)
- $opt_dry_run || {
- eval '$ECHO ": $name " >> "$nlist"'
- func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
- eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
- }
- ;;
- esac
- done
-
- $opt_dry_run || {
- # Make sure we have at least an empty file.
- test -f "$nlist" || : > "$nlist"
-
- if test -n "$exclude_expsyms"; then
- $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
- $MV "$nlist"T "$nlist"
- fi
-
- # Try sorting and uniquifying the output.
- if $GREP -v "^: " < "$nlist" |
- if sort -k 3 </dev/null >/dev/null 2>&1; then
- sort -k 3
- else
- sort +2
- fi |
- uniq > "$nlist"S; then
- :
- else
- $GREP -v "^: " < "$nlist" > "$nlist"S
- fi
-
- if test -f "$nlist"S; then
- eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
- else
- echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
- fi
-
- echo >> "$output_objdir/$my_dlsyms" "\
-
-/* The mapping between symbol names and symbols. */
-typedef struct {
- const char *name;
- void *address;
-} lt_dlsymlist;
-extern LT_DLSYM_CONST lt_dlsymlist
-lt_${my_prefix}_LTX_preloaded_symbols[];
-LT_DLSYM_CONST lt_dlsymlist
-lt_${my_prefix}_LTX_preloaded_symbols[] =
-{\
- { \"$my_originator\", (void *) 0 },"
-
- case $need_lib_prefix in
- no)
- eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
- ;;
- *)
- eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
- ;;
- esac
- echo >> "$output_objdir/$my_dlsyms" "\
- {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
- return lt_${my_prefix}_LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif\
-"
- } # !$opt_dry_run
-
- pic_flag_for_symtable=
- case "$compile_command " in
- *" -static "*) ;;
- *)
- case $host in
- # compiling the symbol table file with pic_flag works around
- # a FreeBSD bug that causes programs to crash when -lm is
- # linked before any other PIC object. But we must not use
- # pic_flag when linking with -static. The problem exists in
- # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
- *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
- pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
- *-*-hpux*)
- pic_flag_for_symtable=" $pic_flag" ;;
- *)
- if test "X$my_pic_p" != Xno; then
- pic_flag_for_symtable=" $pic_flag"
- fi
- ;;
- esac
- ;;
- esac
- symtab_cflags=
- for arg in $LTCFLAGS; do
- case $arg in
- -pie | -fpie | -fPIE) ;;
- *) func_append symtab_cflags " $arg" ;;
- esac
- done
-
- # Now compile the dynamic symbol file.
- func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
-
- # Clean up the generated files.
- func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
-
- # Transform the symbol file into the correct name.
- symfileobj="$output_objdir/${my_outputname}S.$objext"
- case $host in
- *cygwin* | *mingw* | *cegcc* )
- if test -f "$output_objdir/$my_outputname.def"; then
- compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
- finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
- else
- compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
- finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
- fi
- ;;
- *)
- compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
- finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
- ;;
- esac
- ;;
- *)
- func_fatal_error "unknown suffix for \`$my_dlsyms'"
- ;;
- esac
- else
- # We keep going just in case the user didn't refer to
- # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
- # really was required.
-
- # Nullify the symbol file.
- compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
- finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
- fi
-}
-
-# func_win32_libid arg
-# return the library type of file 'arg'
-#
-# Need a lot of goo to handle *both* DLLs and import libs
-# Has to be a shell function in order to 'eat' the argument
-# that is supplied when $file_magic_command is called.
-# Despite the name, also deal with 64 bit binaries.
-func_win32_libid ()
-{
- $opt_debug
- win32_libid_type="unknown"
- win32_fileres=`file -L $1 2>/dev/null`
- case $win32_fileres in
- *ar\ archive\ import\ library*) # definitely import
- win32_libid_type="x86 archive import"
- ;;
- *ar\ archive*) # could be an import, or static
- # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
- if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
- $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
- func_to_tool_file "$1" func_convert_file_msys_to_w32
- win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
- $SED -n -e '
- 1,100{
- / I /{
- s,.*,import,
- p
- q
- }
- }'`
- case $win32_nmres in
- import*) win32_libid_type="x86 archive import";;
- *) win32_libid_type="x86 archive static";;
- esac
- fi
- ;;
- *DLL*)
- win32_libid_type="x86 DLL"
- ;;
- *executable*) # but shell scripts are "executable" too...
- case $win32_fileres in
- *MS\ Windows\ PE\ Intel*)
- win32_libid_type="x86 DLL"
- ;;
- esac
- ;;
- esac
- $ECHO "$win32_libid_type"
-}
-
-# func_cygming_dll_for_implib ARG
-#
-# Platform-specific function to extract the
-# name of the DLL associated with the specified
-# import library ARG.
-# Invoked by eval'ing the libtool variable
-# $sharedlib_from_linklib_cmd
-# Result is available in the variable
-# $sharedlib_from_linklib_result
-func_cygming_dll_for_implib ()
-{
- $opt_debug
- sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
-}
-
-# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
-#
-# The is the core of a fallback implementation of a
-# platform-specific function to extract the name of the
-# DLL associated with the specified import library LIBNAME.
-#
-# SECTION_NAME is either .idata$6 or .idata$7, depending
-# on the platform and compiler that created the implib.
-#
-# Echos the name of the DLL associated with the
-# specified import library.
-func_cygming_dll_for_implib_fallback_core ()
-{
- $opt_debug
- match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
- $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
- $SED '/^Contents of section '"$match_literal"':/{
- # Place marker at beginning of archive member dllname section
- s/.*/====MARK====/
- p
- d
- }
- # These lines can sometimes be longer than 43 characters, but
- # are always uninteresting
- /:[ ]*file format pe[i]\{,1\}-/d
- /^In archive [^:]*:/d
- # Ensure marker is printed
- /^====MARK====/p
- # Remove all lines with less than 43 characters
- /^.\{43\}/!d
- # From remaining lines, remove first 43 characters
- s/^.\{43\}//' |
- $SED -n '
- # Join marker and all lines until next marker into a single line
- /^====MARK====/ b para
- H
- $ b para
- b
- :para
- x
- s/\n//g
- # Remove the marker
- s/^====MARK====//
- # Remove trailing dots and whitespace
- s/[\. \t]*$//
- # Print
- /./p' |
- # we now have a list, one entry per line, of the stringified
- # contents of the appropriate section of all members of the
- # archive which possess that section. Heuristic: eliminate
- # all those which have a first or second character that is
- # a '.' (that is, objdump's representation of an unprintable
- # character.) This should work for all archives with less than
- # 0x302f exports -- but will fail for DLLs whose name actually
- # begins with a literal '.' or a single character followed by
- # a '.'.
- #
- # Of those that remain, print the first one.
- $SED -e '/^\./d;/^.\./d;q'
-}
-
-# func_cygming_gnu_implib_p ARG
-# This predicate returns with zero status (TRUE) if
-# ARG is a GNU/binutils-style import library. Returns
-# with nonzero status (FALSE) otherwise.
-func_cygming_gnu_implib_p ()
-{
- $opt_debug
- func_to_tool_file "$1" func_convert_file_msys_to_w32
- func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
- test -n "$func_cygming_gnu_implib_tmp"
-}
-
-# func_cygming_ms_implib_p ARG
-# This predicate returns with zero status (TRUE) if
-# ARG is an MS-style import library. Returns
-# with nonzero status (FALSE) otherwise.
-func_cygming_ms_implib_p ()
-{
- $opt_debug
- func_to_tool_file "$1" func_convert_file_msys_to_w32
- func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
- test -n "$func_cygming_ms_implib_tmp"
-}
-
-# func_cygming_dll_for_implib_fallback ARG
-# Platform-specific function to extract the
-# name of the DLL associated with the specified
-# import library ARG.
-#
-# This fallback implementation is for use when $DLLTOOL
-# does not support the --identify-strict option.
-# Invoked by eval'ing the libtool variable
-# $sharedlib_from_linklib_cmd
-# Result is available in the variable
-# $sharedlib_from_linklib_result
-func_cygming_dll_for_implib_fallback ()
-{
- $opt_debug
- if func_cygming_gnu_implib_p "$1" ; then
- # binutils import library
- sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
- elif func_cygming_ms_implib_p "$1" ; then
- # ms-generated import library
- sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
- else
- # unknown
- sharedlib_from_linklib_result=""
- fi
-}
-
-
-# func_extract_an_archive dir oldlib
-func_extract_an_archive ()
-{
- $opt_debug
- f_ex_an_ar_dir="$1"; shift
- f_ex_an_ar_oldlib="$1"
- if test "$lock_old_archive_extraction" = yes; then
- lockfile=$f_ex_an_ar_oldlib.lock
- until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
- func_echo "Waiting for $lockfile to be removed"
- sleep 2
- done
- fi
- func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
- 'stat=$?; rm -f "$lockfile"; exit $stat'
- if test "$lock_old_archive_extraction" = yes; then
- $opt_dry_run || rm -f "$lockfile"
- fi
- if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
- :
- else
- func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
- fi
-}
-
-
-# func_extract_archives gentop oldlib ...
-func_extract_archives ()
-{
- $opt_debug
- my_gentop="$1"; shift
- my_oldlibs=${1+"$@"}
- my_oldobjs=""
- my_xlib=""
- my_xabs=""
- my_xdir=""
-
- for my_xlib in $my_oldlibs; do
- # Extract the objects.
- case $my_xlib in
- [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
- *) my_xabs=`pwd`"/$my_xlib" ;;
- esac
- func_basename "$my_xlib"
- my_xlib="$func_basename_result"
- my_xlib_u=$my_xlib
- while :; do
- case " $extracted_archives " in
- *" $my_xlib_u "*)
- func_arith $extracted_serial + 1
- extracted_serial=$func_arith_result
- my_xlib_u=lt$extracted_serial-$my_xlib ;;
- *) break ;;
- esac
- done
- extracted_archives="$extracted_archives $my_xlib_u"
- my_xdir="$my_gentop/$my_xlib_u"
-
- func_mkdir_p "$my_xdir"
-
- case $host in
- *-darwin*)
- func_verbose "Extracting $my_xabs"
- # Do not bother doing anything if just a dry run
- $opt_dry_run || {
- darwin_orig_dir=`pwd`
- cd $my_xdir || exit $?
- darwin_archive=$my_xabs
- darwin_curdir=`pwd`
- darwin_base_archive=`basename "$darwin_archive"`
- darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
- if test -n "$darwin_arches"; then
- darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
- darwin_arch=
- func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
- for darwin_arch in $darwin_arches ; do
- func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
- $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
- cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
- func_extract_an_archive "`pwd`" "${darwin_base_archive}"
- cd "$darwin_curdir"
- $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
- done # $darwin_arches
- ## Okay now we've a bunch of thin objects, gotta fatten them up :)
- darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
- darwin_file=
- darwin_files=
- for darwin_file in $darwin_filelist; do
- darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
- $LIPO -create -output "$darwin_file" $darwin_files
- done # $darwin_filelist
- $RM -rf unfat-$$
- cd "$darwin_orig_dir"
- else
- cd $darwin_orig_dir
- func_extract_an_archive "$my_xdir" "$my_xabs"
- fi # $darwin_arches
- } # !$opt_dry_run
- ;;
- *)
- func_extract_an_archive "$my_xdir" "$my_xabs"
- ;;
- esac
- my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
- done
-
- func_extract_archives_result="$my_oldobjs"
-}
-
-
-# func_emit_wrapper [arg=no]
-#
-# Emit a libtool wrapper script on stdout.
-# Don't directly open a file because we may want to
-# incorporate the script contents within a cygwin/mingw
-# wrapper executable. Must ONLY be called from within
-# func_mode_link because it depends on a number of variables
-# set therein.
-#
-# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
-# variable will take. If 'yes', then the emitted script
-# will assume that the directory in which it is stored is
-# the $objdir directory. This is a cygwin/mingw-specific
-# behavior.
-func_emit_wrapper ()
-{
- func_emit_wrapper_arg1=${1-no}
-
- $ECHO "\
-#! $SHELL
-
-# $output - temporary wrapper script for $objdir/$outputname
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-#
-# The $output program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-sed_quote_subst='$sed_quote_subst'
-
-# Be Bourne compatible
-if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '\${1+\"\$@\"}'='\"\$@\"'
- setopt NO_GLOB_SUBST
-else
- case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
-fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-relink_command=\"$relink_command\"
-
-# This environment variable determines our operation mode.
-if test \"\$libtool_install_magic\" = \"$magic\"; then
- # install mode needs the following variables:
- generated_by_libtool_version='$macro_version'
- notinst_deplibs='$notinst_deplibs'
-else
- # When we are sourced in execute mode, \$file and \$ECHO are already set.
- if test \"\$libtool_execute_magic\" != \"$magic\"; then
- file=\"\$0\""
-
- qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
- $ECHO "\
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-\$1
-_LTECHO_EOF'
-}
- ECHO=\"$qECHO\"
- fi
-
-# Very basic option parsing. These options are (a) specific to
-# the libtool wrapper, (b) are identical between the wrapper
-# /script/ and the wrapper /executable/ which is used only on
-# windows platforms, and (c) all begin with the string "--lt-"
-# (application programs are unlikely to have options which match
-# this pattern).
-#
-# There are only two supported options: --lt-debug and
-# --lt-dump-script. There is, deliberately, no --lt-help.
-#
-# The first argument to this parsing function should be the
-# script's $0 value, followed by "$@".
-lt_option_debug=
-func_parse_lt_options ()
-{
- lt_script_arg0=\$0
- shift
- for lt_opt
- do
- case \"\$lt_opt\" in
- --lt-debug) lt_option_debug=1 ;;
- --lt-dump-script)
- lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
- test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
- lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
- cat \"\$lt_dump_D/\$lt_dump_F\"
- exit 0
- ;;
- --lt-*)
- \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
- exit 1
- ;;
- esac
- done
-
- # Print the debug banner immediately:
- if test -n \"\$lt_option_debug\"; then
- echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
- fi
-}
-
-# Used when --lt-debug. Prints its arguments to stdout
-# (redirection is the responsibility of the caller)
-func_lt_dump_args ()
-{
- lt_dump_args_N=1;
- for lt_arg
- do
- \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
- lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
- done
-}
-
-# Core function for launching the target application
-func_exec_program_core ()
-{
-"
- case $host in
- # Backslashes separate directories on plain windows
- *-*-mingw | *-*-os2* | *-cegcc*)
- $ECHO "\
- if test -n \"\$lt_option_debug\"; then
- \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
- func_lt_dump_args \${1+\"\$@\"} 1>&2
- fi
- exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
-"
- ;;
-
- *)
- $ECHO "\
- if test -n \"\$lt_option_debug\"; then
- \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
- func_lt_dump_args \${1+\"\$@\"} 1>&2
- fi
- exec \"\$progdir/\$program\" \${1+\"\$@\"}
-"
- ;;
- esac
- $ECHO "\
- \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
- exit 1
-}
-
-# A function to encapsulate launching the target application
-# Strips options in the --lt-* namespace from \$@ and
-# launches target application with the remaining arguments.
-func_exec_program ()
-{
- case \" \$* \" in
- *\\ --lt-*)
- for lt_wr_arg
- do
- case \$lt_wr_arg in
- --lt-*) ;;
- *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
- esac
- shift
- done ;;
- esac
- func_exec_program_core \${1+\"\$@\"}
-}
-
- # Parse options
- func_parse_lt_options \"\$0\" \${1+\"\$@\"}
-
- # Find the directory that this script lives in.
- thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
- test \"x\$thisdir\" = \"x\$file\" && thisdir=.
-
- # Follow symbolic links until we get to the real thisdir.
- file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
- while test -n \"\$file\"; do
- destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
-
- # If there was a directory component, then change thisdir.
- if test \"x\$destdir\" != \"x\$file\"; then
- case \"\$destdir\" in
- [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
- *) thisdir=\"\$thisdir/\$destdir\" ;;
- esac
- fi
-
- file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
- file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
- done
-
- # Usually 'no', except on cygwin/mingw when embedded into
- # the cwrapper.
- WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
- if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
- # special case for '.'
- if test \"\$thisdir\" = \".\"; then
- thisdir=\`pwd\`
- fi
- # remove .libs from thisdir
- case \"\$thisdir\" in
- *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
- $objdir ) thisdir=. ;;
- esac
- fi
-
- # Try to get the absolute directory name.
- absdir=\`cd \"\$thisdir\" && pwd\`
- test -n \"\$absdir\" && thisdir=\"\$absdir\"
-"
-
- if test "$fast_install" = yes; then
- $ECHO "\
- program=lt-'$outputname'$exeext
- progdir=\"\$thisdir/$objdir\"
-
- if test ! -f \"\$progdir/\$program\" ||
- { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
- test \"X\$file\" != \"X\$progdir/\$program\"; }; then
-
- file=\"\$\$-\$program\"
-
- if test ! -d \"\$progdir\"; then
- $MKDIR \"\$progdir\"
- else
- $RM \"\$progdir/\$file\"
- fi"
-
- $ECHO "\
-
- # relink executable if necessary
- if test -n \"\$relink_command\"; then
- if relink_command_output=\`eval \$relink_command 2>&1\`; then :
- else
- $ECHO \"\$relink_command_output\" >&2
- $RM \"\$progdir/\$file\"
- exit 1
- fi
- fi
-
- $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
- { $RM \"\$progdir/\$program\";
- $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
- $RM \"\$progdir/\$file\"
- fi"
- else
- $ECHO "\
- program='$outputname'
- progdir=\"\$thisdir/$objdir\"
-"
- fi
-
- $ECHO "\
-
- if test -f \"\$progdir/\$program\"; then"
-
- # fixup the dll searchpath if we need to.
- #
- # Fix the DLL searchpath if we need to. Do this before prepending
- # to shlibpath, because on Windows, both are PATH and uninstalled
- # libraries must come first.
- if test -n "$dllsearchpath"; then
- $ECHO "\
- # Add the dll search path components to the executable PATH
- PATH=$dllsearchpath:\$PATH
-"
- fi
-
- # Export our shlibpath_var if we have one.
- if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
- $ECHO "\
- # Add our own library path to $shlibpath_var
- $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
-
- # Some systems cannot cope with colon-terminated $shlibpath_var
- # The second colon is a workaround for a bug in BeOS R4 sed
- $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
-
- export $shlibpath_var
-"
- fi
-
- $ECHO "\
- if test \"\$libtool_execute_magic\" != \"$magic\"; then
- # Run the actual program with our arguments.
- func_exec_program \${1+\"\$@\"}
- fi
- else
- # The program doesn't exist.
- \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
- \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
- \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
- exit 1
- fi
-fi\
-"
-}
-
-
-# func_emit_cwrapperexe_src
-# emit the source code for a wrapper executable on stdout
-# Must ONLY be called from within func_mode_link because
-# it depends on a number of variable set therein.
-func_emit_cwrapperexe_src ()
-{
- cat <<EOF
-
-/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
- Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-
- The $output program cannot be directly executed until all the libtool
- libraries that it depends on are installed.
-
- This wrapper executable should never be moved out of the build directory.
- If it is, it will not operate correctly.
-*/
-EOF
- cat <<"EOF"
-#ifdef _MSC_VER
-# define _CRT_SECURE_NO_DEPRECATE 1
-#endif
-#include <stdio.h>
-#include <stdlib.h>
-#ifdef _MSC_VER
-# include <direct.h>
-# include <process.h>
-# include <io.h>
-#else
-# include <unistd.h>
-# include <stdint.h>
-# ifdef __CYGWIN__
-# include <io.h>
-# endif
-#endif
-#include <malloc.h>
-#include <stdarg.h>
-#include <assert.h>
-#include <string.h>
-#include <ctype.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-
-/* declarations of non-ANSI functions */
-#if defined(__MINGW32__)
-# ifdef __STRICT_ANSI__
-int _putenv (const char *);
-# endif
-#elif defined(__CYGWIN__)
-# ifdef __STRICT_ANSI__
-char *realpath (const char *, char *);
-int putenv (char *);
-int setenv (const char *, const char *, int);
-# endif
-/* #elif defined (other platforms) ... */
-#endif
-
-/* portability defines, excluding path handling macros */
-#if defined(_MSC_VER)
-# define setmode _setmode
-# define stat _stat
-# define chmod _chmod
-# define getcwd _getcwd
-# define putenv _putenv
-# define S_IXUSR _S_IEXEC
-# ifndef _INTPTR_T_DEFINED
-# define _INTPTR_T_DEFINED
-# define intptr_t int
-# endif
-#elif defined(__MINGW32__)
-# define setmode _setmode
-# define stat _stat
-# define chmod _chmod
-# define getcwd _getcwd
-# define putenv _putenv
-#elif defined(__CYGWIN__)
-# define HAVE_SETENV
-# define FOPEN_WB "wb"
-/* #elif defined (other platforms) ... */
-#endif
-
-#if defined(PATH_MAX)
-# define LT_PATHMAX PATH_MAX
-#elif defined(MAXPATHLEN)
-# define LT_PATHMAX MAXPATHLEN
-#else
-# define LT_PATHMAX 1024
-#endif
-
-#ifndef S_IXOTH
-# define S_IXOTH 0
-#endif
-#ifndef S_IXGRP
-# define S_IXGRP 0
-#endif
-
-/* path handling portability macros */
-#ifndef DIR_SEPARATOR
-# define DIR_SEPARATOR '/'
-# define PATH_SEPARATOR ':'
-#endif
-
-#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
- defined (__OS2__)
-# define HAVE_DOS_BASED_FILE_SYSTEM
-# define FOPEN_WB "wb"
-# ifndef DIR_SEPARATOR_2
-# define DIR_SEPARATOR_2 '\\'
-# endif
-# ifndef PATH_SEPARATOR_2
-# define PATH_SEPARATOR_2 ';'
-# endif
-#endif
-
-#ifndef DIR_SEPARATOR_2
-# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
-#else /* DIR_SEPARATOR_2 */
-# define IS_DIR_SEPARATOR(ch) \
- (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
-#endif /* DIR_SEPARATOR_2 */
-
-#ifndef PATH_SEPARATOR_2
-# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
-#else /* PATH_SEPARATOR_2 */
-# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
-#endif /* PATH_SEPARATOR_2 */
-
-#ifndef FOPEN_WB
-# define FOPEN_WB "w"
-#endif
-#ifndef _O_BINARY
-# define _O_BINARY 0
-#endif
-
-#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
-#define XFREE(stale) do { \
- if (stale) { free ((void *) stale); stale = 0; } \
-} while (0)
-
-#if defined(LT_DEBUGWRAPPER)
-static int lt_debug = 1;
-#else
-static int lt_debug = 0;
-#endif
-
-const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
-
-void *xmalloc (size_t num);
-char *xstrdup (const char *string);
-const char *base_name (const char *name);
-char *find_executable (const char *wrapper);
-char *chase_symlinks (const char *pathspec);
-int make_executable (const char *path);
-int check_executable (const char *path);
-char *strendzap (char *str, const char *pat);
-void lt_debugprintf (const char *file, int line, const char *fmt, ...);
-void lt_fatal (const char *file, int line, const char *message, ...);
-static const char *nonnull (const char *s);
-static const char *nonempty (const char *s);
-void lt_setenv (const char *name, const char *value);
-char *lt_extend_str (const char *orig_value, const char *add, int to_end);
-void lt_update_exe_path (const char *name, const char *value);
-void lt_update_lib_path (const char *name, const char *value);
-char **prepare_spawn (char **argv);
-void lt_dump_script (FILE *f);
-EOF
-
- cat <<EOF
-volatile const char * MAGIC_EXE = "$magic_exe";
-const char * LIB_PATH_VARNAME = "$shlibpath_var";
-EOF
-
- if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
- func_to_host_path "$temp_rpath"
- cat <<EOF
-const char * LIB_PATH_VALUE = "$func_to_host_path_result";
-EOF
- else
- cat <<"EOF"
-const char * LIB_PATH_VALUE = "";
-EOF
- fi
-
- if test -n "$dllsearchpath"; then
- func_to_host_path "$dllsearchpath:"
- cat <<EOF
-const char * EXE_PATH_VARNAME = "PATH";
-const char * EXE_PATH_VALUE = "$func_to_host_path_result";
-EOF
- else
- cat <<"EOF"
-const char * EXE_PATH_VARNAME = "";
-const char * EXE_PATH_VALUE = "";
-EOF
- fi
-
- if test "$fast_install" = yes; then
- cat <<EOF
-const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
-EOF
- else
- cat <<EOF
-const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
-EOF
- fi
-
-
- cat <<"EOF"
-
-#define LTWRAPPER_OPTION_PREFIX "--lt-"
-
-static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
-static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script";
-static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug";
-
-int
-main (int argc, char *argv[])
-{
- char **newargz;
- int newargc;
- char *tmp_pathspec;
- char *actual_cwrapper_path;
- char *actual_cwrapper_name;
- char *target_name;
- char *lt_argv_zero;
- intptr_t rval = 127;
-
- int i;
-
- program_name = (char *) xstrdup (base_name (argv[0]));
- newargz = XMALLOC (char *, argc + 1);
-
- /* very simple arg parsing; don't want to rely on getopt
- * also, copy all non cwrapper options to newargz, except
- * argz[0], which is handled differently
- */
- newargc=0;
- for (i = 1; i < argc; i++)
- {
- if (strcmp (argv[i], dumpscript_opt) == 0)
- {
-EOF
- case "$host" in
- *mingw* | *cygwin* )
- # make stdout use "unix" line endings
- echo " setmode(1,_O_BINARY);"
- ;;
- esac
-
- cat <<"EOF"
- lt_dump_script (stdout);
- return 0;
- }
- if (strcmp (argv[i], debug_opt) == 0)
- {
- lt_debug = 1;
- continue;
- }
- if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
- {
- /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
- namespace, but it is not one of the ones we know about and
- have already dealt with, above (inluding dump-script), then
- report an error. Otherwise, targets might begin to believe
- they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
- namespace. The first time any user complains about this, we'll
- need to make LTWRAPPER_OPTION_PREFIX a configure-time option
- or a configure.ac-settable value.
- */
- lt_fatal (__FILE__, __LINE__,
- "unrecognized %s option: '%s'",
- ltwrapper_option_prefix, argv[i]);
- }
- /* otherwise ... */
- newargz[++newargc] = xstrdup (argv[i]);
- }
- newargz[++newargc] = NULL;
-
-EOF
- cat <<EOF
- /* The GNU banner must be the first non-error debug message */
- lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
-EOF
- cat <<"EOF"
- lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
- lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
-
- tmp_pathspec = find_executable (argv[0]);
- if (tmp_pathspec == NULL)
- lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
- lt_debugprintf (__FILE__, __LINE__,
- "(main) found exe (before symlink chase) at: %s\n",
- tmp_pathspec);
-
- actual_cwrapper_path = chase_symlinks (tmp_pathspec);
- lt_debugprintf (__FILE__, __LINE__,
- "(main) found exe (after symlink chase) at: %s\n",
- actual_cwrapper_path);
- XFREE (tmp_pathspec);
-
- actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
- strendzap (actual_cwrapper_path, actual_cwrapper_name);
-
- /* wrapper name transforms */
- strendzap (actual_cwrapper_name, ".exe");
- tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
- XFREE (actual_cwrapper_name);
- actual_cwrapper_name = tmp_pathspec;
- tmp_pathspec = 0;
-
- /* target_name transforms -- use actual target program name; might have lt- prefix */
- target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
- strendzap (target_name, ".exe");
- tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
- XFREE (target_name);
- target_name = tmp_pathspec;
- tmp_pathspec = 0;
-
- lt_debugprintf (__FILE__, __LINE__,
- "(main) libtool target name: %s\n",
- target_name);
-EOF
-
- cat <<EOF
- newargz[0] =
- XMALLOC (char, (strlen (actual_cwrapper_path) +
- strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
- strcpy (newargz[0], actual_cwrapper_path);
- strcat (newargz[0], "$objdir");
- strcat (newargz[0], "/");
-EOF
-
- cat <<"EOF"
- /* stop here, and copy so we don't have to do this twice */
- tmp_pathspec = xstrdup (newargz[0]);
-
- /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
- strcat (newargz[0], actual_cwrapper_name);
-
- /* DO want the lt- prefix here if it exists, so use target_name */
- lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
- XFREE (tmp_pathspec);
- tmp_pathspec = NULL;
-EOF
-
- case $host_os in
- mingw*)
- cat <<"EOF"
- {
- char* p;
- while ((p = strchr (newargz[0], '\\')) != NULL)
- {
- *p = '/';
- }
- while ((p = strchr (lt_argv_zero, '\\')) != NULL)
- {
- *p = '/';
- }
- }
-EOF
- ;;
- esac
-
- cat <<"EOF"
- XFREE (target_name);
- XFREE (actual_cwrapper_path);
- XFREE (actual_cwrapper_name);
-
- lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
- lt_setenv ("DUALCASE", "1"); /* for MSK sh */
- /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must
- be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
- because on Windows, both *_VARNAMEs are PATH but uninstalled
- libraries must come first. */
- lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
- lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
-
- lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
- nonnull (lt_argv_zero));
- for (i = 0; i < newargc; i++)
- {
- lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
- i, nonnull (newargz[i]));
- }
-
-EOF
-
- case $host_os in
- mingw*)
- cat <<"EOF"
- /* execv doesn't actually work on mingw as expected on unix */
- newargz = prepare_spawn (newargz);
- rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
- if (rval == -1)
- {
- /* failed to start process */
- lt_debugprintf (__FILE__, __LINE__,
- "(main) failed to launch target \"%s\": %s\n",
- lt_argv_zero, nonnull (strerror (errno)));
- return 127;
- }
- return rval;
-EOF
- ;;
- *)
- cat <<"EOF"
- execv (lt_argv_zero, newargz);
- return rval; /* =127, but avoids unused variable warning */
-EOF
- ;;
- esac
-
- cat <<"EOF"
-}
-
-void *
-xmalloc (size_t num)
-{
- void *p = (void *) malloc (num);
- if (!p)
- lt_fatal (__FILE__, __LINE__, "memory exhausted");
-
- return p;
-}
-
-char *
-xstrdup (const char *string)
-{
- return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
- string) : NULL;
-}
-
-const char *
-base_name (const char *name)
-{
- const char *base;
-
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
- /* Skip over the disk name in MSDOS pathnames. */
- if (isalpha ((unsigned char) name[0]) && name[1] == ':')
- name += 2;
-#endif
-
- for (base = name; *name; name++)
- if (IS_DIR_SEPARATOR (*name))
- base = name + 1;
- return base;
-}
-
-int
-check_executable (const char *path)
-{
- struct stat st;
-
- lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
- nonempty (path));
- if ((!path) || (!*path))
- return 0;
-
- if ((stat (path, &st) >= 0)
- && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
- return 1;
- else
- return 0;
-}
-
-int
-make_executable (const char *path)
-{
- int rval = 0;
- struct stat st;
-
- lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
- nonempty (path));
- if ((!path) || (!*path))
- return 0;
-
- if (stat (path, &st) >= 0)
- {
- rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
- }
- return rval;
-}
-
-/* Searches for the full path of the wrapper. Returns
- newly allocated full path name if found, NULL otherwise
- Does not chase symlinks, even on platforms that support them.
-*/
-char *
-find_executable (const char *wrapper)
-{
- int has_slash = 0;
- const char *p;
- const char *p_next;
- /* static buffer for getcwd */
- char tmp[LT_PATHMAX + 1];
- int tmp_len;
- char *concat_name;
-
- lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
- nonempty (wrapper));
-
- if ((wrapper == NULL) || (*wrapper == '\0'))
- return NULL;
-
- /* Absolute path? */
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
- if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
- {
- concat_name = xstrdup (wrapper);
- if (check_executable (concat_name))
- return concat_name;
- XFREE (concat_name);
- }
- else
- {
-#endif
- if (IS_DIR_SEPARATOR (wrapper[0]))
- {
- concat_name = xstrdup (wrapper);
- if (check_executable (concat_name))
- return concat_name;
- XFREE (concat_name);
- }
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
- }
-#endif
-
- for (p = wrapper; *p; p++)
- if (*p == '/')
- {
- has_slash = 1;
- break;
- }
- if (!has_slash)
- {
- /* no slashes; search PATH */
- const char *path = getenv ("PATH");
- if (path != NULL)
- {
- for (p = path; *p; p = p_next)
- {
- const char *q;
- size_t p_len;
- for (q = p; *q; q++)
- if (IS_PATH_SEPARATOR (*q))
- break;
- p_len = q - p;
- p_next = (*q == '\0' ? q : q + 1);
- if (p_len == 0)
- {
- /* empty path: current directory */
- if (getcwd (tmp, LT_PATHMAX) == NULL)
- lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
- nonnull (strerror (errno)));
- tmp_len = strlen (tmp);
- concat_name =
- XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
- memcpy (concat_name, tmp, tmp_len);
- concat_name[tmp_len] = '/';
- strcpy (concat_name + tmp_len + 1, wrapper);
- }
- else
- {
- concat_name =
- XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
- memcpy (concat_name, p, p_len);
- concat_name[p_len] = '/';
- strcpy (concat_name + p_len + 1, wrapper);
- }
- if (check_executable (concat_name))
- return concat_name;
- XFREE (concat_name);
- }
- }
- /* not found in PATH; assume curdir */
- }
- /* Relative path | not found in path: prepend cwd */
- if (getcwd (tmp, LT_PATHMAX) == NULL)
- lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
- nonnull (strerror (errno)));
- tmp_len = strlen (tmp);
- concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
- memcpy (concat_name, tmp, tmp_len);
- concat_name[tmp_len] = '/';
- strcpy (concat_name + tmp_len + 1, wrapper);
-
- if (check_executable (concat_name))
- return concat_name;
- XFREE (concat_name);
- return NULL;
-}
-
-char *
-chase_symlinks (const char *pathspec)
-{
-#ifndef S_ISLNK
- return xstrdup (pathspec);
-#else
- char buf[LT_PATHMAX];
- struct stat s;
- char *tmp_pathspec = xstrdup (pathspec);
- char *p;
- int has_symlinks = 0;
- while (strlen (tmp_pathspec) && !has_symlinks)
- {
- lt_debugprintf (__FILE__, __LINE__,
- "checking path component for symlinks: %s\n",
- tmp_pathspec);
- if (lstat (tmp_pathspec, &s) == 0)
- {
- if (S_ISLNK (s.st_mode) != 0)
- {
- has_symlinks = 1;
- break;
- }
-
- /* search backwards for last DIR_SEPARATOR */
- p = tmp_pathspec + strlen (tmp_pathspec) - 1;
- while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
- p--;
- if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
- {
- /* no more DIR_SEPARATORS left */
- break;
- }
- *p = '\0';
- }
- else
- {
- lt_fatal (__FILE__, __LINE__,
- "error accessing file \"%s\": %s",
- tmp_pathspec, nonnull (strerror (errno)));
- }
- }
- XFREE (tmp_pathspec);
-
- if (!has_symlinks)
- {
- return xstrdup (pathspec);
- }
-
- tmp_pathspec = realpath (pathspec, buf);
- if (tmp_pathspec == 0)
- {
- lt_fatal (__FILE__, __LINE__,
- "could not follow symlinks for %s", pathspec);
- }
- return xstrdup (tmp_pathspec);
-#endif
-}
-
-char *
-strendzap (char *str, const char *pat)
-{
- size_t len, patlen;
-
- assert (str != NULL);
- assert (pat != NULL);
-
- len = strlen (str);
- patlen = strlen (pat);
-
- if (patlen <= len)
- {
- str += len - patlen;
- if (strcmp (str, pat) == 0)
- *str = '\0';
- }
- return str;
-}
-
-void
-lt_debugprintf (const char *file, int line, const char *fmt, ...)
-{
- va_list args;
- if (lt_debug)
- {
- (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
- va_start (args, fmt);
- (void) vfprintf (stderr, fmt, args);
- va_end (args);
- }
-}
-
-static void
-lt_error_core (int exit_status, const char *file,
- int line, const char *mode,
- const char *message, va_list ap)
-{
- fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
- vfprintf (stderr, message, ap);
- fprintf (stderr, ".\n");
-
- if (exit_status >= 0)
- exit (exit_status);
-}
-
-void
-lt_fatal (const char *file, int line, const char *message, ...)
-{
- va_list ap;
- va_start (ap, message);
- lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
- va_end (ap);
-}
-
-static const char *
-nonnull (const char *s)
-{
- return s ? s : "(null)";
-}
-
-static const char *
-nonempty (const char *s)
-{
- return (s && !*s) ? "(empty)" : nonnull (s);
-}
-
-void
-lt_setenv (const char *name, const char *value)
-{
- lt_debugprintf (__FILE__, __LINE__,
- "(lt_setenv) setting '%s' to '%s'\n",
- nonnull (name), nonnull (value));
- {
-#ifdef HAVE_SETENV
- /* always make a copy, for consistency with !HAVE_SETENV */
- char *str = xstrdup (value);
- setenv (name, str, 1);
-#else
- int len = strlen (name) + 1 + strlen (value) + 1;
- char *str = XMALLOC (char, len);
- sprintf (str, "%s=%s", name, value);
- if (putenv (str) != EXIT_SUCCESS)
- {
- XFREE (str);
- }
-#endif
- }
-}
-
-char *
-lt_extend_str (const char *orig_value, const char *add, int to_end)
-{
- char *new_value;
- if (orig_value && *orig_value)
- {
- int orig_value_len = strlen (orig_value);
- int add_len = strlen (add);
- new_value = XMALLOC (char, add_len + orig_value_len + 1);
- if (to_end)
- {
- strcpy (new_value, orig_value);
- strcpy (new_value + orig_value_len, add);
- }
- else
- {
- strcpy (new_value, add);
- strcpy (new_value + add_len, orig_value);
- }
- }
- else
- {
- new_value = xstrdup (add);
- }
- return new_value;
-}
-
-void
-lt_update_exe_path (const char *name, const char *value)
-{
- lt_debugprintf (__FILE__, __LINE__,
- "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
- nonnull (name), nonnull (value));
-
- if (name && *name && value && *value)
- {
- char *new_value = lt_extend_str (getenv (name), value, 0);
- /* some systems can't cope with a ':'-terminated path #' */
- int len = strlen (new_value);
- while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
- {
- new_value[len-1] = '\0';
- }
- lt_setenv (name, new_value);
- XFREE (new_value);
- }
-}
-
-void
-lt_update_lib_path (const char *name, const char *value)
-{
- lt_debugprintf (__FILE__, __LINE__,
- "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
- nonnull (name), nonnull (value));
-
- if (name && *name && value && *value)
- {
- char *new_value = lt_extend_str (getenv (name), value, 0);
- lt_setenv (name, new_value);
- XFREE (new_value);
- }
-}
-
-EOF
- case $host_os in
- mingw*)
- cat <<"EOF"
-
-/* Prepares an argument vector before calling spawn().
- Note that spawn() does not by itself call the command interpreter
- (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
- ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
- GetVersionEx(&v);
- v.dwPlatformId == VER_PLATFORM_WIN32_NT;
- }) ? "cmd.exe" : "command.com").
- Instead it simply concatenates the arguments, separated by ' ', and calls
- CreateProcess(). We must quote the arguments since Win32 CreateProcess()
- interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
- special way:
- - Space and tab are interpreted as delimiters. They are not treated as
- delimiters if they are surrounded by double quotes: "...".
- - Unescaped double quotes are removed from the input. Their only effect is
- that within double quotes, space and tab are treated like normal
- characters.
- - Backslashes not followed by double quotes are not special.
- - But 2*n+1 backslashes followed by a double quote become
- n backslashes followed by a double quote (n >= 0):
- \" -> "
- \\\" -> \"
- \\\\\" -> \\"
- */
-#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
-#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
-char **
-prepare_spawn (char **argv)
-{
- size_t argc;
- char **new_argv;
- size_t i;
-
- /* Count number of arguments. */
- for (argc = 0; argv[argc] != NULL; argc++)
- ;
-
- /* Allocate new argument vector. */
- new_argv = XMALLOC (char *, argc + 1);
-
- /* Put quoted arguments into the new argument vector. */
- for (i = 0; i < argc; i++)
- {
- const char *string = argv[i];
-
- if (string[0] == '\0')
- new_argv[i] = xstrdup ("\"\"");
- else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
- {
- int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
- size_t length;
- unsigned int backslashes;
- const char *s;
- char *quoted_string;
- char *p;
-
- length = 0;
- backslashes = 0;
- if (quote_around)
- length++;
- for (s = string; *s != '\0'; s++)
- {
- char c = *s;
- if (c == '"')
- length += backslashes + 1;
- length++;
- if (c == '\\')
- backslashes++;
- else
- backslashes = 0;
- }
- if (quote_around)
- length += backslashes + 1;
-
- quoted_string = XMALLOC (char, length + 1);
-
- p = quoted_string;
- backslashes = 0;
- if (quote_around)
- *p++ = '"';
- for (s = string; *s != '\0'; s++)
- {
- char c = *s;
- if (c == '"')
- {
- unsigned int j;
- for (j = backslashes + 1; j > 0; j--)
- *p++ = '\\';
- }
- *p++ = c;
- if (c == '\\')
- backslashes++;
- else
- backslashes = 0;
- }
- if (quote_around)
- {
- unsigned int j;
- for (j = backslashes; j > 0; j--)
- *p++ = '\\';
- *p++ = '"';
- }
- *p = '\0';
-
- new_argv[i] = quoted_string;
- }
- else
- new_argv[i] = (char *) string;
- }
- new_argv[argc] = NULL;
-
- return new_argv;
-}
-EOF
- ;;
- esac
-
- cat <<"EOF"
-void lt_dump_script (FILE* f)
-{
-EOF
- func_emit_wrapper yes |
- $SED -n -e '
-s/^\(.\{79\}\)\(..*\)/\1\
-\2/
-h
-s/\([\\"]\)/\\\1/g
-s/$/\\n/
-s/\([^\n]*\).*/ fputs ("\1", f);/p
-g
-D'
- cat <<"EOF"
-}
-EOF
-}
-# end: func_emit_cwrapperexe_src
-
-# func_win32_import_lib_p ARG
-# True if ARG is an import lib, as indicated by $file_magic_cmd
-func_win32_import_lib_p ()
-{
- $opt_debug
- case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
- *import*) : ;;
- *) false ;;
- esac
-}
-
-# func_mode_link arg...
-func_mode_link ()
-{
- $opt_debug
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
- # It is impossible to link a dll without this setting, and
- # we shouldn't force the makefile maintainer to figure out
- # which system we are compiling for in order to pass an extra
- # flag for every libtool invocation.
- # allow_undefined=no
-
- # FIXME: Unfortunately, there are problems with the above when trying
- # to make a dll which has undefined symbols, in which case not
- # even a static library is built. For now, we need to specify
- # -no-undefined on the libtool link line when we can be certain
- # that all symbols are satisfied, otherwise we get a static library.
- allow_undefined=yes
- ;;
- *)
- allow_undefined=yes
- ;;
- esac
- libtool_args=$nonopt
- base_compile="$nonopt $@"
- compile_command=$nonopt
- finalize_command=$nonopt
-
- compile_rpath=
- finalize_rpath=
- compile_shlibpath=
- finalize_shlibpath=
- convenience=
- old_convenience=
- deplibs=
- old_deplibs=
- compiler_flags=
- linker_flags=
- dllsearchpath=
- lib_search_path=`pwd`
- inst_prefix_dir=
- new_inherited_linker_flags=
-
- avoid_version=no
- bindir=
- dlfiles=
- dlprefiles=
- dlself=no
- export_dynamic=no
- export_symbols=
- export_symbols_regex=
- generated=
- libobjs=
- ltlibs=
- module=no
- no_install=no
- objs=
- non_pic_objects=
- precious_files_regex=
- prefer_static_libs=no
- preload=no
- prev=
- prevarg=
- release=
- rpath=
- xrpath=
- perm_rpath=
- temp_rpath=
- thread_safe=no
- vinfo=
- vinfo_number=no
- weak_libs=
- single_module="${wl}-single_module"
- func_infer_tag $base_compile
-
- # We need to know -static, to get the right output filenames.
- for arg
- do
- case $arg in
- -shared)
- test "$build_libtool_libs" != yes && \
- func_fatal_configuration "can not build a shared library"
- build_old_libs=no
- break
- ;;
- -all-static | -static | -static-libtool-libs)
- case $arg in
- -all-static)
- if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
- func_warning "complete static linking is impossible in this configuration"
- fi
- if test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
- prefer_static_libs=yes
- ;;
- -static)
- if test -z "$pic_flag" && test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
- prefer_static_libs=built
- ;;
- -static-libtool-libs)
- if test -z "$pic_flag" && test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
- prefer_static_libs=yes
- ;;
- esac
- build_libtool_libs=no
- build_old_libs=yes
- break
- ;;
- esac
- done
-
- # See if our shared archives depend on static archives.
- test -n "$old_archive_from_new_cmds" && build_old_libs=yes
-
- # Go through the arguments, transforming them on the way.
- while test "$#" -gt 0; do
- arg="$1"
- shift
- func_quote_for_eval "$arg"
- qarg=$func_quote_for_eval_unquoted_result
- func_append libtool_args " $func_quote_for_eval_result"
-
- # If the previous option needs an argument, assign it.
- if test -n "$prev"; then
- case $prev in
- output)
- func_append compile_command " @OUTPUT@"
- func_append finalize_command " @OUTPUT@"
- ;;
- esac
-
- case $prev in
- bindir)
- bindir="$arg"
- prev=
- continue
- ;;
- dlfiles|dlprefiles)
- if test "$preload" = no; then
- # Add the symbol object into the linking commands.
- func_append compile_command " @SYMFILE@"
- func_append finalize_command " @SYMFILE@"
- preload=yes
- fi
- case $arg in
- *.la | *.lo) ;; # We handle these cases below.
- force)
- if test "$dlself" = no; then
- dlself=needless
- export_dynamic=yes
- fi
- prev=
- continue
- ;;
- self)
- if test "$prev" = dlprefiles; then
- dlself=yes
- elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
- dlself=yes
- else
- dlself=needless
- export_dynamic=yes
- fi
- prev=
- continue
- ;;
- *)
- if test "$prev" = dlfiles; then
- func_append dlfiles " $arg"
- else
- func_append dlprefiles " $arg"
- fi
- prev=
- continue
- ;;
- esac
- ;;
- expsyms)
- export_symbols="$arg"
- test -f "$arg" \
- || func_fatal_error "symbol file \`$arg' does not exist"
- prev=
- continue
- ;;
- expsyms_regex)
- export_symbols_regex="$arg"
- prev=
- continue
- ;;
- framework)
- case $host in
- *-*-darwin*)
- case "$deplibs " in
- *" $qarg.ltframework "*) ;;
- *) func_append deplibs " $qarg.ltframework" # this is fixed later
- ;;
- esac
- ;;
- esac
- prev=
- continue
- ;;
- inst_prefix)
- inst_prefix_dir="$arg"
- prev=
- continue
- ;;
- objectlist)
- if test -f "$arg"; then
- save_arg=$arg
- moreargs=
- for fil in `cat "$save_arg"`
- do
-# func_append moreargs " $fil"
- arg=$fil
- # A libtool-controlled object.
-
- # Check to see that this really is a libtool object.
- if func_lalib_unsafe_p "$arg"; then
- pic_object=
- non_pic_object=
-
- # Read the .lo file
- func_source "$arg"
-
- if test -z "$pic_object" ||
- test -z "$non_pic_object" ||
- test "$pic_object" = none &&
- test "$non_pic_object" = none; then
- func_fatal_error "cannot find name of object for \`$arg'"
- fi
-
- # Extract subdirectory from the argument.
- func_dirname "$arg" "/" ""
- xdir="$func_dirname_result"
-
- if test "$pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- pic_object="$xdir$pic_object"
-
- if test "$prev" = dlfiles; then
- if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
- func_append dlfiles " $pic_object"
- prev=
- continue
- else
- # If libtool objects are unsupported, then we need to preload.
- prev=dlprefiles
- fi
- fi
-
- # CHECK ME: I think I busted this. -Ossama
- if test "$prev" = dlprefiles; then
- # Preload the old-style object.
- func_append dlprefiles " $pic_object"
- prev=
- fi
-
- # A PIC object.
- func_append libobjs " $pic_object"
- arg="$pic_object"
- fi
-
- # Non-PIC object.
- if test "$non_pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- non_pic_object="$xdir$non_pic_object"
-
- # A standard non-PIC object
- func_append non_pic_objects " $non_pic_object"
- if test -z "$pic_object" || test "$pic_object" = none ; then
- arg="$non_pic_object"
- fi
- else
- # If the PIC object exists, use it instead.
- # $xdir was prepended to $pic_object above.
- non_pic_object="$pic_object"
- func_append non_pic_objects " $non_pic_object"
- fi
- else
- # Only an error if not doing a dry-run.
- if $opt_dry_run; then
- # Extract subdirectory from the argument.
- func_dirname "$arg" "/" ""
- xdir="$func_dirname_result"
-
- func_lo2o "$arg"
- pic_object=$xdir$objdir/$func_lo2o_result
- non_pic_object=$xdir$func_lo2o_result
- func_append libobjs " $pic_object"
- func_append non_pic_objects " $non_pic_object"
- else
- func_fatal_error "\`$arg' is not a valid libtool object"
- fi
- fi
- done
- else
- func_fatal_error "link input file \`$arg' does not exist"
- fi
- arg=$save_arg
- prev=
- continue
- ;;
- precious_regex)
- precious_files_regex="$arg"
- prev=
- continue
- ;;
- release)
- release="-$arg"
- prev=
- continue
- ;;
- rpath | xrpath)
- # We need an absolute path.
- case $arg in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- func_fatal_error "only absolute run-paths are allowed"
- ;;
- esac
- if test "$prev" = rpath; then
- case "$rpath " in
- *" $arg "*) ;;
- *) func_append rpath " $arg" ;;
- esac
- else
- case "$xrpath " in
- *" $arg "*) ;;
- *) func_append xrpath " $arg" ;;
- esac
- fi
- prev=
- continue
- ;;
- shrext)
- shrext_cmds="$arg"
- prev=
- continue
- ;;
- weak)
- func_append weak_libs " $arg"
- prev=
- continue
- ;;
- xcclinker)
- func_append linker_flags " $qarg"
- func_append compiler_flags " $qarg"
- prev=
- func_append compile_command " $qarg"
- func_append finalize_command " $qarg"
- continue
- ;;
- xcompiler)
- func_append compiler_flags " $qarg"
- prev=
- func_append compile_command " $qarg"
- func_append finalize_command " $qarg"
- continue
- ;;
- xlinker)
- func_append linker_flags " $qarg"
- func_append compiler_flags " $wl$qarg"
- prev=
- func_append compile_command " $wl$qarg"
- func_append finalize_command " $wl$qarg"
- continue
- ;;
- *)
- eval "$prev=\"\$arg\""
- prev=
- continue
- ;;
- esac
- fi # test -n "$prev"
-
- prevarg="$arg"
-
- case $arg in
- -all-static)
- if test -n "$link_static_flag"; then
- # See comment for -static flag below, for more details.
- func_append compile_command " $link_static_flag"
- func_append finalize_command " $link_static_flag"
- fi
- continue
- ;;
-
- -allow-undefined)
- # FIXME: remove this flag sometime in the future.
- func_fatal_error "\`-allow-undefined' must not be used because it is the default"
- ;;
-
- -avoid-version)
- avoid_version=yes
- continue
- ;;
-
- -bindir)
- prev=bindir
- continue
- ;;
-
- -dlopen)
- prev=dlfiles
- continue
- ;;
-
- -dlpreopen)
- prev=dlprefiles
- continue
- ;;
-
- -export-dynamic)
- export_dynamic=yes
- continue
- ;;
-
- -export-symbols | -export-symbols-regex)
- if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
- func_fatal_error "more than one -exported-symbols argument is not allowed"
- fi
- if test "X$arg" = "X-export-symbols"; then
- prev=expsyms
- else
- prev=expsyms_regex
- fi
- continue
- ;;
-
- -framework)
- prev=framework
- continue
- ;;
-
- -inst-prefix-dir)
- prev=inst_prefix
- continue
- ;;
-
- # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
- # so, if we see these flags be careful not to treat them like -L
- -L[A-Z][A-Z]*:*)
- case $with_gcc/$host in
- no/*-*-irix* | /*-*-irix*)
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- ;;
- esac
- continue
- ;;
-
- -L*)
- func_stripname "-L" '' "$arg"
- if test -z "$func_stripname_result"; then
- if test "$#" -gt 0; then
- func_fatal_error "require no space between \`-L' and \`$1'"
- else
- func_fatal_error "need path for \`-L' option"
- fi
- fi
- func_resolve_sysroot "$func_stripname_result"
- dir=$func_resolve_sysroot_result
- # We need an absolute path.
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- absdir=`cd "$dir" && pwd`
- test -z "$absdir" && \
- func_fatal_error "cannot determine absolute directory name of \`$dir'"
- dir="$absdir"
- ;;
- esac
- case "$deplibs " in
- *" -L$dir "* | *" $arg "*)
- # Will only happen for absolute or sysroot arguments
- ;;
- *)
- # Preserve sysroot, but never include relative directories
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
- *) func_append deplibs " -L$dir" ;;
- esac
- func_append lib_search_path " $dir"
- ;;
- esac
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
- testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
- case :$dllsearchpath: in
- *":$dir:"*) ;;
- ::) dllsearchpath=$dir;;
- *) func_append dllsearchpath ":$dir";;
- esac
- case :$dllsearchpath: in
- *":$testbindir:"*) ;;
- ::) dllsearchpath=$testbindir;;
- *) func_append dllsearchpath ":$testbindir";;
- esac
- ;;
- esac
- continue
- ;;
-
- -l*)
- if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
- # These systems don't actually have a C or math library (as such)
- continue
- ;;
- *-*-os2*)
- # These systems don't actually have a C library (as such)
- test "X$arg" = "X-lc" && continue
- ;;
- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
- # Do not include libc due to us having libc/libc_r.
- test "X$arg" = "X-lc" && continue
- ;;
- *-*-rhapsody* | *-*-darwin1.[012])
- # Rhapsody C and math libraries are in the System framework
- func_append deplibs " System.ltframework"
- continue
- ;;
- *-*-sco3.2v5* | *-*-sco5v6*)
- # Causes problems with __ctype
- test "X$arg" = "X-lc" && continue
- ;;
- *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
- # Compiler inserts libc in the correct place for threads to work
- test "X$arg" = "X-lc" && continue
- ;;
- esac
- elif test "X$arg" = "X-lc_r"; then
- case $host in
- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
- # Do not include libc_r directly, use -pthread flag.
- continue
- ;;
- esac
- fi
- func_append deplibs " $arg"
- continue
- ;;
-
- -module)
- module=yes
- continue
- ;;
-
- # Tru64 UNIX uses -model [arg] to determine the layout of C++
- # classes, name mangling, and exception handling.
- # Darwin uses the -arch flag to determine output architecture.
- -model|-arch|-isysroot|--sysroot)
- func_append compiler_flags " $arg"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- prev=xcompiler
- continue
- ;;
-
- -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
- |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
- func_append compiler_flags " $arg"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- case "$new_inherited_linker_flags " in
- *" $arg "*) ;;
- * ) func_append new_inherited_linker_flags " $arg" ;;
- esac
- continue
- ;;
-
- -multi_module)
- single_module="${wl}-multi_module"
- continue
- ;;
-
- -no-fast-install)
- fast_install=no
- continue
- ;;
-
- -no-install)
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
- # The PATH hackery in wrapper scripts is required on Windows
- # and Darwin in order for the loader to find any dlls it needs.
- func_warning "\`-no-install' is ignored for $host"
- func_warning "assuming \`-no-fast-install' instead"
- fast_install=no
- ;;
- *) no_install=yes ;;
- esac
- continue
- ;;
-
- -no-undefined)
- allow_undefined=no
- continue
- ;;
-
- -objectlist)
- prev=objectlist
- continue
- ;;
-
- -o) prev=output ;;
-
- -precious-files-regex)
- prev=precious_regex
- continue
- ;;
-
- -release)
- prev=release
- continue
- ;;
-
- -rpath)
- prev=rpath
- continue
- ;;
-
- -R)
- prev=xrpath
- continue
- ;;
-
- -R*)
- func_stripname '-R' '' "$arg"
- dir=$func_stripname_result
- # We need an absolute path.
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- =*)
- func_stripname '=' '' "$dir"
- dir=$lt_sysroot$func_stripname_result
- ;;
- *)
- func_fatal_error "only absolute run-paths are allowed"
- ;;
- esac
- case "$xrpath " in
- *" $dir "*) ;;
- *) func_append xrpath " $dir" ;;
- esac
- continue
- ;;
-
- -shared)
- # The effects of -shared are defined in a previous loop.
- continue
- ;;
-
- -shrext)
- prev=shrext
- continue
- ;;
-
- -static | -static-libtool-libs)
- # The effects of -static are defined in a previous loop.
- # We used to do the same as -all-static on platforms that
- # didn't have a PIC flag, but the assumption that the effects
- # would be equivalent was wrong. It would break on at least
- # Digital Unix and AIX.
- continue
- ;;
-
- -thread-safe)
- thread_safe=yes
- continue
- ;;
-
- -version-info)
- prev=vinfo
- continue
- ;;
-
- -version-number)
- prev=vinfo
- vinfo_number=yes
- continue
- ;;
-
- -weak)
- prev=weak
- continue
- ;;
-
- -Wc,*)
- func_stripname '-Wc,' '' "$arg"
- args=$func_stripname_result
- arg=
- save_ifs="$IFS"; IFS=','
- for flag in $args; do
- IFS="$save_ifs"
- func_quote_for_eval "$flag"
- func_append arg " $func_quote_for_eval_result"
- func_append compiler_flags " $func_quote_for_eval_result"
- done
- IFS="$save_ifs"
- func_stripname ' ' '' "$arg"
- arg=$func_stripname_result
- ;;
-
- -Wl,*)
- func_stripname '-Wl,' '' "$arg"
- args=$func_stripname_result
- arg=
- save_ifs="$IFS"; IFS=','
- for flag in $args; do
- IFS="$save_ifs"
- func_quote_for_eval "$flag"
- func_append arg " $wl$func_quote_for_eval_result"
- func_append compiler_flags " $wl$func_quote_for_eval_result"
- func_append linker_flags " $func_quote_for_eval_result"
- done
- IFS="$save_ifs"
- func_stripname ' ' '' "$arg"
- arg=$func_stripname_result
- ;;
-
- -Xcompiler)
- prev=xcompiler
- continue
- ;;
-
- -Xlinker)
- prev=xlinker
- continue
- ;;
-
- -XCClinker)
- prev=xcclinker
- continue
- ;;
-
- # -msg_* for osf cc
- -msg_*)
- func_quote_for_eval "$arg"
- arg="$func_quote_for_eval_result"
- ;;
-
- # Flags to be passed through unchanged, with rationale:
- # -64, -mips[0-9] enable 64-bit mode for the SGI compiler
- # -r[0-9][0-9]* specify processor for the SGI compiler
- # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
- # +DA*, +DD* enable 64-bit mode for the HP compiler
- # -q* compiler args for the IBM compiler
- # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
- # -F/path path to uninstalled frameworks, gcc on darwin
- # -p, -pg, --coverage, -fprofile-* profiling flags for GCC
- # @file GCC response files
- # -tp=* Portland pgcc target processor selection
- # --sysroot=* for sysroot support
- # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
- -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
- -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
- -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
- func_quote_for_eval "$arg"
- arg="$func_quote_for_eval_result"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- func_append compiler_flags " $arg"
- continue
- ;;
-
- # Some other compiler flag.
- -* | +*)
- func_quote_for_eval "$arg"
- arg="$func_quote_for_eval_result"
- ;;
-
- *.$objext)
- # A standard object.
- func_append objs " $arg"
- ;;
-
- *.lo)
- # A libtool-controlled object.
-
- # Check to see that this really is a libtool object.
- if func_lalib_unsafe_p "$arg"; then
- pic_object=
- non_pic_object=
-
- # Read the .lo file
- func_source "$arg"
-
- if test -z "$pic_object" ||
- test -z "$non_pic_object" ||
- test "$pic_object" = none &&
- test "$non_pic_object" = none; then
- func_fatal_error "cannot find name of object for \`$arg'"
- fi
-
- # Extract subdirectory from the argument.
- func_dirname "$arg" "/" ""
- xdir="$func_dirname_result"
-
- if test "$pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- pic_object="$xdir$pic_object"
-
- if test "$prev" = dlfiles; then
- if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
- func_append dlfiles " $pic_object"
- prev=
- continue
- else
- # If libtool objects are unsupported, then we need to preload.
- prev=dlprefiles
- fi
- fi
-
- # CHECK ME: I think I busted this. -Ossama
- if test "$prev" = dlprefiles; then
- # Preload the old-style object.
- func_append dlprefiles " $pic_object"
- prev=
- fi
-
- # A PIC object.
- func_append libobjs " $pic_object"
- arg="$pic_object"
- fi
-
- # Non-PIC object.
- if test "$non_pic_object" != none; then
- # Prepend the subdirectory the object is found in.
- non_pic_object="$xdir$non_pic_object"
-
- # A standard non-PIC object
- func_append non_pic_objects " $non_pic_object"
- if test -z "$pic_object" || test "$pic_object" = none ; then
- arg="$non_pic_object"
- fi
- else
- # If the PIC object exists, use it instead.
- # $xdir was prepended to $pic_object above.
- non_pic_object="$pic_object"
- func_append non_pic_objects " $non_pic_object"
- fi
- else
- # Only an error if not doing a dry-run.
- if $opt_dry_run; then
- # Extract subdirectory from the argument.
- func_dirname "$arg" "/" ""
- xdir="$func_dirname_result"
-
- func_lo2o "$arg"
- pic_object=$xdir$objdir/$func_lo2o_result
- non_pic_object=$xdir$func_lo2o_result
- func_append libobjs " $pic_object"
- func_append non_pic_objects " $non_pic_object"
- else
- func_fatal_error "\`$arg' is not a valid libtool object"
- fi
- fi
- ;;
-
- *.$libext)
- # An archive.
- func_append deplibs " $arg"
- func_append old_deplibs " $arg"
- continue
- ;;
-
- *.la)
- # A libtool-controlled library.
-
- func_resolve_sysroot "$arg"
- if test "$prev" = dlfiles; then
- # This library was specified with -dlopen.
- func_append dlfiles " $func_resolve_sysroot_result"
- prev=
- elif test "$prev" = dlprefiles; then
- # The library was specified with -dlpreopen.
- func_append dlprefiles " $func_resolve_sysroot_result"
- prev=
- else
- func_append deplibs " $func_resolve_sysroot_result"
- fi
- continue
- ;;
-
- # Some other compiler argument.
- *)
- # Unknown arguments in both finalize_command and compile_command need
- # to be aesthetically quoted because they are evaled later.
- func_quote_for_eval "$arg"
- arg="$func_quote_for_eval_result"
- ;;
- esac # arg
-
- # Now actually substitute the argument into the commands.
- if test -n "$arg"; then
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- fi
- done # argument parsing loop
-
- test -n "$prev" && \
- func_fatal_help "the \`$prevarg' option requires an argument"
-
- if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
- eval arg=\"$export_dynamic_flag_spec\"
- func_append compile_command " $arg"
- func_append finalize_command " $arg"
- fi
-
- oldlibs=
- # calculate the name of the file, without its directory
- func_basename "$output"
- outputname="$func_basename_result"
- libobjs_save="$libobjs"
-
- if test -n "$shlibpath_var"; then
- # get the directories listed in $shlibpath_var
- eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
- else
- shlib_search_path=
- fi
- eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
- eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
-
- func_dirname "$output" "/" ""
- output_objdir="$func_dirname_result$objdir"
- func_to_tool_file "$output_objdir/"
- tool_output_objdir=$func_to_tool_file_result
- # Create the object directory.
- func_mkdir_p "$output_objdir"
-
- # Determine the type of output
- case $output in
- "")
- func_fatal_help "you must specify an output file"
- ;;
- *.$libext) linkmode=oldlib ;;
- *.lo | *.$objext) linkmode=obj ;;
- *.la) linkmode=lib ;;
- *) linkmode=prog ;; # Anything else should be a program.
- esac
-
- specialdeplibs=
-
- libs=
- # Find all interdependent deplibs by searching for libraries
- # that are linked more than once (e.g. -la -lb -la)
- for deplib in $deplibs; do
- if $opt_preserve_dup_deps ; then
- case "$libs " in
- *" $deplib "*) func_append specialdeplibs " $deplib" ;;
- esac
- fi
- func_append libs " $deplib"
- done
-
- if test "$linkmode" = lib; then
- libs="$predeps $libs $compiler_lib_search_path $postdeps"
-
- # Compute libraries that are listed more than once in $predeps
- # $postdeps and mark them as special (i.e., whose duplicates are
- # not to be eliminated).
- pre_post_deps=
- if $opt_duplicate_compiler_generated_deps; then
- for pre_post_dep in $predeps $postdeps; do
- case "$pre_post_deps " in
- *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
- esac
- func_append pre_post_deps " $pre_post_dep"
- done
- fi
- pre_post_deps=
- fi
-
- deplibs=
- newdependency_libs=
- newlib_search_path=
- need_relink=no # whether we're linking any uninstalled libtool libraries
- notinst_deplibs= # not-installed libtool libraries
- notinst_path= # paths that contain not-installed libtool libraries
-
- case $linkmode in
- lib)
- passes="conv dlpreopen link"
- for file in $dlfiles $dlprefiles; do
- case $file in
- *.la) ;;
- *)
- func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
- ;;
- esac
- done
- ;;
- prog)
- compile_deplibs=
- finalize_deplibs=
- alldeplibs=no
- newdlfiles=
- newdlprefiles=
- passes="conv scan dlopen dlpreopen link"
- ;;
- *) passes="conv"
- ;;
- esac
-
- for pass in $passes; do
- # The preopen pass in lib mode reverses $deplibs; put it back here
- # so that -L comes before libs that need it for instance...
- if test "$linkmode,$pass" = "lib,link"; then
- ## FIXME: Find the place where the list is rebuilt in the wrong
- ## order, and fix it there properly
- tmp_deplibs=
- for deplib in $deplibs; do
- tmp_deplibs="$deplib $tmp_deplibs"
- done
- deplibs="$tmp_deplibs"
- fi
-
- if test "$linkmode,$pass" = "lib,link" ||
- test "$linkmode,$pass" = "prog,scan"; then
- libs="$deplibs"
- deplibs=
- fi
- if test "$linkmode" = prog; then
- case $pass in
- dlopen) libs="$dlfiles" ;;
- dlpreopen) libs="$dlprefiles" ;;
- link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
- esac
- fi
- if test "$linkmode,$pass" = "lib,dlpreopen"; then
- # Collect and forward deplibs of preopened libtool libs
- for lib in $dlprefiles; do
- # Ignore non-libtool-libs
- dependency_libs=
- func_resolve_sysroot "$lib"
- case $lib in
- *.la) func_source "$func_resolve_sysroot_result" ;;
- esac
-
- # Collect preopened libtool deplibs, except any this library
- # has declared as weak libs
- for deplib in $dependency_libs; do
- func_basename "$deplib"
- deplib_base=$func_basename_result
- case " $weak_libs " in
- *" $deplib_base "*) ;;
- *) func_append deplibs " $deplib" ;;
- esac
- done
- done
- libs="$dlprefiles"
- fi
- if test "$pass" = dlopen; then
- # Collect dlpreopened libraries
- save_deplibs="$deplibs"
- deplibs=
- fi
-
- for deplib in $libs; do
- lib=
- found=no
- case $deplib in
- -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
- |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
- if test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- func_append compiler_flags " $deplib"
- if test "$linkmode" = lib ; then
- case "$new_inherited_linker_flags " in
- *" $deplib "*) ;;
- * ) func_append new_inherited_linker_flags " $deplib" ;;
- esac
- fi
- fi
- continue
- ;;
- -l*)
- if test "$linkmode" != lib && test "$linkmode" != prog; then
- func_warning "\`-l' is ignored for archives/objects"
- continue
- fi
- func_stripname '-l' '' "$deplib"
- name=$func_stripname_result
- if test "$linkmode" = lib; then
- searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
- else
- searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
- fi
- for searchdir in $searchdirs; do
- for search_ext in .la $std_shrext .so .a; do
- # Search the libtool library
- lib="$searchdir/lib${name}${search_ext}"
- if test -f "$lib"; then
- if test "$search_ext" = ".la"; then
- found=yes
- else
- found=no
- fi
- break 2
- fi
- done
- done
- if test "$found" != yes; then
- # deplib doesn't seem to be a libtool library
- if test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- deplibs="$deplib $deplibs"
- test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
- fi
- continue
- else # deplib is a libtool library
- # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
- # We need to do some special things here, and not later.
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $deplib "*)
- if func_lalib_p "$lib"; then
- library_names=
- old_library=
- func_source "$lib"
- for l in $old_library $library_names; do
- ll="$l"
- done
- if test "X$ll" = "X$old_library" ; then # only static version available
- found=no
- func_dirname "$lib" "" "."
- ladir="$func_dirname_result"
- lib=$ladir/$old_library
- if test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- deplibs="$deplib $deplibs"
- test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
- fi
- continue
- fi
- fi
- ;;
- *) ;;
- esac
- fi
- fi
- ;; # -l
- *.ltframework)
- if test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- deplibs="$deplib $deplibs"
- if test "$linkmode" = lib ; then
- case "$new_inherited_linker_flags " in
- *" $deplib "*) ;;
- * ) func_append new_inherited_linker_flags " $deplib" ;;
- esac
- fi
- fi
- continue
- ;;
- -L*)
- case $linkmode in
- lib)
- deplibs="$deplib $deplibs"
- test "$pass" = conv && continue
- newdependency_libs="$deplib $newdependency_libs"
- func_stripname '-L' '' "$deplib"
- func_resolve_sysroot "$func_stripname_result"
- func_append newlib_search_path " $func_resolve_sysroot_result"
- ;;
- prog)
- if test "$pass" = conv; then
- deplibs="$deplib $deplibs"
- continue
- fi
- if test "$pass" = scan; then
- deplibs="$deplib $deplibs"
- else
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- fi
- func_stripname '-L' '' "$deplib"
- func_resolve_sysroot "$func_stripname_result"
- func_append newlib_search_path " $func_resolve_sysroot_result"
- ;;
- *)
- func_warning "\`-L' is ignored for archives/objects"
- ;;
- esac # linkmode
- continue
- ;; # -L
- -R*)
- if test "$pass" = link; then
- func_stripname '-R' '' "$deplib"
- func_resolve_sysroot "$func_stripname_result"
- dir=$func_resolve_sysroot_result
- # Make sure the xrpath contains only unique directories.
- case "$xrpath " in
- *" $dir "*) ;;
- *) func_append xrpath " $dir" ;;
- esac
- fi
- deplibs="$deplib $deplibs"
- continue
- ;;
- *.la)
- func_resolve_sysroot "$deplib"
- lib=$func_resolve_sysroot_result
- ;;
- *.$libext)
- if test "$pass" = conv; then
- deplibs="$deplib $deplibs"
- continue
- fi
- case $linkmode in
- lib)
- # Linking convenience modules into shared libraries is allowed,
- # but linking other static libraries is non-portable.
- case " $dlpreconveniencelibs " in
- *" $deplib "*) ;;
- *)
- valid_a_lib=no
- case $deplibs_check_method in
- match_pattern*)
- set dummy $deplibs_check_method; shift
- match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
- if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
- | $EGREP "$match_pattern_regex" > /dev/null; then
- valid_a_lib=yes
- fi
- ;;
- pass_all)
- valid_a_lib=yes
- ;;
- esac
- if test "$valid_a_lib" != yes; then
- echo
- $ECHO "*** Warning: Trying to link with static lib archive $deplib."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have"
- echo "*** because the file extensions .$libext of this argument makes me believe"
- echo "*** that it is just a static archive that I should not use here."
- else
- echo
- $ECHO "*** Warning: Linking the shared library $output against the"
- $ECHO "*** static library $deplib is not portable!"
- deplibs="$deplib $deplibs"
- fi
- ;;
- esac
- continue
- ;;
- prog)
- if test "$pass" != link; then
- deplibs="$deplib $deplibs"
- else
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- fi
- continue
- ;;
- esac # linkmode
- ;; # *.$libext
- *.lo | *.$objext)
- if test "$pass" = conv; then
- deplibs="$deplib $deplibs"
- elif test "$linkmode" = prog; then
- if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
- # If there is no dlopen support or we're linking statically,
- # we need to preload.
- func_append newdlprefiles " $deplib"
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- else
- func_append newdlfiles " $deplib"
- fi
- fi
- continue
- ;;
- %DEPLIBS%)
- alldeplibs=yes
- continue
- ;;
- esac # case $deplib
-
- if test "$found" = yes || test -f "$lib"; then :
- else
- func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
- fi
-
- # Check to see that this really is a libtool archive.
- func_lalib_unsafe_p "$lib" \
- || func_fatal_error "\`$lib' is not a valid libtool archive"
-
- func_dirname "$lib" "" "."
- ladir="$func_dirname_result"
-
- dlname=
- dlopen=
- dlpreopen=
- libdir=
- library_names=
- old_library=
- inherited_linker_flags=
- # If the library was installed with an old release of libtool,
- # it will not redefine variables installed, or shouldnotlink
- installed=yes
- shouldnotlink=no
- avoidtemprpath=
-
-
- # Read the .la file
- func_source "$lib"
-
- # Convert "-framework foo" to "foo.ltframework"
- if test -n "$inherited_linker_flags"; then
- tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
- for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
- case " $new_inherited_linker_flags " in
- *" $tmp_inherited_linker_flag "*) ;;
- *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
- esac
- done
- fi
- dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- if test "$linkmode,$pass" = "lib,link" ||
- test "$linkmode,$pass" = "prog,scan" ||
- { test "$linkmode" != prog && test "$linkmode" != lib; }; then
- test -n "$dlopen" && func_append dlfiles " $dlopen"
- test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
- fi
-
- if test "$pass" = conv; then
- # Only check for convenience libraries
- deplibs="$lib $deplibs"
- if test -z "$libdir"; then
- if test -z "$old_library"; then
- func_fatal_error "cannot find name of link library for \`$lib'"
- fi
- # It is a libtool convenience library, so add in its objects.
- func_append convenience " $ladir/$objdir/$old_library"
- func_append old_convenience " $ladir/$objdir/$old_library"
- elif test "$linkmode" != prog && test "$linkmode" != lib; then
- func_fatal_error "\`$lib' is not a convenience library"
- fi
- tmp_libs=
- for deplib in $dependency_libs; do
- deplibs="$deplib $deplibs"
- if $opt_preserve_dup_deps ; then
- case "$tmp_libs " in
- *" $deplib "*) func_append specialdeplibs " $deplib" ;;
- esac
- fi
- func_append tmp_libs " $deplib"
- done
- continue
- fi # $pass = conv
-
-
- # Get the name of the library we link against.
- linklib=
- if test -n "$old_library" &&
- { test "$prefer_static_libs" = yes ||
- test "$prefer_static_libs,$installed" = "built,no"; }; then
- linklib=$old_library
- else
- for l in $old_library $library_names; do
- linklib="$l"
- done
- fi
- if test -z "$linklib"; then
- func_fatal_error "cannot find name of link library for \`$lib'"
- fi
-
- # This library was specified with -dlopen.
- if test "$pass" = dlopen; then
- if test -z "$libdir"; then
- func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
- fi
- if test -z "$dlname" ||
- test "$dlopen_support" != yes ||
- test "$build_libtool_libs" = no; then
- # If there is no dlname, no dlopen support or we're linking
- # statically, we need to preload. We also need to preload any
- # dependent libraries so libltdl's deplib preloader doesn't
- # bomb out in the load deplibs phase.
- func_append dlprefiles " $lib $dependency_libs"
- else
- func_append newdlfiles " $lib"
- fi
- continue
- fi # $pass = dlopen
-
- # We need an absolute path.
- case $ladir in
- [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
- *)
- abs_ladir=`cd "$ladir" && pwd`
- if test -z "$abs_ladir"; then
- func_warning "cannot determine absolute directory name of \`$ladir'"
- func_warning "passing it literally to the linker, although it might fail"
- abs_ladir="$ladir"
- fi
- ;;
- esac
- func_basename "$lib"
- laname="$func_basename_result"
-
- # Find the relevant object directory and library name.
- if test "X$installed" = Xyes; then
- if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
- func_warning "library \`$lib' was moved."
- dir="$ladir"
- absdir="$abs_ladir"
- libdir="$abs_ladir"
- else
- dir="$lt_sysroot$libdir"
- absdir="$lt_sysroot$libdir"
- fi
- test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
- else
- if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
- dir="$ladir"
- absdir="$abs_ladir"
- # Remove this search path later
- func_append notinst_path " $abs_ladir"
- else
- dir="$ladir/$objdir"
- absdir="$abs_ladir/$objdir"
- # Remove this search path later
- func_append notinst_path " $abs_ladir"
- fi
- fi # $installed = yes
- func_stripname 'lib' '.la' "$laname"
- name=$func_stripname_result
-
- # This library was specified with -dlpreopen.
- if test "$pass" = dlpreopen; then
- if test -z "$libdir" && test "$linkmode" = prog; then
- func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
- fi
- case "$host" in
- # special handling for platforms with PE-DLLs.
- *cygwin* | *mingw* | *cegcc* )
- # Linker will automatically link against shared library if both
- # static and shared are present. Therefore, ensure we extract
- # symbols from the import library if a shared library is present
- # (otherwise, the dlopen module name will be incorrect). We do
- # this by putting the import library name into $newdlprefiles.
- # We recover the dlopen module name by 'saving' the la file
- # name in a special purpose variable, and (later) extracting the
- # dlname from the la file.
- if test -n "$dlname"; then
- func_tr_sh "$dir/$linklib"
- eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
- func_append newdlprefiles " $dir/$linklib"
- else
- func_append newdlprefiles " $dir/$old_library"
- # Keep a list of preopened convenience libraries to check
- # that they are being used correctly in the link pass.
- test -z "$libdir" && \
- func_append dlpreconveniencelibs " $dir/$old_library"
- fi
- ;;
- * )
- # Prefer using a static library (so that no silly _DYNAMIC symbols
- # are required to link).
- if test -n "$old_library"; then
- func_append newdlprefiles " $dir/$old_library"
- # Keep a list of preopened convenience libraries to check
- # that they are being used correctly in the link pass.
- test -z "$libdir" && \
- func_append dlpreconveniencelibs " $dir/$old_library"
- # Otherwise, use the dlname, so that lt_dlopen finds it.
- elif test -n "$dlname"; then
- func_append newdlprefiles " $dir/$dlname"
- else
- func_append newdlprefiles " $dir/$linklib"
- fi
- ;;
- esac
- fi # $pass = dlpreopen
-
- if test -z "$libdir"; then
- # Link the convenience library
- if test "$linkmode" = lib; then
- deplibs="$dir/$old_library $deplibs"
- elif test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$dir/$old_library $compile_deplibs"
- finalize_deplibs="$dir/$old_library $finalize_deplibs"
- else
- deplibs="$lib $deplibs" # used for prog,scan pass
- fi
- continue
- fi
-
-
- if test "$linkmode" = prog && test "$pass" != link; then
- func_append newlib_search_path " $ladir"
- deplibs="$lib $deplibs"
-
- linkalldeplibs=no
- if test "$link_all_deplibs" != no || test -z "$library_names" ||
- test "$build_libtool_libs" = no; then
- linkalldeplibs=yes
- fi
-
- tmp_libs=
- for deplib in $dependency_libs; do
- case $deplib in
- -L*) func_stripname '-L' '' "$deplib"
- func_resolve_sysroot "$func_stripname_result"
- func_append newlib_search_path " $func_resolve_sysroot_result"
- ;;
- esac
- # Need to link against all dependency_libs?
- if test "$linkalldeplibs" = yes; then
- deplibs="$deplib $deplibs"
- else
- # Need to hardcode shared library paths
- # or/and link against static libraries
- newdependency_libs="$deplib $newdependency_libs"
- fi
- if $opt_preserve_dup_deps ; then
- case "$tmp_libs " in
- *" $deplib "*) func_append specialdeplibs " $deplib" ;;
- esac
- fi
- func_append tmp_libs " $deplib"
- done # for deplib
- continue
- fi # $linkmode = prog...
-
- if test "$linkmode,$pass" = "prog,link"; then
- if test -n "$library_names" &&
- { { test "$prefer_static_libs" = no ||
- test "$prefer_static_libs,$installed" = "built,yes"; } ||
- test -z "$old_library"; }; then
- # We need to hardcode the library path
- if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
- # Make sure the rpath contains only unique directories.
- case "$temp_rpath:" in
- *"$absdir:"*) ;;
- *) func_append temp_rpath "$absdir:" ;;
- esac
- fi
-
- # Hardcode the library path.
- # Skip directories that are in the system default run-time
- # search path.
- case " $sys_lib_dlsearch_path " in
- *" $absdir "*) ;;
- *)
- case "$compile_rpath " in
- *" $absdir "*) ;;
- *) func_append compile_rpath " $absdir" ;;
- esac
- ;;
- esac
- case " $sys_lib_dlsearch_path " in
- *" $libdir "*) ;;
- *)
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) func_append finalize_rpath " $libdir" ;;
- esac
- ;;
- esac
- fi # $linkmode,$pass = prog,link...
-
- if test "$alldeplibs" = yes &&
- { test "$deplibs_check_method" = pass_all ||
- { test "$build_libtool_libs" = yes &&
- test -n "$library_names"; }; }; then
- # We only need to search for static libraries
- continue
- fi
- fi
-
- link_static=no # Whether the deplib will be linked statically
- use_static_libs=$prefer_static_libs
- if test "$use_static_libs" = built && test "$installed" = yes; then
- use_static_libs=no
- fi
- if test -n "$library_names" &&
- { test "$use_static_libs" = no || test -z "$old_library"; }; then
- case $host in
- *cygwin* | *mingw* | *cegcc*)
- # No point in relinking DLLs because paths are not encoded
- func_append notinst_deplibs " $lib"
- need_relink=no
- ;;
- *)
- if test "$installed" = no; then
- func_append notinst_deplibs " $lib"
- need_relink=yes
- fi
- ;;
- esac
- # This is a shared library
-
- # Warn about portability, can't link against -module's on some
- # systems (darwin). Don't bleat about dlopened modules though!
- dlopenmodule=""
- for dlpremoduletest in $dlprefiles; do
- if test "X$dlpremoduletest" = "X$lib"; then
- dlopenmodule="$dlpremoduletest"
- break
- fi
- done
- if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
- echo
- if test "$linkmode" = prog; then
- $ECHO "*** Warning: Linking the executable $output against the loadable module"
- else
- $ECHO "*** Warning: Linking the shared library $output against the loadable module"
- fi
- $ECHO "*** $linklib is not portable!"
- fi
- if test "$linkmode" = lib &&
- test "$hardcode_into_libs" = yes; then
- # Hardcode the library path.
- # Skip directories that are in the system default run-time
- # search path.
- case " $sys_lib_dlsearch_path " in
- *" $absdir "*) ;;
- *)
- case "$compile_rpath " in
- *" $absdir "*) ;;
- *) func_append compile_rpath " $absdir" ;;
- esac
- ;;
- esac
- case " $sys_lib_dlsearch_path " in
- *" $libdir "*) ;;
- *)
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) func_append finalize_rpath " $libdir" ;;
- esac
- ;;
- esac
- fi
-
- if test -n "$old_archive_from_expsyms_cmds"; then
- # figure out the soname
- set dummy $library_names
- shift
- realname="$1"
- shift
- libname=`eval "\\$ECHO \"$libname_spec\""`
- # use dlname if we got it. it's perfectly good, no?
- if test -n "$dlname"; then
- soname="$dlname"
- elif test -n "$soname_spec"; then
- # bleh windows
- case $host in
- *cygwin* | mingw* | *cegcc*)
- func_arith $current - $age
- major=$func_arith_result
- versuffix="-$major"
- ;;
- esac
- eval soname=\"$soname_spec\"
- else
- soname="$realname"
- fi
-
- # Make a new name for the extract_expsyms_cmds to use
- soroot="$soname"
- func_basename "$soroot"
- soname="$func_basename_result"
- func_stripname 'lib' '.dll' "$soname"
- newlib=libimp-$func_stripname_result.a
-
- # If the library has no export list, then create one now
- if test -f "$output_objdir/$soname-def"; then :
- else
- func_verbose "extracting exported symbol list from \`$soname'"
- func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
- fi
-
- # Create $newlib
- if test -f "$output_objdir/$newlib"; then :; else
- func_verbose "generating import library for \`$soname'"
- func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
- fi
- # make sure the library variables are pointing to the new library
- dir=$output_objdir
- linklib=$newlib
- fi # test -n "$old_archive_from_expsyms_cmds"
-
- if test "$linkmode" = prog || test "$opt_mode" != relink; then
- add_shlibpath=
- add_dir=
- add=
- lib_linked=yes
- case $hardcode_action in
- immediate | unsupported)
- if test "$hardcode_direct" = no; then
- add="$dir/$linklib"
- case $host in
- *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
- *-*-sysv4*uw2*) add_dir="-L$dir" ;;
- *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
- *-*-unixware7*) add_dir="-L$dir" ;;
- *-*-darwin* )
- # if the lib is a (non-dlopened) module then we can not
- # link against it, someone is ignoring the earlier warnings
- if /usr/bin/file -L $add 2> /dev/null |
- $GREP ": [^:]* bundle" >/dev/null ; then
- if test "X$dlopenmodule" != "X$lib"; then
- $ECHO "*** Warning: lib $linklib is a module, not a shared library"
- if test -z "$old_library" ; then
- echo
- echo "*** And there doesn't seem to be a static archive available"
- echo "*** The link will probably fail, sorry"
- else
- add="$dir/$old_library"
- fi
- elif test -n "$old_library"; then
- add="$dir/$old_library"
- fi
- fi
- esac
- elif test "$hardcode_minus_L" = no; then
- case $host in
- *-*-sunos*) add_shlibpath="$dir" ;;
- esac
- add_dir="-L$dir"
- add="-l$name"
- elif test "$hardcode_shlibpath_var" = no; then
- add_shlibpath="$dir"
- add="-l$name"
- else
- lib_linked=no
- fi
- ;;
- relink)
- if test "$hardcode_direct" = yes &&
- test "$hardcode_direct_absolute" = no; then
- add="$dir/$linklib"
- elif test "$hardcode_minus_L" = yes; then
- add_dir="-L$absdir"
- # Try looking first in the location we're being installed to.
- if test -n "$inst_prefix_dir"; then
- case $libdir in
- [\\/]*)
- func_append add_dir " -L$inst_prefix_dir$libdir"
- ;;
- esac
- fi
- add="-l$name"
- elif test "$hardcode_shlibpath_var" = yes; then
- add_shlibpath="$dir"
- add="-l$name"
- else
- lib_linked=no
- fi
- ;;
- *) lib_linked=no ;;
- esac
-
- if test "$lib_linked" != yes; then
- func_fatal_configuration "unsupported hardcode properties"
- fi
-
- if test -n "$add_shlibpath"; then
- case :$compile_shlibpath: in
- *":$add_shlibpath:"*) ;;
- *) func_append compile_shlibpath "$add_shlibpath:" ;;
- esac
- fi
- if test "$linkmode" = prog; then
- test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
- test -n "$add" && compile_deplibs="$add $compile_deplibs"
- else
- test -n "$add_dir" && deplibs="$add_dir $deplibs"
- test -n "$add" && deplibs="$add $deplibs"
- if test "$hardcode_direct" != yes &&
- test "$hardcode_minus_L" != yes &&
- test "$hardcode_shlibpath_var" = yes; then
- case :$finalize_shlibpath: in
- *":$libdir:"*) ;;
- *) func_append finalize_shlibpath "$libdir:" ;;
- esac
- fi
- fi
- fi
-
- if test "$linkmode" = prog || test "$opt_mode" = relink; then
- add_shlibpath=
- add_dir=
- add=
- # Finalize command for both is simple: just hardcode it.
- if test "$hardcode_direct" = yes &&
- test "$hardcode_direct_absolute" = no; then
- add="$libdir/$linklib"
- elif test "$hardcode_minus_L" = yes; then
- add_dir="-L$libdir"
- add="-l$name"
- elif test "$hardcode_shlibpath_var" = yes; then
- case :$finalize_shlibpath: in
- *":$libdir:"*) ;;
- *) func_append finalize_shlibpath "$libdir:" ;;
- esac
- add="-l$name"
- elif test "$hardcode_automatic" = yes; then
- if test -n "$inst_prefix_dir" &&
- test -f "$inst_prefix_dir$libdir/$linklib" ; then
- add="$inst_prefix_dir$libdir/$linklib"
- else
- add="$libdir/$linklib"
- fi
- else
- # We cannot seem to hardcode it, guess we'll fake it.
- add_dir="-L$libdir"
- # Try looking first in the location we're being installed to.
- if test -n "$inst_prefix_dir"; then
- case $libdir in
- [\\/]*)
- func_append add_dir " -L$inst_prefix_dir$libdir"
- ;;
- esac
- fi
- add="-l$name"
- fi
-
- if test "$linkmode" = prog; then
- test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
- test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
- else
- test -n "$add_dir" && deplibs="$add_dir $deplibs"
- test -n "$add" && deplibs="$add $deplibs"
- fi
- fi
- elif test "$linkmode" = prog; then
- # Here we assume that one of hardcode_direct or hardcode_minus_L
- # is not unsupported. This is valid on all known static and
- # shared platforms.
- if test "$hardcode_direct" != unsupported; then
- test -n "$old_library" && linklib="$old_library"
- compile_deplibs="$dir/$linklib $compile_deplibs"
- finalize_deplibs="$dir/$linklib $finalize_deplibs"
- else
- compile_deplibs="-l$name -L$dir $compile_deplibs"
- finalize_deplibs="-l$name -L$dir $finalize_deplibs"
- fi
- elif test "$build_libtool_libs" = yes; then
- # Not a shared library
- if test "$deplibs_check_method" != pass_all; then
- # We're trying link a shared library against a static one
- # but the system doesn't support it.
-
- # Just print a warning and add the library to dependency_libs so
- # that the program can be linked against the static library.
- echo
- $ECHO "*** Warning: This system can not link to static lib archive $lib."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have."
- if test "$module" = yes; then
- echo "*** But as you try to build a module library, libtool will still create "
- echo "*** a static module, that should work as long as the dlopening application"
- echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
- if test -z "$global_symbol_pipe"; then
- echo
- echo "*** However, this would only work if libtool was able to extract symbol"
- echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
- echo "*** not find such a program. So, this module is probably useless."
- echo "*** \`nm' from GNU binutils and a full rebuild may help."
- fi
- if test "$build_old_libs" = no; then
- build_libtool_libs=module
- build_old_libs=yes
- else
- build_libtool_libs=no
- fi
- fi
- else
- deplibs="$dir/$old_library $deplibs"
- link_static=yes
- fi
- fi # link shared/static library?
-
- if test "$linkmode" = lib; then
- if test -n "$dependency_libs" &&
- { test "$hardcode_into_libs" != yes ||
- test "$build_old_libs" = yes ||
- test "$link_static" = yes; }; then
- # Extract -R from dependency_libs
- temp_deplibs=
- for libdir in $dependency_libs; do
- case $libdir in
- -R*) func_stripname '-R' '' "$libdir"
- temp_xrpath=$func_stripname_result
- case " $xrpath " in
- *" $temp_xrpath "*) ;;
- *) func_append xrpath " $temp_xrpath";;
- esac;;
- *) func_append temp_deplibs " $libdir";;
- esac
- done
- dependency_libs="$temp_deplibs"
- fi
-
- func_append newlib_search_path " $absdir"
- # Link against this library
- test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
- # ... and its dependency_libs
- tmp_libs=
- for deplib in $dependency_libs; do
- newdependency_libs="$deplib $newdependency_libs"
- case $deplib in
- -L*) func_stripname '-L' '' "$deplib"
- func_resolve_sysroot "$func_stripname_result";;
- *) func_resolve_sysroot "$deplib" ;;
- esac
- if $opt_preserve_dup_deps ; then
- case "$tmp_libs " in
- *" $func_resolve_sysroot_result "*)
- func_append specialdeplibs " $func_resolve_sysroot_result" ;;
- esac
- fi
- func_append tmp_libs " $func_resolve_sysroot_result"
- done
-
- if test "$link_all_deplibs" != no; then
- # Add the search paths of all dependency libraries
- for deplib in $dependency_libs; do
- path=
- case $deplib in
- -L*) path="$deplib" ;;
- *.la)
- func_resolve_sysroot "$deplib"
- deplib=$func_resolve_sysroot_result
- func_dirname "$deplib" "" "."
- dir=$func_dirname_result
- # We need an absolute path.
- case $dir in
- [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
- *)
- absdir=`cd "$dir" && pwd`
- if test -z "$absdir"; then
- func_warning "cannot determine absolute directory name of \`$dir'"
- absdir="$dir"
- fi
- ;;
- esac
- if $GREP "^installed=no" $deplib > /dev/null; then
- case $host in
- *-*-darwin*)
- depdepl=
- eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
- if test -n "$deplibrary_names" ; then
- for tmp in $deplibrary_names ; do
- depdepl=$tmp
- done
- if test -f "$absdir/$objdir/$depdepl" ; then
- depdepl="$absdir/$objdir/$depdepl"
- darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
- if test -z "$darwin_install_name"; then
- darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
- fi
- func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
- func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
- path=
- fi
- fi
- ;;
- *)
- path="-L$absdir/$objdir"
- ;;
- esac
- else
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
- test -z "$libdir" && \
- func_fatal_error "\`$deplib' is not a valid libtool archive"
- test "$absdir" != "$libdir" && \
- func_warning "\`$deplib' seems to be moved"
-
- path="-L$absdir"
- fi
- ;;
- esac
- case " $deplibs " in
- *" $path "*) ;;
- *) deplibs="$path $deplibs" ;;
- esac
- done
- fi # link_all_deplibs != no
- fi # linkmode = lib
- done # for deplib in $libs
- if test "$pass" = link; then
- if test "$linkmode" = "prog"; then
- compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
- finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
- else
- compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- fi
- fi
- dependency_libs="$newdependency_libs"
- if test "$pass" = dlpreopen; then
- # Link the dlpreopened libraries before other libraries
- for deplib in $save_deplibs; do
- deplibs="$deplib $deplibs"
- done
- fi
- if test "$pass" != dlopen; then
- if test "$pass" != conv; then
- # Make sure lib_search_path contains only unique directories.
- lib_search_path=
- for dir in $newlib_search_path; do
- case "$lib_search_path " in
- *" $dir "*) ;;
- *) func_append lib_search_path " $dir" ;;
- esac
- done
- newlib_search_path=
- fi
-
- if test "$linkmode,$pass" != "prog,link"; then
- vars="deplibs"
- else
- vars="compile_deplibs finalize_deplibs"
- fi
- for var in $vars dependency_libs; do
- # Add libraries to $var in reverse order
- eval tmp_libs=\"\$$var\"
- new_libs=
- for deplib in $tmp_libs; do
- # FIXME: Pedantically, this is the right thing to do, so
- # that some nasty dependency loop isn't accidentally
- # broken:
- #new_libs="$deplib $new_libs"
- # Pragmatically, this seems to cause very few problems in
- # practice:
- case $deplib in
- -L*) new_libs="$deplib $new_libs" ;;
- -R*) ;;
- *)
- # And here is the reason: when a library appears more
- # than once as an explicit dependence of a library, or
- # is implicitly linked in more than once by the
- # compiler, it is considered special, and multiple
- # occurrences thereof are not removed. Compare this
- # with having the same library being listed as a
- # dependency of multiple other libraries: in this case,
- # we know (pedantically, we assume) the library does not
- # need to be listed more than once, so we keep only the
- # last copy. This is not always right, but it is rare
- # enough that we require users that really mean to play
- # such unportable linking tricks to link the library
- # using -Wl,-lname, so that libtool does not consider it
- # for duplicate removal.
- case " $specialdeplibs " in
- *" $deplib "*) new_libs="$deplib $new_libs" ;;
- *)
- case " $new_libs " in
- *" $deplib "*) ;;
- *) new_libs="$deplib $new_libs" ;;
- esac
- ;;
- esac
- ;;
- esac
- done
- tmp_libs=
- for deplib in $new_libs; do
- case $deplib in
- -L*)
- case " $tmp_libs " in
- *" $deplib "*) ;;
- *) func_append tmp_libs " $deplib" ;;
- esac
- ;;
- *) func_append tmp_libs " $deplib" ;;
- esac
- done
- eval $var=\"$tmp_libs\"
- done # for var
- fi
- # Last step: remove runtime libs from dependency_libs
- # (they stay in deplibs)
- tmp_libs=
- for i in $dependency_libs ; do
- case " $predeps $postdeps $compiler_lib_search_path " in
- *" $i "*)
- i=""
- ;;
- esac
- if test -n "$i" ; then
- func_append tmp_libs " $i"
- fi
- done
- dependency_libs=$tmp_libs
- done # for pass
- if test "$linkmode" = prog; then
- dlfiles="$newdlfiles"
- fi
- if test "$linkmode" = prog || test "$linkmode" = lib; then
- dlprefiles="$newdlprefiles"
- fi
-
- case $linkmode in
- oldlib)
- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
- func_warning "\`-dlopen' is ignored for archives"
- fi
-
- case " $deplibs" in
- *\ -l* | *\ -L*)
- func_warning "\`-l' and \`-L' are ignored for archives" ;;
- esac
-
- test -n "$rpath" && \
- func_warning "\`-rpath' is ignored for archives"
-
- test -n "$xrpath" && \
- func_warning "\`-R' is ignored for archives"
-
- test -n "$vinfo" && \
- func_warning "\`-version-info/-version-number' is ignored for archives"
-
- test -n "$release" && \
- func_warning "\`-release' is ignored for archives"
-
- test -n "$export_symbols$export_symbols_regex" && \
- func_warning "\`-export-symbols' is ignored for archives"
-
- # Now set the variables for building old libraries.
- build_libtool_libs=no
- oldlibs="$output"
- func_append objs "$old_deplibs"
- ;;
-
- lib)
- # Make sure we only generate libraries of the form `libNAME.la'.
- case $outputname in
- lib*)
- func_stripname 'lib' '.la' "$outputname"
- name=$func_stripname_result
- eval shared_ext=\"$shrext_cmds\"
- eval libname=\"$libname_spec\"
- ;;
- *)
- test "$module" = no && \
- func_fatal_help "libtool library \`$output' must begin with \`lib'"
-
- if test "$need_lib_prefix" != no; then
- # Add the "lib" prefix for modules if required
- func_stripname '' '.la' "$outputname"
- name=$func_stripname_result
- eval shared_ext=\"$shrext_cmds\"
- eval libname=\"$libname_spec\"
- else
- func_stripname '' '.la' "$outputname"
- libname=$func_stripname_result
- fi
- ;;
- esac
-
- if test -n "$objs"; then
- if test "$deplibs_check_method" != pass_all; then
- func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
- else
- echo
- $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
- $ECHO "*** objects $objs is not portable!"
- func_append libobjs " $objs"
- fi
- fi
-
- test "$dlself" != no && \
- func_warning "\`-dlopen self' is ignored for libtool libraries"
-
- set dummy $rpath
- shift
- test "$#" -gt 1 && \
- func_warning "ignoring multiple \`-rpath's for a libtool library"
-
- install_libdir="$1"
-
- oldlibs=
- if test -z "$rpath"; then
- if test "$build_libtool_libs" = yes; then
- # Building a libtool convenience library.
- # Some compilers have problems with a `.al' extension so
- # convenience libraries should have the same extension an
- # archive normally would.
- oldlibs="$output_objdir/$libname.$libext $oldlibs"
- build_libtool_libs=convenience
- build_old_libs=yes
- fi
-
- test -n "$vinfo" && \
- func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
-
- test -n "$release" && \
- func_warning "\`-release' is ignored for convenience libraries"
- else
-
- # Parse the version information argument.
- save_ifs="$IFS"; IFS=':'
- set dummy $vinfo 0 0 0
- shift
- IFS="$save_ifs"
-
- test -n "$7" && \
- func_fatal_help "too many parameters to \`-version-info'"
-
- # convert absolute version numbers to libtool ages
- # this retains compatibility with .la files and attempts
- # to make the code below a bit more comprehensible
-
- case $vinfo_number in
- yes)
- number_major="$1"
- number_minor="$2"
- number_revision="$3"
- #
- # There are really only two kinds -- those that
- # use the current revision as the major version
- # and those that subtract age and use age as
- # a minor version. But, then there is irix
- # which has an extra 1 added just for fun
- #
- case $version_type in
- # correct linux to gnu/linux during the next big refactor
- darwin|linux|osf|windows|none)
- func_arith $number_major + $number_minor
- current=$func_arith_result
- age="$number_minor"
- revision="$number_revision"
- ;;
- freebsd-aout|freebsd-elf|qnx|sunos)
- current="$number_major"
- revision="$number_minor"
- age="0"
- ;;
- irix|nonstopux)
- func_arith $number_major + $number_minor
- current=$func_arith_result
- age="$number_minor"
- revision="$number_minor"
- lt_irix_increment=no
- ;;
- esac
- ;;
- no)
- current="$1"
- revision="$2"
- age="$3"
- ;;
- esac
-
- # Check that each of the things are valid numbers.
- case $current in
- 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
- *)
- func_error "CURRENT \`$current' must be a nonnegative integer"
- func_fatal_error "\`$vinfo' is not valid version information"
- ;;
- esac
-
- case $revision in
- 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
- *)
- func_error "REVISION \`$revision' must be a nonnegative integer"
- func_fatal_error "\`$vinfo' is not valid version information"
- ;;
- esac
-
- case $age in
- 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
- *)
- func_error "AGE \`$age' must be a nonnegative integer"
- func_fatal_error "\`$vinfo' is not valid version information"
- ;;
- esac
-
- if test "$age" -gt "$current"; then
- func_error "AGE \`$age' is greater than the current interface number \`$current'"
- func_fatal_error "\`$vinfo' is not valid version information"
- fi
-
- # Calculate the version variables.
- major=
- versuffix=
- verstring=
- case $version_type in
- none) ;;
-
- darwin)
- # Like Linux, but with the current version available in
- # verstring for coding it into the library header
- func_arith $current - $age
- major=.$func_arith_result
- versuffix="$major.$age.$revision"
- # Darwin ld doesn't like 0 for these options...
- func_arith $current + 1
- minor_current=$func_arith_result
- xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
- verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
- ;;
-
- freebsd-aout)
- major=".$current"
- versuffix=".$current.$revision";
- ;;
-
- freebsd-elf)
- major=".$current"
- versuffix=".$current"
- ;;
-
- irix | nonstopux)
- if test "X$lt_irix_increment" = "Xno"; then
- func_arith $current - $age
- else
- func_arith $current - $age + 1
- fi
- major=$func_arith_result
-
- case $version_type in
- nonstopux) verstring_prefix=nonstopux ;;
- *) verstring_prefix=sgi ;;
- esac
- verstring="$verstring_prefix$major.$revision"
-
- # Add in all the interfaces that we are compatible with.
- loop=$revision
- while test "$loop" -ne 0; do
- func_arith $revision - $loop
- iface=$func_arith_result
- func_arith $loop - 1
- loop=$func_arith_result
- verstring="$verstring_prefix$major.$iface:$verstring"
- done
-
- # Before this point, $major must not contain `.'.
- major=.$major
- versuffix="$major.$revision"
- ;;
-
- linux) # correct to gnu/linux during the next big refactor
- func_arith $current - $age
- major=.$func_arith_result
- versuffix="$major.$age.$revision"
- ;;
-
- osf)
- func_arith $current - $age
- major=.$func_arith_result
- versuffix=".$current.$age.$revision"
- verstring="$current.$age.$revision"
-
- # Add in all the interfaces that we are compatible with.
- loop=$age
- while test "$loop" -ne 0; do
- func_arith $current - $loop
- iface=$func_arith_result
- func_arith $loop - 1
- loop=$func_arith_result
- verstring="$verstring:${iface}.0"
- done
-
- # Make executables depend on our current version.
- func_append verstring ":${current}.0"
- ;;
-
- qnx)
- major=".$current"
- versuffix=".$current"
- ;;
-
- sunos)
- major=".$current"
- versuffix=".$current.$revision"
- ;;
-
- windows)
- # Use '-' rather than '.', since we only want one
- # extension on DOS 8.3 filesystems.
- func_arith $current - $age
- major=$func_arith_result
- versuffix="-$major"
- ;;
-
- *)
- func_fatal_configuration "unknown library version type \`$version_type'"
- ;;
- esac
-
- # Clear the version info if we defaulted, and they specified a release.
- if test -z "$vinfo" && test -n "$release"; then
- major=
- case $version_type in
- darwin)
- # we can't check for "0.0" in archive_cmds due to quoting
- # problems, so we reset it completely
- verstring=
- ;;
- *)
- verstring="0.0"
- ;;
- esac
- if test "$need_version" = no; then
- versuffix=
- else
- versuffix=".0.0"
- fi
- fi
-
- # Remove version info from name if versioning should be avoided
- if test "$avoid_version" = yes && test "$need_version" = no; then
- major=
- versuffix=
- verstring=""
- fi
-
- # Check to see if the archive will have undefined symbols.
- if test "$allow_undefined" = yes; then
- if test "$allow_undefined_flag" = unsupported; then
- func_warning "undefined symbols not allowed in $host shared libraries"
- build_libtool_libs=no
- build_old_libs=yes
- fi
- else
- # Don't allow undefined symbols.
- allow_undefined_flag="$no_undefined_flag"
- fi
-
- fi
-
- func_generate_dlsyms "$libname" "$libname" "yes"
- func_append libobjs " $symfileobj"
- test "X$libobjs" = "X " && libobjs=
-
- if test "$opt_mode" != relink; then
- # Remove our outputs, but don't remove object files since they
- # may have been created when compiling PIC objects.
- removelist=
- tempremovelist=`$ECHO "$output_objdir/*"`
- for p in $tempremovelist; do
- case $p in
- *.$objext | *.gcno)
- ;;
- $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
- if test "X$precious_files_regex" != "X"; then
- if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
- then
- continue
- fi
- fi
- func_append removelist " $p"
- ;;
- *) ;;
- esac
- done
- test -n "$removelist" && \
- func_show_eval "${RM}r \$removelist"
- fi
-
- # Now set the variables for building old libraries.
- if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
- func_append oldlibs " $output_objdir/$libname.$libext"
-
- # Transform .lo files to .o files.
- oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
- fi
-
- # Eliminate all temporary directories.
- #for path in $notinst_path; do
- # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
- # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
- # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
- #done
-
- if test -n "$xrpath"; then
- # If the user specified any rpath flags, then add them.
- temp_xrpath=
- for libdir in $xrpath; do
- func_replace_sysroot "$libdir"
- func_append temp_xrpath " -R$func_replace_sysroot_result"
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) func_append finalize_rpath " $libdir" ;;
- esac
- done
- if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
- dependency_libs="$temp_xrpath $dependency_libs"
- fi
- fi
-
- # Make sure dlfiles contains only unique files that won't be dlpreopened
- old_dlfiles="$dlfiles"
- dlfiles=
- for lib in $old_dlfiles; do
- case " $dlprefiles $dlfiles " in
- *" $lib "*) ;;
- *) func_append dlfiles " $lib" ;;
- esac
- done
-
- # Make sure dlprefiles contains only unique files
- old_dlprefiles="$dlprefiles"
- dlprefiles=
- for lib in $old_dlprefiles; do
- case "$dlprefiles " in
- *" $lib "*) ;;
- *) func_append dlprefiles " $lib" ;;
- esac
- done
-
- if test "$build_libtool_libs" = yes; then
- if test -n "$rpath"; then
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
- # these systems don't actually have a c library (as such)!
- ;;
- *-*-rhapsody* | *-*-darwin1.[012])
- # Rhapsody C library is in the System framework
- func_append deplibs " System.ltframework"
- ;;
- *-*-netbsd*)
- # Don't link with libc until the a.out ld.so is fixed.
- ;;
- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
- # Do not include libc due to us having libc/libc_r.
- ;;
- *-*-sco3.2v5* | *-*-sco5v6*)
- # Causes problems with __ctype
- ;;
- *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
- # Compiler inserts libc in the correct place for threads to work
- ;;
- *)
- # Add libc to deplibs on all other systems if necessary.
- if test "$build_libtool_need_lc" = "yes"; then
- func_append deplibs " -lc"
- fi
- ;;
- esac
- fi
-
- # Transform deplibs into only deplibs that can be linked in shared.
- name_save=$name
- libname_save=$libname
- release_save=$release
- versuffix_save=$versuffix
- major_save=$major
- # I'm not sure if I'm treating the release correctly. I think
- # release should show up in the -l (ie -lgmp5) so we don't want to
- # add it in twice. Is that correct?
- release=""
- versuffix=""
- major=""
- newdeplibs=
- droppeddeps=no
- case $deplibs_check_method in
- pass_all)
- # Don't check for shared/static. Everything works.
- # This might be a little naive. We might want to check
- # whether the library exists or not. But this is on
- # osf3 & osf4 and I'm not really sure... Just
- # implementing what was already the behavior.
- newdeplibs=$deplibs
- ;;
- test_compile)
- # This code stresses the "libraries are programs" paradigm to its
- # limits. Maybe even breaks it. We compile a program, linking it
- # against the deplibs as a proxy for the library. Then we can check
- # whether they linked in statically or dynamically with ldd.
- $opt_dry_run || $RM conftest.c
- cat > conftest.c <<EOF
- int main() { return 0; }
-EOF
- $opt_dry_run || $RM conftest
- if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
- ldd_output=`ldd conftest`
- for i in $deplibs; do
- case $i in
- -l*)
- func_stripname -l '' "$i"
- name=$func_stripname_result
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $i "*)
- func_append newdeplibs " $i"
- i=""
- ;;
- esac
- fi
- if test -n "$i" ; then
- libname=`eval "\\$ECHO \"$libname_spec\""`
- deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
- set dummy $deplib_matches; shift
- deplib_match=$1
- if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
- func_append newdeplibs " $i"
- else
- droppeddeps=yes
- echo
- $ECHO "*** Warning: dynamic linker does not accept needed library $i."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which I believe you do not have"
- echo "*** because a test_compile did reveal that the linker did not use it for"
- echo "*** its dynamic dependency list that programs get resolved with at runtime."
- fi
- fi
- ;;
- *)
- func_append newdeplibs " $i"
- ;;
- esac
- done
- else
- # Error occurred in the first compile. Let's try to salvage
- # the situation: Compile a separate program for each library.
- for i in $deplibs; do
- case $i in
- -l*)
- func_stripname -l '' "$i"
- name=$func_stripname_result
- $opt_dry_run || $RM conftest
- if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
- ldd_output=`ldd conftest`
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $i "*)
- func_append newdeplibs " $i"
- i=""
- ;;
- esac
- fi
- if test -n "$i" ; then
- libname=`eval "\\$ECHO \"$libname_spec\""`
- deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
- set dummy $deplib_matches; shift
- deplib_match=$1
- if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
- func_append newdeplibs " $i"
- else
- droppeddeps=yes
- echo
- $ECHO "*** Warning: dynamic linker does not accept needed library $i."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have"
- echo "*** because a test_compile did reveal that the linker did not use this one"
- echo "*** as a dynamic dependency that programs can get resolved with at runtime."
- fi
- fi
- else
- droppeddeps=yes
- echo
- $ECHO "*** Warning! Library $i is needed by this library but I was not able to"
- echo "*** make it link in! You will probably need to install it or some"
- echo "*** library that it depends on before this library will be fully"
- echo "*** functional. Installing it before continuing would be even better."
- fi
- ;;
- *)
- func_append newdeplibs " $i"
- ;;
- esac
- done
- fi
- ;;
- file_magic*)
- set dummy $deplibs_check_method; shift
- file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
- for a_deplib in $deplibs; do
- case $a_deplib in
- -l*)
- func_stripname -l '' "$a_deplib"
- name=$func_stripname_result
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $a_deplib "*)
- func_append newdeplibs " $a_deplib"
- a_deplib=""
- ;;
- esac
- fi
- if test -n "$a_deplib" ; then
- libname=`eval "\\$ECHO \"$libname_spec\""`
- if test -n "$file_magic_glob"; then
- libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
- else
- libnameglob=$libname
- fi
- test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
- for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
- if test "$want_nocaseglob" = yes; then
- shopt -s nocaseglob
- potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
- $nocaseglob
- else
- potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
- fi
- for potent_lib in $potential_libs; do
- # Follow soft links.
- if ls -lLd "$potent_lib" 2>/dev/null |
- $GREP " -> " >/dev/null; then
- continue
- fi
- # The statement above tries to avoid entering an
- # endless loop below, in case of cyclic links.
- # We might still enter an endless loop, since a link
- # loop can be closed while we follow links,
- # but so what?
- potlib="$potent_lib"
- while test -h "$potlib" 2>/dev/null; do
- potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
- case $potliblink in
- [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
- *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
- esac
- done
- if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
- $SED -e 10q |
- $EGREP "$file_magic_regex" > /dev/null; then
- func_append newdeplibs " $a_deplib"
- a_deplib=""
- break 2
- fi
- done
- done
- fi
- if test -n "$a_deplib" ; then
- droppeddeps=yes
- echo
- $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have"
- echo "*** because I did check the linker path looking for a file starting"
- if test -z "$potlib" ; then
- $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
- else
- $ECHO "*** with $libname and none of the candidates passed a file format test"
- $ECHO "*** using a file magic. Last file checked: $potlib"
- fi
- fi
- ;;
- *)
- # Add a -L argument.
- func_append newdeplibs " $a_deplib"
- ;;
- esac
- done # Gone through all deplibs.
- ;;
- match_pattern*)
- set dummy $deplibs_check_method; shift
- match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
- for a_deplib in $deplibs; do
- case $a_deplib in
- -l*)
- func_stripname -l '' "$a_deplib"
- name=$func_stripname_result
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- case " $predeps $postdeps " in
- *" $a_deplib "*)
- func_append newdeplibs " $a_deplib"
- a_deplib=""
- ;;
- esac
- fi
- if test -n "$a_deplib" ; then
- libname=`eval "\\$ECHO \"$libname_spec\""`
- for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
- potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
- for potent_lib in $potential_libs; do
- potlib="$potent_lib" # see symlink-check above in file_magic test
- if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
- $EGREP "$match_pattern_regex" > /dev/null; then
- func_append newdeplibs " $a_deplib"
- a_deplib=""
- break 2
- fi
- done
- done
- fi
- if test -n "$a_deplib" ; then
- droppeddeps=yes
- echo
- $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
- echo "*** I have the capability to make that library automatically link in when"
- echo "*** you link to this library. But I can only do this if you have a"
- echo "*** shared version of the library, which you do not appear to have"
- echo "*** because I did check the linker path looking for a file starting"
- if test -z "$potlib" ; then
- $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
- else
- $ECHO "*** with $libname and none of the candidates passed a file format test"
- $ECHO "*** using a regex pattern. Last file checked: $potlib"
- fi
- fi
- ;;
- *)
- # Add a -L argument.
- func_append newdeplibs " $a_deplib"
- ;;
- esac
- done # Gone through all deplibs.
- ;;
- none | unknown | *)
- newdeplibs=""
- tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
- for i in $predeps $postdeps ; do
- # can't use Xsed below, because $i might contain '/'
- tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
- done
- fi
- case $tmp_deplibs in
- *[!\ \ ]*)
- echo
- if test "X$deplibs_check_method" = "Xnone"; then
- echo "*** Warning: inter-library dependencies are not supported in this platform."
- else
- echo "*** Warning: inter-library dependencies are not known to be supported."
- fi
- echo "*** All declared inter-library dependencies are being dropped."
- droppeddeps=yes
- ;;
- esac
- ;;
- esac
- versuffix=$versuffix_save
- major=$major_save
- release=$release_save
- libname=$libname_save
- name=$name_save
-
- case $host in
- *-*-rhapsody* | *-*-darwin1.[012])
- # On Rhapsody replace the C library with the System framework
- newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
- ;;
- esac
-
- if test "$droppeddeps" = yes; then
- if test "$module" = yes; then
- echo
- echo "*** Warning: libtool could not satisfy all declared inter-library"
- $ECHO "*** dependencies of module $libname. Therefore, libtool will create"
- echo "*** a static module, that should work as long as the dlopening"
- echo "*** application is linked with the -dlopen flag."
- if test -z "$global_symbol_pipe"; then
- echo
- echo "*** However, this would only work if libtool was able to extract symbol"
- echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
- echo "*** not find such a program. So, this module is probably useless."
- echo "*** \`nm' from GNU binutils and a full rebuild may help."
- fi
- if test "$build_old_libs" = no; then
- oldlibs="$output_objdir/$libname.$libext"
- build_libtool_libs=module
- build_old_libs=yes
- else
- build_libtool_libs=no
- fi
- else
- echo "*** The inter-library dependencies that have been dropped here will be"
- echo "*** automatically added whenever a program is linked with this library"
- echo "*** or is declared to -dlopen it."
-
- if test "$allow_undefined" = no; then
- echo
- echo "*** Since this library must not contain undefined symbols,"
- echo "*** because either the platform does not support them or"
- echo "*** it was explicitly requested with -no-undefined,"
- echo "*** libtool will only create a static version of it."
- if test "$build_old_libs" = no; then
- oldlibs="$output_objdir/$libname.$libext"
- build_libtool_libs=module
- build_old_libs=yes
- else
- build_libtool_libs=no
- fi
- fi
- fi
- fi
- # Done checking deplibs!
- deplibs=$newdeplibs
- fi
- # Time to change all our "foo.ltframework" stuff back to "-framework foo"
- case $host in
- *-*-darwin*)
- newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- ;;
- esac
-
- # move library search paths that coincide with paths to not yet
- # installed libraries to the beginning of the library search list
- new_libs=
- for path in $notinst_path; do
- case " $new_libs " in
- *" -L$path/$objdir "*) ;;
- *)
- case " $deplibs " in
- *" -L$path/$objdir "*)
- func_append new_libs " -L$path/$objdir" ;;
- esac
- ;;
- esac
- done
- for deplib in $deplibs; do
- case $deplib in
- -L*)
- case " $new_libs " in
- *" $deplib "*) ;;
- *) func_append new_libs " $deplib" ;;
- esac
- ;;
- *) func_append new_libs " $deplib" ;;
- esac
- done
- deplibs="$new_libs"
-
- # All the library-specific variables (install_libdir is set above).
- library_names=
- old_library=
- dlname=
-
- # Test again, we may have decided not to build it any more
- if test "$build_libtool_libs" = yes; then
- # Remove ${wl} instances when linking with ld.
- # FIXME: should test the right _cmds variable.
- case $archive_cmds in
- *\$LD\ *) wl= ;;
- esac
- if test "$hardcode_into_libs" = yes; then
- # Hardcode the library paths
- hardcode_libdirs=
- dep_rpath=
- rpath="$finalize_rpath"
- test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
- for libdir in $rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- func_replace_sysroot "$libdir"
- libdir=$func_replace_sysroot_result
- if test -z "$hardcode_libdirs"; then
- hardcode_libdirs="$libdir"
- else
- # Just accumulate the unique libdirs.
- case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
- eval flag=\"$hardcode_libdir_flag_spec\"
- func_append dep_rpath " $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$perm_rpath " in
- *" $libdir "*) ;;
- *) func_append perm_rpath " $libdir" ;;
- esac
- fi
- done
- # Substitute the hardcoded libdirs into the rpath.
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir="$hardcode_libdirs"
- eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
- fi
- if test -n "$runpath_var" && test -n "$perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $perm_rpath; do
- func_append rpath "$dir:"
- done
- eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
- fi
- test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
- fi
-
- shlibpath="$finalize_shlibpath"
- test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
- if test -n "$shlibpath"; then
- eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
- fi
-
- # Get the real and link names of the library.
- eval shared_ext=\"$shrext_cmds\"
- eval library_names=\"$library_names_spec\"
- set dummy $library_names
- shift
- realname="$1"
- shift
-
- if test -n "$soname_spec"; then
- eval soname=\"$soname_spec\"
- else
- soname="$realname"
- fi
- if test -z "$dlname"; then
- dlname=$soname
- fi
-
- lib="$output_objdir/$realname"
- linknames=
- for link
- do
- func_append linknames " $link"
- done
-
- # Use standard objects if they are pic
- test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
- test "X$libobjs" = "X " && libobjs=
-
- delfiles=
- if test -n "$export_symbols" && test -n "$include_expsyms"; then
- $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
- export_symbols="$output_objdir/$libname.uexp"
- func_append delfiles " $export_symbols"
- fi
-
- orig_export_symbols=
- case $host_os in
- cygwin* | mingw* | cegcc*)
- if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
- # exporting using user supplied symfile
- if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
- # and it's NOT already a .def file. Must figure out
- # which of the given symbols are data symbols and tag
- # them as such. So, trigger use of export_symbols_cmds.
- # export_symbols gets reassigned inside the "prepare
- # the list of exported symbols" if statement, so the
- # include_expsyms logic still works.
- orig_export_symbols="$export_symbols"
- export_symbols=
- always_export_symbols=yes
- fi
- fi
- ;;
- esac
-
- # Prepare the list of exported symbols
- if test -z "$export_symbols"; then
- if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
- func_verbose "generating symbol list for \`$libname.la'"
- export_symbols="$output_objdir/$libname.exp"
- $opt_dry_run || $RM $export_symbols
- cmds=$export_symbols_cmds
- save_ifs="$IFS"; IFS='~'
- for cmd1 in $cmds; do
- IFS="$save_ifs"
- # Take the normal branch if the nm_file_list_spec branch
- # doesn't work or if tool conversion is not needed.
- case $nm_file_list_spec~$to_tool_file_cmd in
- *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
- try_normal_branch=yes
- eval cmd=\"$cmd1\"
- func_len " $cmd"
- len=$func_len_result
- ;;
- *)
- try_normal_branch=no
- ;;
- esac
- if test "$try_normal_branch" = yes \
- && { test "$len" -lt "$max_cmd_len" \
- || test "$max_cmd_len" -le -1; }
- then
- func_show_eval "$cmd" 'exit $?'
- skipped_export=false
- elif test -n "$nm_file_list_spec"; then
- func_basename "$output"
- output_la=$func_basename_result
- save_libobjs=$libobjs
- save_output=$output
- output=${output_objdir}/${output_la}.nm
- func_to_tool_file "$output"
- libobjs=$nm_file_list_spec$func_to_tool_file_result
- func_append delfiles " $output"
- func_verbose "creating $NM input file list: $output"
- for obj in $save_libobjs; do
- func_to_tool_file "$obj"
- $ECHO "$func_to_tool_file_result"
- done > "$output"
- eval cmd=\"$cmd1\"
- func_show_eval "$cmd" 'exit $?'
- output=$save_output
- libobjs=$save_libobjs
- skipped_export=false
- else
- # The command line is too long to execute in one step.
- func_verbose "using reloadable object file for export list..."
- skipped_export=:
- # Break out early, otherwise skipped_export may be
- # set to false by a later but shorter cmd.
- break
- fi
- done
- IFS="$save_ifs"
- if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
- func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
- func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
- fi
- fi
- fi
-
- if test -n "$export_symbols" && test -n "$include_expsyms"; then
- tmp_export_symbols="$export_symbols"
- test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
- $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
- fi
-
- if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
- # The given exports_symbols file has to be filtered, so filter it.
- func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
- # FIXME: $output_objdir/$libname.filter potentially contains lots of
- # 's' commands which not all seds can handle. GNU sed should be fine
- # though. Also, the filter scales superlinearly with the number of
- # global variables. join(1) would be nice here, but unfortunately
- # isn't a blessed tool.
- $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
- func_append delfiles " $export_symbols $output_objdir/$libname.filter"
- export_symbols=$output_objdir/$libname.def
- $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
- fi
-
- tmp_deplibs=
- for test_deplib in $deplibs; do
- case " $convenience " in
- *" $test_deplib "*) ;;
- *)
- func_append tmp_deplibs " $test_deplib"
- ;;
- esac
- done
- deplibs="$tmp_deplibs"
-
- if test -n "$convenience"; then
- if test -n "$whole_archive_flag_spec" &&
- test "$compiler_needs_object" = yes &&
- test -z "$libobjs"; then
- # extract the archives, so we have objects to list.
- # TODO: could optimize this to just extract one archive.
- whole_archive_flag_spec=
- fi
- if test -n "$whole_archive_flag_spec"; then
- save_libobjs=$libobjs
- eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
- test "X$libobjs" = "X " && libobjs=
- else
- gentop="$output_objdir/${outputname}x"
- func_append generated " $gentop"
-
- func_extract_archives $gentop $convenience
- func_append libobjs " $func_extract_archives_result"
- test "X$libobjs" = "X " && libobjs=
- fi
- fi
-
- if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
- eval flag=\"$thread_safe_flag_spec\"
- func_append linker_flags " $flag"
- fi
-
- # Make a backup of the uninstalled library when relinking
- if test "$opt_mode" = relink; then
- $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
- fi
-
- # Do each of the archive commands.
- if test "$module" = yes && test -n "$module_cmds" ; then
- if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
- eval test_cmds=\"$module_expsym_cmds\"
- cmds=$module_expsym_cmds
- else
- eval test_cmds=\"$module_cmds\"
- cmds=$module_cmds
- fi
- else
- if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
- eval test_cmds=\"$archive_expsym_cmds\"
- cmds=$archive_expsym_cmds
- else
- eval test_cmds=\"$archive_cmds\"
- cmds=$archive_cmds
- fi
- fi
-
- if test "X$skipped_export" != "X:" &&
- func_len " $test_cmds" &&
- len=$func_len_result &&
- test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
- :
- else
- # The command line is too long to link in one step, link piecewise
- # or, if using GNU ld and skipped_export is not :, use a linker
- # script.
-
- # Save the value of $output and $libobjs because we want to
- # use them later. If we have whole_archive_flag_spec, we
- # want to use save_libobjs as it was before
- # whole_archive_flag_spec was expanded, because we can't
- # assume the linker understands whole_archive_flag_spec.
- # This may have to be revisited, in case too many
- # convenience libraries get linked in and end up exceeding
- # the spec.
- if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
- save_libobjs=$libobjs
- fi
- save_output=$output
- func_basename "$output"
- output_la=$func_basename_result
-
- # Clear the reloadable object creation command queue and
- # initialize k to one.
- test_cmds=
- concat_cmds=
- objlist=
- last_robj=
- k=1
-
- if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
- output=${output_objdir}/${output_la}.lnkscript
- func_verbose "creating GNU ld script: $output"
- echo 'INPUT (' > $output
- for obj in $save_libobjs
- do
- func_to_tool_file "$obj"
- $ECHO "$func_to_tool_file_result" >> $output
- done
- echo ')' >> $output
- func_append delfiles " $output"
- func_to_tool_file "$output"
- output=$func_to_tool_file_result
- elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
- output=${output_objdir}/${output_la}.lnk
- func_verbose "creating linker input file list: $output"
- : > $output
- set x $save_libobjs
- shift
- firstobj=
- if test "$compiler_needs_object" = yes; then
- firstobj="$1 "
- shift
- fi
- for obj
- do
- func_to_tool_file "$obj"
- $ECHO "$func_to_tool_file_result" >> $output
- done
- func_append delfiles " $output"
- func_to_tool_file "$output"
- output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
- else
- if test -n "$save_libobjs"; then
- func_verbose "creating reloadable object files..."
- output=$output_objdir/$output_la-${k}.$objext
- eval test_cmds=\"$reload_cmds\"
- func_len " $test_cmds"
- len0=$func_len_result
- len=$len0
-
- # Loop over the list of objects to be linked.
- for obj in $save_libobjs
- do
- func_len " $obj"
- func_arith $len + $func_len_result
- len=$func_arith_result
- if test "X$objlist" = X ||
- test "$len" -lt "$max_cmd_len"; then
- func_append objlist " $obj"
- else
- # The command $test_cmds is almost too long, add a
- # command to the queue.
- if test "$k" -eq 1 ; then
- # The first file doesn't have a previous command to add.
- reload_objs=$objlist
- eval concat_cmds=\"$reload_cmds\"
- else
- # All subsequent reloadable object files will link in
- # the last one created.
- reload_objs="$objlist $last_robj"
- eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
- fi
- last_robj=$output_objdir/$output_la-${k}.$objext
- func_arith $k + 1
- k=$func_arith_result
- output=$output_objdir/$output_la-${k}.$objext
- objlist=" $obj"
- func_len " $last_robj"
- func_arith $len0 + $func_len_result
- len=$func_arith_result
- fi
- done
- # Handle the remaining objects by creating one last
- # reloadable object file. All subsequent reloadable object
- # files will link in the last one created.
- test -z "$concat_cmds" || concat_cmds=$concat_cmds~
- reload_objs="$objlist $last_robj"
- eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
- if test -n "$last_robj"; then
- eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
- fi
- func_append delfiles " $output"
-
- else
- output=
- fi
-
- if ${skipped_export-false}; then
- func_verbose "generating symbol list for \`$libname.la'"
- export_symbols="$output_objdir/$libname.exp"
- $opt_dry_run || $RM $export_symbols
- libobjs=$output
- # Append the command to create the export file.
- test -z "$concat_cmds" || concat_cmds=$concat_cmds~
- eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
- if test -n "$last_robj"; then
- eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
- fi
- fi
-
- test -n "$save_libobjs" &&
- func_verbose "creating a temporary reloadable object file: $output"
-
- # Loop through the commands generated above and execute them.
- save_ifs="$IFS"; IFS='~'
- for cmd in $concat_cmds; do
- IFS="$save_ifs"
- $opt_silent || {
- func_quote_for_expand "$cmd"
- eval "func_echo $func_quote_for_expand_result"
- }
- $opt_dry_run || eval "$cmd" || {
- lt_exit=$?
-
- # Restore the uninstalled library and exit
- if test "$opt_mode" = relink; then
- ( cd "$output_objdir" && \
- $RM "${realname}T" && \
- $MV "${realname}U" "$realname" )
- fi
-
- exit $lt_exit
- }
- done
- IFS="$save_ifs"
-
- if test -n "$export_symbols_regex" && ${skipped_export-false}; then
- func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
- func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
- fi
- fi
-
- if ${skipped_export-false}; then
- if test -n "$export_symbols" && test -n "$include_expsyms"; then
- tmp_export_symbols="$export_symbols"
- test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
- $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
- fi
-
- if test -n "$orig_export_symbols"; then
- # The given exports_symbols file has to be filtered, so filter it.
- func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
- # FIXME: $output_objdir/$libname.filter potentially contains lots of
- # 's' commands which not all seds can handle. GNU sed should be fine
- # though. Also, the filter scales superlinearly with the number of
- # global variables. join(1) would be nice here, but unfortunately
- # isn't a blessed tool.
- $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
- func_append delfiles " $export_symbols $output_objdir/$libname.filter"
- export_symbols=$output_objdir/$libname.def
- $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
- fi
- fi
-
- libobjs=$output
- # Restore the value of output.
- output=$save_output
-
- if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
- eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
- test "X$libobjs" = "X " && libobjs=
- fi
- # Expand the library linking commands again to reset the
- # value of $libobjs for piecewise linking.
-
- # Do each of the archive commands.
- if test "$module" = yes && test -n "$module_cmds" ; then
- if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
- cmds=$module_expsym_cmds
- else
- cmds=$module_cmds
- fi
- else
- if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
- cmds=$archive_expsym_cmds
- else
- cmds=$archive_cmds
- fi
- fi
- fi
-
- if test -n "$delfiles"; then
- # Append the command to remove temporary files to $cmds.
- eval cmds=\"\$cmds~\$RM $delfiles\"
- fi
-
- # Add any objects from preloaded convenience libraries
- if test -n "$dlprefiles"; then
- gentop="$output_objdir/${outputname}x"
- func_append generated " $gentop"
-
- func_extract_archives $gentop $dlprefiles
- func_append libobjs " $func_extract_archives_result"
- test "X$libobjs" = "X " && libobjs=
- fi
-
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
- eval cmd=\"$cmd\"
- $opt_silent || {
- func_quote_for_expand "$cmd"
- eval "func_echo $func_quote_for_expand_result"
- }
- $opt_dry_run || eval "$cmd" || {
- lt_exit=$?
-
- # Restore the uninstalled library and exit
- if test "$opt_mode" = relink; then
- ( cd "$output_objdir" && \
- $RM "${realname}T" && \
- $MV "${realname}U" "$realname" )
- fi
-
- exit $lt_exit
- }
- done
- IFS="$save_ifs"
-
- # Restore the uninstalled library and exit
- if test "$opt_mode" = relink; then
- $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
-
- if test -n "$convenience"; then
- if test -z "$whole_archive_flag_spec"; then
- func_show_eval '${RM}r "$gentop"'
- fi
- fi
-
- exit $EXIT_SUCCESS
- fi
-
- # Create links to the real library.
- for linkname in $linknames; do
- if test "$realname" != "$linkname"; then
- func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
- fi
- done
-
- # If -module or -export-dynamic was specified, set the dlname.
- if test "$module" = yes || test "$export_dynamic" = yes; then
- # On all known operating systems, these are identical.
- dlname="$soname"
- fi
- fi
- ;;
-
- obj)
- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
- func_warning "\`-dlopen' is ignored for objects"
- fi
-
- case " $deplibs" in
- *\ -l* | *\ -L*)
- func_warning "\`-l' and \`-L' are ignored for objects" ;;
- esac
-
- test -n "$rpath" && \
- func_warning "\`-rpath' is ignored for objects"
-
- test -n "$xrpath" && \
- func_warning "\`-R' is ignored for objects"
-
- test -n "$vinfo" && \
- func_warning "\`-version-info' is ignored for objects"
-
- test -n "$release" && \
- func_warning "\`-release' is ignored for objects"
-
- case $output in
- *.lo)
- test -n "$objs$old_deplibs" && \
- func_fatal_error "cannot build library object \`$output' from non-libtool objects"
-
- libobj=$output
- func_lo2o "$libobj"
- obj=$func_lo2o_result
- ;;
- *)
- libobj=
- obj="$output"
- ;;
- esac
-
- # Delete the old objects.
- $opt_dry_run || $RM $obj $libobj
-
- # Objects from convenience libraries. This assumes
- # single-version convenience libraries. Whenever we create
- # different ones for PIC/non-PIC, this we'll have to duplicate
- # the extraction.
- reload_conv_objs=
- gentop=
- # reload_cmds runs $LD directly, so let us get rid of
- # -Wl from whole_archive_flag_spec and hope we can get by with
- # turning comma into space..
- wl=
-
- if test -n "$convenience"; then
- if test -n "$whole_archive_flag_spec"; then
- eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
- reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
- else
- gentop="$output_objdir/${obj}x"
- func_append generated " $gentop"
-
- func_extract_archives $gentop $convenience
- reload_conv_objs="$reload_objs $func_extract_archives_result"
- fi
- fi
-
- # If we're not building shared, we need to use non_pic_objs
- test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
-
- # Create the old-style object.
- reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
-
- output="$obj"
- func_execute_cmds "$reload_cmds" 'exit $?'
-
- # Exit if we aren't doing a library object file.
- if test -z "$libobj"; then
- if test -n "$gentop"; then
- func_show_eval '${RM}r "$gentop"'
- fi
-
- exit $EXIT_SUCCESS
- fi
-
- if test "$build_libtool_libs" != yes; then
- if test -n "$gentop"; then
- func_show_eval '${RM}r "$gentop"'
- fi
-
- # Create an invalid libtool object if no PIC, so that we don't
- # accidentally link it into a program.
- # $show "echo timestamp > $libobj"
- # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
- exit $EXIT_SUCCESS
- fi
-
- if test -n "$pic_flag" || test "$pic_mode" != default; then
- # Only do commands if we really have different PIC objects.
- reload_objs="$libobjs $reload_conv_objs"
- output="$libobj"
- func_execute_cmds "$reload_cmds" 'exit $?'
- fi
-
- if test -n "$gentop"; then
- func_show_eval '${RM}r "$gentop"'
- fi
-
- exit $EXIT_SUCCESS
- ;;
-
- prog)
- case $host in
- *cygwin*) func_stripname '' '.exe' "$output"
- output=$func_stripname_result.exe;;
- esac
- test -n "$vinfo" && \
- func_warning "\`-version-info' is ignored for programs"
-
- test -n "$release" && \
- func_warning "\`-release' is ignored for programs"
-
- test "$preload" = yes \
- && test "$dlopen_support" = unknown \
- && test "$dlopen_self" = unknown \
- && test "$dlopen_self_static" = unknown && \
- func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
-
- case $host in
- *-*-rhapsody* | *-*-darwin1.[012])
- # On Rhapsody replace the C library is the System framework
- compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
- finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
- ;;
- esac
-
- case $host in
- *-*-darwin*)
- # Don't allow lazy linking, it breaks C++ global constructors
- # But is supposedly fixed on 10.4 or later (yay!).
- if test "$tagname" = CXX ; then
- case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
- 10.[0123])
- func_append compile_command " ${wl}-bind_at_load"
- func_append finalize_command " ${wl}-bind_at_load"
- ;;
- esac
- fi
- # Time to change all our "foo.ltframework" stuff back to "-framework foo"
- compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
- ;;
- esac
-
-
- # move library search paths that coincide with paths to not yet
- # installed libraries to the beginning of the library search list
- new_libs=
- for path in $notinst_path; do
- case " $new_libs " in
- *" -L$path/$objdir "*) ;;
- *)
- case " $compile_deplibs " in
- *" -L$path/$objdir "*)
- func_append new_libs " -L$path/$objdir" ;;
- esac
- ;;
- esac
- done
- for deplib in $compile_deplibs; do
- case $deplib in
- -L*)
- case " $new_libs " in
- *" $deplib "*) ;;
- *) func_append new_libs " $deplib" ;;
- esac
- ;;
- *) func_append new_libs " $deplib" ;;
- esac
- done
- compile_deplibs="$new_libs"
-
-
- func_append compile_command " $compile_deplibs"
- func_append finalize_command " $finalize_deplibs"
-
- if test -n "$rpath$xrpath"; then
- # If the user specified any rpath flags, then add them.
- for libdir in $rpath $xrpath; do
- # This is the magic to use -rpath.
- case "$finalize_rpath " in
- *" $libdir "*) ;;
- *) func_append finalize_rpath " $libdir" ;;
- esac
- done
- fi
-
- # Now hardcode the library paths
- rpath=
- hardcode_libdirs=
- for libdir in $compile_rpath $finalize_rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- if test -z "$hardcode_libdirs"; then
- hardcode_libdirs="$libdir"
- else
- # Just accumulate the unique libdirs.
- case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
- eval flag=\"$hardcode_libdir_flag_spec\"
- func_append rpath " $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$perm_rpath " in
- *" $libdir "*) ;;
- *) func_append perm_rpath " $libdir" ;;
- esac
- fi
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
- testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
- case :$dllsearchpath: in
- *":$libdir:"*) ;;
- ::) dllsearchpath=$libdir;;
- *) func_append dllsearchpath ":$libdir";;
- esac
- case :$dllsearchpath: in
- *":$testbindir:"*) ;;
- ::) dllsearchpath=$testbindir;;
- *) func_append dllsearchpath ":$testbindir";;
- esac
- ;;
- esac
- done
- # Substitute the hardcoded libdirs into the rpath.
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir="$hardcode_libdirs"
- eval rpath=\" $hardcode_libdir_flag_spec\"
- fi
- compile_rpath="$rpath"
-
- rpath=
- hardcode_libdirs=
- for libdir in $finalize_rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
- if test -z "$hardcode_libdirs"; then
- hardcode_libdirs="$libdir"
- else
- # Just accumulate the unique libdirs.
- case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
- *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
- ;;
- *)
- func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
- ;;
- esac
- fi
- else
- eval flag=\"$hardcode_libdir_flag_spec\"
- func_append rpath " $flag"
- fi
- elif test -n "$runpath_var"; then
- case "$finalize_perm_rpath " in
- *" $libdir "*) ;;
- *) func_append finalize_perm_rpath " $libdir" ;;
- esac
- fi
- done
- # Substitute the hardcoded libdirs into the rpath.
- if test -n "$hardcode_libdir_separator" &&
- test -n "$hardcode_libdirs"; then
- libdir="$hardcode_libdirs"
- eval rpath=\" $hardcode_libdir_flag_spec\"
- fi
- finalize_rpath="$rpath"
-
- if test -n "$libobjs" && test "$build_old_libs" = yes; then
- # Transform all the library objects into standard objects.
- compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
- finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
- fi
-
- func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
-
- # template prelinking step
- if test -n "$prelink_cmds"; then
- func_execute_cmds "$prelink_cmds" 'exit $?'
- fi
-
- wrappers_required=yes
- case $host in
- *cegcc* | *mingw32ce*)
- # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
- wrappers_required=no
- ;;
- *cygwin* | *mingw* )
- if test "$build_libtool_libs" != yes; then
- wrappers_required=no
- fi
- ;;
- *)
- if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
- wrappers_required=no
- fi
- ;;
- esac
- if test "$wrappers_required" = no; then
- # Replace the output file specification.
- compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
- link_command="$compile_command$compile_rpath"
-
- # We have no uninstalled library dependencies, so finalize right now.
- exit_status=0
- func_show_eval "$link_command" 'exit_status=$?'
-
- if test -n "$postlink_cmds"; then
- func_to_tool_file "$output"
- postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
- func_execute_cmds "$postlink_cmds" 'exit $?'
- fi
-
- # Delete the generated files.
- if test -f "$output_objdir/${outputname}S.${objext}"; then
- func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
- fi
-
- exit $exit_status
- fi
-
- if test -n "$compile_shlibpath$finalize_shlibpath"; then
- compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
- fi
- if test -n "$finalize_shlibpath"; then
- finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
- fi
-
- compile_var=
- finalize_var=
- if test -n "$runpath_var"; then
- if test -n "$perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $perm_rpath; do
- func_append rpath "$dir:"
- done
- compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
- fi
- if test -n "$finalize_perm_rpath"; then
- # We should set the runpath_var.
- rpath=
- for dir in $finalize_perm_rpath; do
- func_append rpath "$dir:"
- done
- finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
- fi
- fi
-
- if test "$no_install" = yes; then
- # We don't need to create a wrapper script.
- link_command="$compile_var$compile_command$compile_rpath"
- # Replace the output file specification.
- link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
- # Delete the old output file.
- $opt_dry_run || $RM $output
- # Link the executable and exit
- func_show_eval "$link_command" 'exit $?'
-
- if test -n "$postlink_cmds"; then
- func_to_tool_file "$output"
- postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
- func_execute_cmds "$postlink_cmds" 'exit $?'
- fi
-
- exit $EXIT_SUCCESS
- fi
-
- if test "$hardcode_action" = relink; then
- # Fast installation is not supported
- link_command="$compile_var$compile_command$compile_rpath"
- relink_command="$finalize_var$finalize_command$finalize_rpath"
-
- func_warning "this platform does not like uninstalled shared libraries"
- func_warning "\`$output' will be relinked during installation"
- else
- if test "$fast_install" != no; then
- link_command="$finalize_var$compile_command$finalize_rpath"
- if test "$fast_install" = yes; then
- relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
- else
- # fast_install is set to needless
- relink_command=
- fi
- else
- link_command="$compile_var$compile_command$compile_rpath"
- relink_command="$finalize_var$finalize_command$finalize_rpath"
- fi
- fi
-
- # Replace the output file specification.
- link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
-
- # Delete the old output files.
- $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
-
- func_show_eval "$link_command" 'exit $?'
-
- if test -n "$postlink_cmds"; then
- func_to_tool_file "$output_objdir/$outputname"
- postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
- func_execute_cmds "$postlink_cmds" 'exit $?'
- fi
-
- # Now create the wrapper script.
- func_verbose "creating $output"
-
- # Quote the relink command for shipping.
- if test -n "$relink_command"; then
- # Preserve any variables that may affect compiler behavior
- for var in $variables_saved_for_relink; do
- if eval test -z \"\${$var+set}\"; then
- relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
- elif eval var_value=\$$var; test -z "$var_value"; then
- relink_command="$var=; export $var; $relink_command"
- else
- func_quote_for_eval "$var_value"
- relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
- fi
- done
- relink_command="(cd `pwd`; $relink_command)"
- relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
- fi
-
- # Only actually do things if not in dry run mode.
- $opt_dry_run || {
- # win32 will think the script is a binary if it has
- # a .exe suffix, so we strip it off here.
- case $output in
- *.exe) func_stripname '' '.exe' "$output"
- output=$func_stripname_result ;;
- esac
- # test for cygwin because mv fails w/o .exe extensions
- case $host in
- *cygwin*)
- exeext=.exe
- func_stripname '' '.exe' "$outputname"
- outputname=$func_stripname_result ;;
- *) exeext= ;;
- esac
- case $host in
- *cygwin* | *mingw* )
- func_dirname_and_basename "$output" "" "."
- output_name=$func_basename_result
- output_path=$func_dirname_result
- cwrappersource="$output_path/$objdir/lt-$output_name.c"
- cwrapper="$output_path/$output_name.exe"
- $RM $cwrappersource $cwrapper
- trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
-
- func_emit_cwrapperexe_src > $cwrappersource
-
- # The wrapper executable is built using the $host compiler,
- # because it contains $host paths and files. If cross-
- # compiling, it, like the target executable, must be
- # executed on the $host or under an emulation environment.
- $opt_dry_run || {
- $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
- $STRIP $cwrapper
- }
-
- # Now, create the wrapper script for func_source use:
- func_ltwrapper_scriptname $cwrapper
- $RM $func_ltwrapper_scriptname_result
- trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
- $opt_dry_run || {
- # note: this script will not be executed, so do not chmod.
- if test "x$build" = "x$host" ; then
- $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
- else
- func_emit_wrapper no > $func_ltwrapper_scriptname_result
- fi
- }
- ;;
- * )
- $RM $output
- trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
-
- func_emit_wrapper no > $output
- chmod +x $output
- ;;
- esac
- }
- exit $EXIT_SUCCESS
- ;;
- esac
-
- # See if we need to build an old-fashioned archive.
- for oldlib in $oldlibs; do
-
- if test "$build_libtool_libs" = convenience; then
- oldobjs="$libobjs_save $symfileobj"
- addlibs="$convenience"
- build_libtool_libs=no
- else
- if test "$build_libtool_libs" = module; then
- oldobjs="$libobjs_save"
- build_libtool_libs=no
- else
- oldobjs="$old_deplibs $non_pic_objects"
- if test "$preload" = yes && test -f "$symfileobj"; then
- func_append oldobjs " $symfileobj"
- fi
- fi
- addlibs="$old_convenience"
- fi
-
- if test -n "$addlibs"; then
- gentop="$output_objdir/${outputname}x"
- func_append generated " $gentop"
-
- func_extract_archives $gentop $addlibs
- func_append oldobjs " $func_extract_archives_result"
- fi
-
- # Do each command in the archive commands.
- if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
- cmds=$old_archive_from_new_cmds
- else
-
- # Add any objects from preloaded convenience libraries
- if test -n "$dlprefiles"; then
- gentop="$output_objdir/${outputname}x"
- func_append generated " $gentop"
-
- func_extract_archives $gentop $dlprefiles
- func_append oldobjs " $func_extract_archives_result"
- fi
-
- # POSIX demands no paths to be encoded in archives. We have
- # to avoid creating archives with duplicate basenames if we
- # might have to extract them afterwards, e.g., when creating a
- # static archive out of a convenience library, or when linking
- # the entirety of a libtool archive into another (currently
- # not supported by libtool).
- if (for obj in $oldobjs
- do
- func_basename "$obj"
- $ECHO "$func_basename_result"
- done | sort | sort -uc >/dev/null 2>&1); then
- :
- else
- echo "copying selected object files to avoid basename conflicts..."
- gentop="$output_objdir/${outputname}x"
- func_append generated " $gentop"
- func_mkdir_p "$gentop"
- save_oldobjs=$oldobjs
- oldobjs=
- counter=1
- for obj in $save_oldobjs
- do
- func_basename "$obj"
- objbase="$func_basename_result"
- case " $oldobjs " in
- " ") oldobjs=$obj ;;
- *[\ /]"$objbase "*)
- while :; do
- # Make sure we don't pick an alternate name that also
- # overlaps.
- newobj=lt$counter-$objbase
- func_arith $counter + 1
- counter=$func_arith_result
- case " $oldobjs " in
- *[\ /]"$newobj "*) ;;
- *) if test ! -f "$gentop/$newobj"; then break; fi ;;
- esac
- done
- func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
- func_append oldobjs " $gentop/$newobj"
- ;;
- *) func_append oldobjs " $obj" ;;
- esac
- done
- fi
- func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
- tool_oldlib=$func_to_tool_file_result
- eval cmds=\"$old_archive_cmds\"
-
- func_len " $cmds"
- len=$func_len_result
- if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
- cmds=$old_archive_cmds
- elif test -n "$archiver_list_spec"; then
- func_verbose "using command file archive linking..."
- for obj in $oldobjs
- do
- func_to_tool_file "$obj"
- $ECHO "$func_to_tool_file_result"
- done > $output_objdir/$libname.libcmd
- func_to_tool_file "$output_objdir/$libname.libcmd"
- oldobjs=" $archiver_list_spec$func_to_tool_file_result"
- cmds=$old_archive_cmds
- else
- # the command line is too long to link in one step, link in parts
- func_verbose "using piecewise archive linking..."
- save_RANLIB=$RANLIB
- RANLIB=:
- objlist=
- concat_cmds=
- save_oldobjs=$oldobjs
- oldobjs=
- # Is there a better way of finding the last object in the list?
- for obj in $save_oldobjs
- do
- last_oldobj=$obj
- done
- eval test_cmds=\"$old_archive_cmds\"
- func_len " $test_cmds"
- len0=$func_len_result
- len=$len0
- for obj in $save_oldobjs
- do
- func_len " $obj"
- func_arith $len + $func_len_result
- len=$func_arith_result
- func_append objlist " $obj"
- if test "$len" -lt "$max_cmd_len"; then
- :
- else
- # the above command should be used before it gets too long
- oldobjs=$objlist
- if test "$obj" = "$last_oldobj" ; then
- RANLIB=$save_RANLIB
- fi
- test -z "$concat_cmds" || concat_cmds=$concat_cmds~
- eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
- objlist=
- len=$len0
- fi
- done
- RANLIB=$save_RANLIB
- oldobjs=$objlist
- if test "X$oldobjs" = "X" ; then
- eval cmds=\"\$concat_cmds\"
- else
- eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
- fi
- fi
- fi
- func_execute_cmds "$cmds" 'exit $?'
- done
-
- test -n "$generated" && \
- func_show_eval "${RM}r$generated"
-
- # Now create the libtool archive.
- case $output in
- *.la)
- old_library=
- test "$build_old_libs" = yes && old_library="$libname.$libext"
- func_verbose "creating $output"
-
- # Preserve any variables that may affect compiler behavior
- for var in $variables_saved_for_relink; do
- if eval test -z \"\${$var+set}\"; then
- relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
- elif eval var_value=\$$var; test -z "$var_value"; then
- relink_command="$var=; export $var; $relink_command"
- else
- func_quote_for_eval "$var_value"
- relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
- fi
- done
- # Quote the link command for shipping.
- relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
- relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
- if test "$hardcode_automatic" = yes ; then
- relink_command=
- fi
-
- # Only create the output if not a dry run.
- $opt_dry_run || {
- for installed in no yes; do
- if test "$installed" = yes; then
- if test -z "$install_libdir"; then
- break
- fi
- output="$output_objdir/$outputname"i
- # Replace all uninstalled libtool libraries with the installed ones
- newdependency_libs=
- for deplib in $dependency_libs; do
- case $deplib in
- *.la)
- func_basename "$deplib"
- name="$func_basename_result"
- func_resolve_sysroot "$deplib"
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
- test -z "$libdir" && \
- func_fatal_error "\`$deplib' is not a valid libtool archive"
- func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
- ;;
- -L*)
- func_stripname -L '' "$deplib"
- func_replace_sysroot "$func_stripname_result"
- func_append newdependency_libs " -L$func_replace_sysroot_result"
- ;;
- -R*)
- func_stripname -R '' "$deplib"
- func_replace_sysroot "$func_stripname_result"
- func_append newdependency_libs " -R$func_replace_sysroot_result"
- ;;
- *) func_append newdependency_libs " $deplib" ;;
- esac
- done
- dependency_libs="$newdependency_libs"
- newdlfiles=
-
- for lib in $dlfiles; do
- case $lib in
- *.la)
- func_basename "$lib"
- name="$func_basename_result"
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
- test -z "$libdir" && \
- func_fatal_error "\`$lib' is not a valid libtool archive"
- func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
- ;;
- *) func_append newdlfiles " $lib" ;;
- esac
- done
- dlfiles="$newdlfiles"
- newdlprefiles=
- for lib in $dlprefiles; do
- case $lib in
- *.la)
- # Only pass preopened files to the pseudo-archive (for
- # eventual linking with the app. that links it) if we
- # didn't already link the preopened objects directly into
- # the library:
- func_basename "$lib"
- name="$func_basename_result"
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
- test -z "$libdir" && \
- func_fatal_error "\`$lib' is not a valid libtool archive"
- func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
- ;;
- esac
- done
- dlprefiles="$newdlprefiles"
- else
- newdlfiles=
- for lib in $dlfiles; do
- case $lib in
- [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
- *) abs=`pwd`"/$lib" ;;
- esac
- func_append newdlfiles " $abs"
- done
- dlfiles="$newdlfiles"
- newdlprefiles=
- for lib in $dlprefiles; do
- case $lib in
- [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
- *) abs=`pwd`"/$lib" ;;
- esac
- func_append newdlprefiles " $abs"
- done
- dlprefiles="$newdlprefiles"
- fi
- $RM $output
- # place dlname in correct position for cygwin
- # In fact, it would be nice if we could use this code for all target
- # systems that can't hard-code library paths into their executables
- # and that have no shared library path variable independent of PATH,
- # but it turns out we can't easily determine that from inspecting
- # libtool variables, so we have to hard-code the OSs to which it
- # applies here; at the moment, that means platforms that use the PE
- # object format with DLL files. See the long comment at the top of
- # tests/bindir.at for full details.
- tdlname=$dlname
- case $host,$output,$installed,$module,$dlname in
- *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
- # If a -bindir argument was supplied, place the dll there.
- if test "x$bindir" != x ;
- then
- func_relative_path "$install_libdir" "$bindir"
- tdlname=$func_relative_path_result$dlname
- else
- # Otherwise fall back on heuristic.
- tdlname=../bin/$dlname
- fi
- ;;
- esac
- $ECHO > $output "\
-# $outputname - a libtool library file
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# The name that we can dlopen(3).
-dlname='$tdlname'
-
-# Names of this library.
-library_names='$library_names'
-
-# The name of the static archive.
-old_library='$old_library'
-
-# Linker flags that can not go in dependency_libs.
-inherited_linker_flags='$new_inherited_linker_flags'
-
-# Libraries that this one depends upon.
-dependency_libs='$dependency_libs'
-
-# Names of additional weak libraries provided by this library
-weak_library_names='$weak_libs'
-
-# Version information for $libname.
-current=$current
-age=$age
-revision=$revision
-
-# Is this an already installed library?
-installed=$installed
-
-# Should we warn about portability when linking against -modules?
-shouldnotlink=$module
-
-# Files to dlopen/dlpreopen
-dlopen='$dlfiles'
-dlpreopen='$dlprefiles'
-
-# Directory that this library needs to be installed in:
-libdir='$install_libdir'"
- if test "$installed" = no && test "$need_relink" = yes; then
- $ECHO >> $output "\
-relink_command=\"$relink_command\""
- fi
- done
- }
-
- # Do a symbolic link so that the libtool archive can be found in
- # LD_LIBRARY_PATH before the program is installed.
- func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
- ;;
- esac
- exit $EXIT_SUCCESS
-}
-
-{ test "$opt_mode" = link || test "$opt_mode" = relink; } &&
- func_mode_link ${1+"$@"}
-
-
-# func_mode_uninstall arg...
-func_mode_uninstall ()
-{
- $opt_debug
- RM="$nonopt"
- files=
- rmforce=
- exit_status=0
-
- # This variable tells wrapper scripts just to set variables rather
- # than running their programs.
- libtool_install_magic="$magic"
-
- for arg
- do
- case $arg in
- -f) func_append RM " $arg"; rmforce=yes ;;
- -*) func_append RM " $arg" ;;
- *) func_append files " $arg" ;;
- esac
- done
-
- test -z "$RM" && \
- func_fatal_help "you must specify an RM program"
-
- rmdirs=
-
- for file in $files; do
- func_dirname "$file" "" "."
- dir="$func_dirname_result"
- if test "X$dir" = X.; then
- odir="$objdir"
- else
- odir="$dir/$objdir"
- fi
- func_basename "$file"
- name="$func_basename_result"
- test "$opt_mode" = uninstall && odir="$dir"
-
- # Remember odir for removal later, being careful to avoid duplicates
- if test "$opt_mode" = clean; then
- case " $rmdirs " in
- *" $odir "*) ;;
- *) func_append rmdirs " $odir" ;;
- esac
- fi
-
- # Don't error if the file doesn't exist and rm -f was used.
- if { test -L "$file"; } >/dev/null 2>&1 ||
- { test -h "$file"; } >/dev/null 2>&1 ||
- test -f "$file"; then
- :
- elif test -d "$file"; then
- exit_status=1
- continue
- elif test "$rmforce" = yes; then
- continue
- fi
-
- rmfiles="$file"
-
- case $name in
- *.la)
- # Possibly a libtool archive, so verify it.
- if func_lalib_p "$file"; then
- func_source $dir/$name
-
- # Delete the libtool libraries and symlinks.
- for n in $library_names; do
- func_append rmfiles " $odir/$n"
- done
- test -n "$old_library" && func_append rmfiles " $odir/$old_library"
-
- case "$opt_mode" in
- clean)
- case " $library_names " in
- *" $dlname "*) ;;
- *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
- esac
- test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
- ;;
- uninstall)
- if test -n "$library_names"; then
- # Do each command in the postuninstall commands.
- func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
- fi
-
- if test -n "$old_library"; then
- # Do each command in the old_postuninstall commands.
- func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
- fi
- # FIXME: should reinstall the best remaining shared library.
- ;;
- esac
- fi
- ;;
-
- *.lo)
- # Possibly a libtool object, so verify it.
- if func_lalib_p "$file"; then
-
- # Read the .lo file
- func_source $dir/$name
-
- # Add PIC object to the list of files to remove.
- if test -n "$pic_object" &&
- test "$pic_object" != none; then
- func_append rmfiles " $dir/$pic_object"
- fi
-
- # Add non-PIC object to the list of files to remove.
- if test -n "$non_pic_object" &&
- test "$non_pic_object" != none; then
- func_append rmfiles " $dir/$non_pic_object"
- fi
- fi
- ;;
-
- *)
- if test "$opt_mode" = clean ; then
- noexename=$name
- case $file in
- *.exe)
- func_stripname '' '.exe' "$file"
- file=$func_stripname_result
- func_stripname '' '.exe' "$name"
- noexename=$func_stripname_result
- # $file with .exe has already been added to rmfiles,
- # add $file without .exe
- func_append rmfiles " $file"
- ;;
- esac
- # Do a test to see if this is a libtool program.
- if func_ltwrapper_p "$file"; then
- if func_ltwrapper_executable_p "$file"; then
- func_ltwrapper_scriptname "$file"
- relink_command=
- func_source $func_ltwrapper_scriptname_result
- func_append rmfiles " $func_ltwrapper_scriptname_result"
- else
- relink_command=
- func_source $dir/$noexename
- fi
-
- # note $name still contains .exe if it was in $file originally
- # as does the version of $file that was added into $rmfiles
- func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
- if test "$fast_install" = yes && test -n "$relink_command"; then
- func_append rmfiles " $odir/lt-$name"
- fi
- if test "X$noexename" != "X$name" ; then
- func_append rmfiles " $odir/lt-${noexename}.c"
- fi
- fi
- fi
- ;;
- esac
- func_show_eval "$RM $rmfiles" 'exit_status=1'
- done
-
- # Try to remove the ${objdir}s in the directories where we deleted files
- for dir in $rmdirs; do
- if test -d "$dir"; then
- func_show_eval "rmdir $dir >/dev/null 2>&1"
- fi
- done
-
- exit $exit_status
-}
-
-{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
- func_mode_uninstall ${1+"$@"}
-
-test -z "$opt_mode" && {
- help="$generic_help"
- func_fatal_help "you must specify a MODE"
-}
-
-test -z "$exec_cmd" && \
- func_fatal_help "invalid operation mode \`$opt_mode'"
-
-if test -n "$exec_cmd"; then
- eval exec "$exec_cmd"
- exit $EXIT_FAILURE
-fi
-
-exit $exit_status
-
-
-# The TAGs below are defined such that we never get into a situation
-# in which we disable both kinds of libraries. Given conflicting
-# choices, we go for a static library, that is the most portable,
-# since we can't tell whether shared libraries were disabled because
-# the user asked for that or because the platform doesn't support
-# them. This is particularly important on AIX, because we don't
-# support having both static and shared libraries enabled at the same
-# time on that platform, so we default to a shared-only configuration.
-# If a disable-shared tag is given, we'll fallback to a static-only
-# configuration. But we'll never go from static-only to shared-only.
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
-build_libtool_libs=no
-build_old_libs=yes
-# ### END LIBTOOL TAG CONFIG: disable-shared
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-static
-build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
-# ### END LIBTOOL TAG CONFIG: disable-static
-
-# Local Variables:
-# mode:shell-script
-# sh-indentation:2
-# End:
-# vi:sw=2
-
diff --git a/m4/libtool.m4 b/m4/libtool.m4
deleted file mode 100644
index f12cfdf..0000000
--- a/m4/libtool.m4
+++ /dev/null
@@ -1,7992 +0,0 @@
-# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-# 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
-# Written by Gordon Matzigkeit, 1996
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-m4_define([_LT_COPYING], [dnl
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-# 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
-# Written by Gordon Matzigkeit, 1996
-#
-# This file is part of GNU Libtool.
-#
-# GNU Libtool 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.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Libtool; see the file COPYING. If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-])
-
-# serial 57 LT_INIT
-
-
-# LT_PREREQ(VERSION)
-# ------------------
-# Complain and exit if this libtool version is less that VERSION.
-m4_defun([LT_PREREQ],
-[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
- [m4_default([$3],
- [m4_fatal([Libtool version $1 or higher is required],
- 63)])],
- [$2])])
-
-
-# _LT_CHECK_BUILDDIR
-# ------------------
-# Complain if the absolute build directory name contains unusual characters
-m4_defun([_LT_CHECK_BUILDDIR],
-[case `pwd` in
- *\ * | *\ *)
- AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
-esac
-])
-
-
-# LT_INIT([OPTIONS])
-# ------------------
-AC_DEFUN([LT_INIT],
-[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
-AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
-AC_BEFORE([$0], [LT_LANG])dnl
-AC_BEFORE([$0], [LT_OUTPUT])dnl
-AC_BEFORE([$0], [LTDL_INIT])dnl
-m4_require([_LT_CHECK_BUILDDIR])dnl
-
-dnl Autoconf doesn't catch unexpanded LT_ macros by default:
-m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
-m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
-dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
-dnl unless we require an AC_DEFUNed macro:
-AC_REQUIRE([LTOPTIONS_VERSION])dnl
-AC_REQUIRE([LTSUGAR_VERSION])dnl
-AC_REQUIRE([LTVERSION_VERSION])dnl
-AC_REQUIRE([LTOBSOLETE_VERSION])dnl
-m4_require([_LT_PROG_LTMAIN])dnl
-
-_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
-
-dnl Parse OPTIONS
-_LT_SET_OPTIONS([$0], [$1])
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-AC_SUBST(LIBTOOL)dnl
-
-_LT_SETUP
-
-# Only expand once:
-m4_define([LT_INIT])
-])# LT_INIT
-
-# Old names:
-AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
-AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
-dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
-
-
-# _LT_CC_BASENAME(CC)
-# -------------------
-# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
-m4_defun([_LT_CC_BASENAME],
-[for cc_temp in $1""; do
- case $cc_temp in
- compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
- distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
- \-*) ;;
- *) break;;
- esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-])
-
-
-# _LT_FILEUTILS_DEFAULTS
-# ----------------------
-# It is okay to use these file commands and assume they have been set
-# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
-m4_defun([_LT_FILEUTILS_DEFAULTS],
-[: ${CP="cp -f"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-])# _LT_FILEUTILS_DEFAULTS
-
-
-# _LT_SETUP
-# ---------
-m4_defun([_LT_SETUP],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
-AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
-
-_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
-dnl
-_LT_DECL([], [host_alias], [0], [The host system])dnl
-_LT_DECL([], [host], [0])dnl
-_LT_DECL([], [host_os], [0])dnl
-dnl
-_LT_DECL([], [build_alias], [0], [The build system])dnl
-_LT_DECL([], [build], [0])dnl
-_LT_DECL([], [build_os], [0])dnl
-dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([LT_PATH_LD])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-dnl
-AC_REQUIRE([AC_PROG_LN_S])dnl
-test -z "$LN_S" && LN_S="ln -s"
-_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
-dnl
-AC_REQUIRE([LT_CMD_MAX_LEN])dnl
-_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
-_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
-dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_CHECK_SHELL_FEATURES])dnl
-m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
-m4_require([_LT_CMD_RELOAD])dnl
-m4_require([_LT_CHECK_MAGIC_METHOD])dnl
-m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
-m4_require([_LT_CMD_OLD_ARCHIVE])dnl
-m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-m4_require([_LT_WITH_SYSROOT])dnl
-
-_LT_CONFIG_LIBTOOL_INIT([
-# See if we are running on zsh, and set the options which allow our
-# commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
-fi
-])
-if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
-fi
-
-_LT_CHECK_OBJDIR
-
-m4_require([_LT_TAG_COMPILER])dnl
-
-case $host_os in
-aix3*)
- # AIX sometimes has problems with the GCC collect2 program. For some
- # reason, if we set the COLLECT_NAMES environment variable, the problems
- # vanish in a puff of smoke.
- if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
- fi
- ;;
-esac
-
-# Global variables:
-ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$LD" && LD=ld
-test -z "$ac_objext" && ac_objext=o
-
-_LT_CC_BASENAME([$compiler])
-
-# Only perform the check for file, if the check method requires it
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-case $deplibs_check_method in
-file_magic*)
- if test "$file_magic_cmd" = '$MAGIC_CMD'; then
- _LT_PATH_MAGIC
- fi
- ;;
-esac
-
-# Use C for the default configuration in the libtool script
-LT_SUPPORTED_TAG([CC])
-_LT_LANG_C_CONFIG
-_LT_LANG_DEFAULT_CONFIG
-_LT_CONFIG_COMMANDS
-])# _LT_SETUP
-
-
-# _LT_PREPARE_SED_QUOTE_VARS
-# --------------------------
-# Define a few sed substitution that help us do robust quoting.
-m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
-[# Backslashify metacharacters that are still active within
-# double-quoted strings.
-sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\([["`\\]]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-])
-
-# _LT_PROG_LTMAIN
-# ---------------
-# Note that this code is called both from `configure', and `config.status'
-# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably,
-# `config.status' has no value for ac_aux_dir unless we are using Automake,
-# so we pass a copy along to make sure it has a sensible value anyway.
-m4_defun([_LT_PROG_LTMAIN],
-[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
-_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
-ltmain="$ac_aux_dir/ltmain.sh"
-])# _LT_PROG_LTMAIN
-
-
-## ------------------------------------- ##
-## Accumulate code for creating libtool. ##
-## ------------------------------------- ##
-
-# So that we can recreate a full libtool script including additional
-# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
-# in macros and then make a single call at the end using the `libtool'
-# label.
-
-
-# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
-# ----------------------------------------
-# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
-m4_define([_LT_CONFIG_LIBTOOL_INIT],
-[m4_ifval([$1],
- [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
- [$1
-])])])
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_INIT])
-
-
-# _LT_CONFIG_LIBTOOL([COMMANDS])
-# ------------------------------
-# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
-m4_define([_LT_CONFIG_LIBTOOL],
-[m4_ifval([$1],
- [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
- [$1
-])])])
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
-
-
-# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
-# -----------------------------------------------------
-m4_defun([_LT_CONFIG_SAVE_COMMANDS],
-[_LT_CONFIG_LIBTOOL([$1])
-_LT_CONFIG_LIBTOOL_INIT([$2])
-])
-
-
-# _LT_FORMAT_COMMENT([COMMENT])
-# -----------------------------
-# Add leading comment marks to the start of each line, and a trailing
-# full-stop to the whole comment if one is not present already.
-m4_define([_LT_FORMAT_COMMENT],
-[m4_ifval([$1], [
-m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
- [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
-)])
-
-
-
-## ------------------------ ##
-## FIXME: Eliminate VARNAME ##
-## ------------------------ ##
-
-
-# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
-# -------------------------------------------------------------------
-# CONFIGNAME is the name given to the value in the libtool script.
-# VARNAME is the (base) name used in the configure script.
-# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
-# VARNAME. Any other value will be used directly.
-m4_define([_LT_DECL],
-[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
- [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
- [m4_ifval([$1], [$1], [$2])])
- lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
- m4_ifval([$4],
- [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
- lt_dict_add_subkey([lt_decl_dict], [$2],
- [tagged?], [m4_ifval([$5], [yes], [no])])])
-])
-
-
-# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
-# --------------------------------------------------------
-m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
-
-
-# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
-# ------------------------------------------------
-m4_define([lt_decl_tag_varnames],
-[_lt_decl_filter([tagged?], [yes], $@)])
-
-
-# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
-# ---------------------------------------------------------
-m4_define([_lt_decl_filter],
-[m4_case([$#],
- [0], [m4_fatal([$0: too few arguments: $#])],
- [1], [m4_fatal([$0: too few arguments: $#: $1])],
- [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
- [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
- [lt_dict_filter([lt_decl_dict], $@)])[]dnl
-])
-
-
-# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
-# --------------------------------------------------
-m4_define([lt_decl_quote_varnames],
-[_lt_decl_filter([value], [1], $@)])
-
-
-# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
-# ---------------------------------------------------
-m4_define([lt_decl_dquote_varnames],
-[_lt_decl_filter([value], [2], $@)])
-
-
-# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
-# ---------------------------------------------------
-m4_define([lt_decl_varnames_tagged],
-[m4_assert([$# <= 2])dnl
-_$0(m4_quote(m4_default([$1], [[, ]])),
- m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
- m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
-m4_define([_lt_decl_varnames_tagged],
-[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
-
-
-# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
-# ------------------------------------------------
-m4_define([lt_decl_all_varnames],
-[_$0(m4_quote(m4_default([$1], [[, ]])),
- m4_if([$2], [],
- m4_quote(lt_decl_varnames),
- m4_quote(m4_shift($@))))[]dnl
-])
-m4_define([_lt_decl_all_varnames],
-[lt_join($@, lt_decl_varnames_tagged([$1],
- lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
-])
-
-
-# _LT_CONFIG_STATUS_DECLARE([VARNAME])
-# ------------------------------------
-# Quote a variable value, and forward it to `config.status' so that its
-# declaration there will have the same value as in `configure'. VARNAME
-# must have a single quote delimited value for this to work.
-m4_define([_LT_CONFIG_STATUS_DECLARE],
-[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
-
-
-# _LT_CONFIG_STATUS_DECLARATIONS
-# ------------------------------
-# We delimit libtool config variables with single quotes, so when
-# we write them to config.status, we have to be sure to quote all
-# embedded single quotes properly. In configure, this macro expands
-# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
-#
-# <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
-m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
-[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
- [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
-
-
-# _LT_LIBTOOL_TAGS
-# ----------------
-# Output comment and list of tags supported by the script
-m4_defun([_LT_LIBTOOL_TAGS],
-[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
-available_tags="_LT_TAGS"dnl
-])
-
-
-# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
-# -----------------------------------
-# Extract the dictionary values for VARNAME (optionally with TAG) and
-# expand to a commented shell variable setting:
-#
-# # Some comment about what VAR is for.
-# visible_name=$lt_internal_name
-m4_define([_LT_LIBTOOL_DECLARE],
-[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
- [description])))[]dnl
-m4_pushdef([_libtool_name],
- m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
-m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
- [0], [_libtool_name=[$]$1],
- [1], [_libtool_name=$lt_[]$1],
- [2], [_libtool_name=$lt_[]$1],
- [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
-m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
-])
-
-
-# _LT_LIBTOOL_CONFIG_VARS
-# -----------------------
-# Produce commented declarations of non-tagged libtool config variables
-# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
-# script. Tagged libtool config variables (even for the LIBTOOL CONFIG
-# section) are produced by _LT_LIBTOOL_TAG_VARS.
-m4_defun([_LT_LIBTOOL_CONFIG_VARS],
-[m4_foreach([_lt_var],
- m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
- [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
-
-
-# _LT_LIBTOOL_TAG_VARS(TAG)
-# -------------------------
-m4_define([_LT_LIBTOOL_TAG_VARS],
-[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
- [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
-
-
-# _LT_TAGVAR(VARNAME, [TAGNAME])
-# ------------------------------
-m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
-
-
-# _LT_CONFIG_COMMANDS
-# -------------------
-# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of
-# variables for single and double quote escaping we saved from calls
-# to _LT_DECL, we can put quote escaped variables declarations
-# into `config.status', and then the shell code to quote escape them in
-# for loops in `config.status'. Finally, any additional code accumulated
-# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
-m4_defun([_LT_CONFIG_COMMANDS],
-[AC_PROVIDE_IFELSE([LT_OUTPUT],
- dnl If the libtool generation code has been placed in $CONFIG_LT,
- dnl instead of duplicating it all over again into config.status,
- dnl then we will have config.status run $CONFIG_LT later, so it
- dnl needs to know what name is stored there:
- [AC_CONFIG_COMMANDS([libtool],
- [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
- dnl If the libtool generation code is destined for config.status,
- dnl expand the accumulated commands and init code now:
- [AC_CONFIG_COMMANDS([libtool],
- [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
-])#_LT_CONFIG_COMMANDS
-
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
-[
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-sed_quote_subst='$sed_quote_subst'
-double_quote_subst='$double_quote_subst'
-delay_variable_subst='$delay_variable_subst'
-_LT_CONFIG_STATUS_DECLARATIONS
-LTCC='$LTCC'
-LTCFLAGS='$LTCFLAGS'
-compiler='$compiler_DEFAULT'
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
- eval 'cat <<_LTECHO_EOF
-\$[]1
-_LTECHO_EOF'
-}
-
-# Quote evaled strings.
-for var in lt_decl_all_varnames([[ \
-]], lt_decl_quote_varnames); do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[[\\\\\\\`\\"\\\$]]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-# Double-quote double-evaled strings.
-for var in lt_decl_all_varnames([[ \
-]], lt_decl_dquote_varnames); do
- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
- *[[\\\\\\\`\\"\\\$]]*)
- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
- ;;
- *)
- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
- ;;
- esac
-done
-
-_LT_OUTPUT_LIBTOOL_INIT
-])
-
-# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
-# ------------------------------------
-# Generate a child script FILE with all initialization necessary to
-# reuse the environment learned by the parent script, and make the
-# file executable. If COMMENT is supplied, it is inserted after the
-# `#!' sequence but before initialization text begins. After this
-# macro, additional text can be appended to FILE to form the body of
-# the child script. The macro ends with non-zero status if the
-# file could not be fully written (such as if the disk is full).
-m4_ifdef([AS_INIT_GENERATED],
-[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
-[m4_defun([_LT_GENERATED_FILE_INIT],
-[m4_require([AS_PREPARE])]dnl
-[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
-[lt_write_fail=0
-cat >$1 <<_ASEOF || lt_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-$2
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$1 <<\_ASEOF || lt_write_fail=1
-AS_SHELL_SANITIZE
-_AS_PREPARE
-exec AS_MESSAGE_FD>&1
-_ASEOF
-test $lt_write_fail = 0 && chmod +x $1[]dnl
-m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
-
-# LT_OUTPUT
-# ---------
-# This macro allows early generation of the libtool script (before
-# AC_OUTPUT is called), incase it is used in configure for compilation
-# tests.
-AC_DEFUN([LT_OUTPUT],
-[: ${CONFIG_LT=./config.lt}
-AC_MSG_NOTICE([creating $CONFIG_LT])
-_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
-[# Run this file to recreate a libtool stub with the current configuration.])
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-lt_cl_silent=false
-exec AS_MESSAGE_LOG_FD>>config.log
-{
- echo
- AS_BOX([Running $as_me.])
-} >&AS_MESSAGE_LOG_FD
-
-lt_cl_help="\
-\`$as_me' creates a local libtool stub from the current configuration,
-for use in further configure time tests before the real libtool is
-generated.
-
-Usage: $[0] [[OPTIONS]]
-
- -h, --help print this help, then exit
- -V, --version print version number, then exit
- -q, --quiet do not print progress messages
- -d, --debug don't remove temporary files
-
-Report bugs to <bug-libtool at gnu.org>."
-
-lt_cl_version="\
-m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
-m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
-configured by $[0], generated by m4_PACKAGE_STRING.
-
-Copyright (C) 2011 Free Software Foundation, Inc.
-This config.lt script is free software; the Free Software Foundation
-gives unlimited permision to copy, distribute and modify it."
-
-while test $[#] != 0
-do
- case $[1] in
- --version | --v* | -V )
- echo "$lt_cl_version"; exit 0 ;;
- --help | --h* | -h )
- echo "$lt_cl_help"; exit 0 ;;
- --debug | --d* | -d )
- debug=: ;;
- --quiet | --q* | --silent | --s* | -q )
- lt_cl_silent=: ;;
-
- -*) AC_MSG_ERROR([unrecognized option: $[1]
-Try \`$[0] --help' for more information.]) ;;
-
- *) AC_MSG_ERROR([unrecognized argument: $[1]
-Try \`$[0] --help' for more information.]) ;;
- esac
- shift
-done
-
-if $lt_cl_silent; then
- exec AS_MESSAGE_FD>/dev/null
-fi
-_LTEOF
-
-cat >>"$CONFIG_LT" <<_LTEOF
-_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
-_LTEOF
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-AC_MSG_NOTICE([creating $ofile])
-_LT_OUTPUT_LIBTOOL_COMMANDS
-AS_EXIT(0)
-_LTEOF
-chmod +x "$CONFIG_LT"
-
-# configure is writing to config.log, but config.lt does its own redirection,
-# appending to config.log, which fails on DOS, as config.log is still kept
-# open by configure. Here we exec the FD to /dev/null, effectively closing
-# config.log, so it can be properly (re)opened and appended to by config.lt.
-lt_cl_success=:
-test "$silent" = yes &&
- lt_config_lt_args="$lt_config_lt_args --quiet"
-exec AS_MESSAGE_LOG_FD>/dev/null
-$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
-exec AS_MESSAGE_LOG_FD>>config.log
-$lt_cl_success || AS_EXIT(1)
-])# LT_OUTPUT
-
-
-# _LT_CONFIG(TAG)
-# ---------------
-# If TAG is the built-in tag, create an initial libtool script with a
-# default configuration from the untagged config vars. Otherwise add code
-# to config.status for appending the configuration named by TAG from the
-# matching tagged config vars.
-m4_defun([_LT_CONFIG],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-_LT_CONFIG_SAVE_COMMANDS([
- m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
- m4_if(_LT_TAG, [C], [
- # See if we are running on zsh, and set the options which allow our
- # commands through without removal of \ escapes.
- if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
- fi
-
- cfgfile="${ofile}T"
- trap "$RM \"$cfgfile\"; exit 1" 1 2 15
- $RM "$cfgfile"
-
- cat <<_LT_EOF >> "$cfgfile"
-#! $SHELL
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-_LT_COPYING
-_LT_LIBTOOL_TAGS
-
-# ### BEGIN LIBTOOL CONFIG
-_LT_LIBTOOL_CONFIG_VARS
-_LT_LIBTOOL_TAG_VARS
-# ### END LIBTOOL CONFIG
-
-_LT_EOF
-
- case $host_os in
- aix3*)
- cat <<\_LT_EOF >> "$cfgfile"
-# AIX sometimes has problems with the GCC collect2 program. For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
-fi
-_LT_EOF
- ;;
- esac
-
- _LT_PROG_LTMAIN
-
- # We use sed instead of cat because bash on DJGPP gets confused if
- # if finds mixed CR/LF and LF-only lines. Since sed operates in
- # text mode, it properly converts lines to CR/LF. This bash problem
- # is reportedly fixed, but why not run on old versions too?
- sed '$q' "$ltmain" >> "$cfgfile" \
- || (rm -f "$cfgfile"; exit 1)
-
- _LT_PROG_REPLACE_SHELLFNS
-
- mv -f "$cfgfile" "$ofile" ||
- (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
- chmod +x "$ofile"
-],
-[cat <<_LT_EOF >> "$ofile"
-
-dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
-dnl in a comment (ie after a #).
-# ### BEGIN LIBTOOL TAG CONFIG: $1
-_LT_LIBTOOL_TAG_VARS(_LT_TAG)
-# ### END LIBTOOL TAG CONFIG: $1
-_LT_EOF
-])dnl /m4_if
-],
-[m4_if([$1], [], [
- PACKAGE='$PACKAGE'
- VERSION='$VERSION'
- TIMESTAMP='$TIMESTAMP'
- RM='$RM'
- ofile='$ofile'], [])
-])dnl /_LT_CONFIG_SAVE_COMMANDS
-])# _LT_CONFIG
-
-
-# LT_SUPPORTED_TAG(TAG)
-# ---------------------
-# Trace this macro to discover what tags are supported by the libtool
-# --tag option, using:
-# autoconf --trace 'LT_SUPPORTED_TAG:$1'
-AC_DEFUN([LT_SUPPORTED_TAG], [])
-
-
-# C support is built-in for now
-m4_define([_LT_LANG_C_enabled], [])
-m4_define([_LT_TAGS], [])
-
-
-# LT_LANG(LANG)
-# -------------
-# Enable libtool support for the given language if not already enabled.
-AC_DEFUN([LT_LANG],
-[AC_BEFORE([$0], [LT_OUTPUT])dnl
-m4_case([$1],
- [C], [_LT_LANG(C)],
- [C++], [_LT_LANG(CXX)],
- [Go], [_LT_LANG(GO)],
- [Java], [_LT_LANG(GCJ)],
- [Fortran 77], [_LT_LANG(F77)],
- [Fortran], [_LT_LANG(FC)],
- [Windows Resource], [_LT_LANG(RC)],
- [m4_ifdef([_LT_LANG_]$1[_CONFIG],
- [_LT_LANG($1)],
- [m4_fatal([$0: unsupported language: "$1"])])])dnl
-])# LT_LANG
-
-
-# _LT_LANG(LANGNAME)
-# ------------------
-m4_defun([_LT_LANG],
-[m4_ifdef([_LT_LANG_]$1[_enabled], [],
- [LT_SUPPORTED_TAG([$1])dnl
- m4_append([_LT_TAGS], [$1 ])dnl
- m4_define([_LT_LANG_]$1[_enabled], [])dnl
- _LT_LANG_$1_CONFIG($1)])dnl
-])# _LT_LANG
-
-
-m4_ifndef([AC_PROG_GO], [
-############################################################
-# NOTE: This macro has been submitted for inclusion into #
-# GNU Autoconf as AC_PROG_GO. When it is available in #
-# a released version of Autoconf we should remove this #
-# macro and use it instead. #
-############################################################
-m4_defun([AC_PROG_GO],
-[AC_LANG_PUSH(Go)dnl
-AC_ARG_VAR([GOC], [Go compiler command])dnl
-AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
-_AC_ARG_VAR_LDFLAGS()dnl
-AC_CHECK_TOOL(GOC, gccgo)
-if test -z "$GOC"; then
- if test -n "$ac_tool_prefix"; then
- AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
- fi
-fi
-if test -z "$GOC"; then
- AC_CHECK_PROG(GOC, gccgo, gccgo, false)
-fi
-])#m4_defun
-])#m4_ifndef
-
-
-# _LT_LANG_DEFAULT_CONFIG
-# -----------------------
-m4_defun([_LT_LANG_DEFAULT_CONFIG],
-[AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [LT_LANG(CXX)],
- [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
-
-AC_PROVIDE_IFELSE([AC_PROG_F77],
- [LT_LANG(F77)],
- [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
-
-AC_PROVIDE_IFELSE([AC_PROG_FC],
- [LT_LANG(FC)],
- [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
-
-dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
-dnl pulling things in needlessly.
-AC_PROVIDE_IFELSE([AC_PROG_GCJ],
- [LT_LANG(GCJ)],
- [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
- [LT_LANG(GCJ)],
- [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
- [LT_LANG(GCJ)],
- [m4_ifdef([AC_PROG_GCJ],
- [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
- m4_ifdef([A][M_PROG_GCJ],
- [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
- m4_ifdef([LT_PROG_GCJ],
- [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
-
-AC_PROVIDE_IFELSE([AC_PROG_GO],
- [LT_LANG(GO)],
- [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
-
-AC_PROVIDE_IFELSE([LT_PROG_RC],
- [LT_LANG(RC)],
- [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
-])# _LT_LANG_DEFAULT_CONFIG
-
-# Obsolete macros:
-AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
-AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
-AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
-AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
-AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
-dnl AC_DEFUN([AC_LIBTOOL_F77], [])
-dnl AC_DEFUN([AC_LIBTOOL_FC], [])
-dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
-dnl AC_DEFUN([AC_LIBTOOL_RC], [])
-
-
-# _LT_TAG_COMPILER
-# ----------------
-m4_defun([_LT_TAG_COMPILER],
-[AC_REQUIRE([AC_PROG_CC])dnl
-
-_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
-_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
-_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
-_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-])# _LT_TAG_COMPILER
-
-
-# _LT_COMPILER_BOILERPLATE
-# ------------------------
-# Check for compiler boilerplate output or warnings with
-# the simple compiler test code.
-m4_defun([_LT_COMPILER_BOILERPLATE],
-[m4_require([_LT_DECL_SED])dnl
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-])# _LT_COMPILER_BOILERPLATE
-
-
-# _LT_LINKER_BOILERPLATE
-# ----------------------
-# Check for linker boilerplate output or warnings with
-# the simple link test code.
-m4_defun([_LT_LINKER_BOILERPLATE],
-[m4_require([_LT_DECL_SED])dnl
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-])# _LT_LINKER_BOILERPLATE
-
-# _LT_REQUIRED_DARWIN_CHECKS
-# -------------------------
-m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
- case $host_os in
- rhapsody* | darwin*)
- AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
- AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
- AC_CHECK_TOOL([LIPO], [lipo], [:])
- AC_CHECK_TOOL([OTOOL], [otool], [:])
- AC_CHECK_TOOL([OTOOL64], [otool64], [:])
- _LT_DECL([], [DSYMUTIL], [1],
- [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
- _LT_DECL([], [NMEDIT], [1],
- [Tool to change global to local symbols on Mac OS X])
- _LT_DECL([], [LIPO], [1],
- [Tool to manipulate fat objects and archives on Mac OS X])
- _LT_DECL([], [OTOOL], [1],
- [ldd/readelf like tool for Mach-O binaries on Mac OS X])
- _LT_DECL([], [OTOOL64], [1],
- [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
-
- AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
- [lt_cv_apple_cc_single_mod=no
- if test -z "${LT_MULTI_MODULE}"; then
- # By default we will add the -single_module flag. You can override
- # by either setting the environment variable LT_MULTI_MODULE
- # non-empty at configure time, or by adding -multi_module to the
- # link flags.
- rm -rf libconftest.dylib*
- echo "int foo(void){return 1;}" > conftest.c
- echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
- $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
- -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
- _lt_result=$?
- # If there is a non-empty error log, and "single_module"
- # appears in it, assume the flag caused a linker warning
- if test -s conftest.err && $GREP single_module conftest.err; then
- cat conftest.err >&AS_MESSAGE_LOG_FD
- # Otherwise, if the output was created with a 0 exit code from
- # the compiler, it worked.
- elif test -f libconftest.dylib && test $_lt_result -eq 0; then
- lt_cv_apple_cc_single_mod=yes
- else
- cat conftest.err >&AS_MESSAGE_LOG_FD
- fi
- rm -rf libconftest.dylib*
- rm -f conftest.*
- fi])
-
- AC_CACHE_CHECK([for -exported_symbols_list linker flag],
- [lt_cv_ld_exported_symbols_list],
- [lt_cv_ld_exported_symbols_list=no
- save_LDFLAGS=$LDFLAGS
- echo "_main" > conftest.sym
- LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
- AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
- [lt_cv_ld_exported_symbols_list=yes],
- [lt_cv_ld_exported_symbols_list=no])
- LDFLAGS="$save_LDFLAGS"
- ])
-
- AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
- [lt_cv_ld_force_load=no
- cat > conftest.c << _LT_EOF
-int forced_loaded() { return 2;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
- $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
- echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
- $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
- echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
- $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
- cat > conftest.c << _LT_EOF
-int main() { return 0;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
- $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
- _lt_result=$?
- if test -s conftest.err && $GREP force_load conftest.err; then
- cat conftest.err >&AS_MESSAGE_LOG_FD
- elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
- lt_cv_ld_force_load=yes
- else
- cat conftest.err >&AS_MESSAGE_LOG_FD
- fi
- rm -f conftest.err libconftest.a conftest conftest.c
- rm -rf conftest.dSYM
- ])
- case $host_os in
- rhapsody* | darwin1.[[012]])
- _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
- darwin1.*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
- darwin*) # darwin 5.x on
- # if running on 10.5 or later, the deployment target defaults
- # to the OS version, if on x86, and 10.4, the deployment
- # target defaults to 10.4. Don't you love it?
- case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
- 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
- 10.[[012]]*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
- 10.*)
- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
- esac
- ;;
- esac
- if test "$lt_cv_apple_cc_single_mod" = "yes"; then
- _lt_dar_single_mod='$single_module'
- fi
- if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
- _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
- else
- _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
- fi
- if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
- _lt_dsymutil='~$DSYMUTIL $lib || :'
- else
- _lt_dsymutil=
- fi
- ;;
- esac
-])
-
-
-# _LT_DARWIN_LINKER_FEATURES([TAG])
-# ---------------------------------
-# Checks for linker and compiler features on darwin
-m4_defun([_LT_DARWIN_LINKER_FEATURES],
-[
- m4_require([_LT_REQUIRED_DARWIN_CHECKS])
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_automatic, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
- if test "$lt_cv_ld_force_load" = "yes"; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
- m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
- [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes])
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)=''
- fi
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
- case $cc_basename in
- ifort*) _lt_dar_can_shared=yes ;;
- *) _lt_dar_can_shared=$GCC ;;
- esac
- if test "$_lt_dar_can_shared" = "yes"; then
- output_verbose_link_cmd=func_echo_all
- _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
- _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
- _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
- _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
- m4_if([$1], [CXX],
-[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then
- _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
- _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
- fi
-],[])
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
-])
-
-# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
-# ----------------------------------
-# Links a minimal program and checks the executable
-# for the system default hardcoded library path. In most cases,
-# this is /usr/lib:/lib, but when the MPI compilers are used
-# the location of the communication and MPI libs are included too.
-# If we don't find anything, use the default library path according
-# to the aix ld manual.
-# Store the results from the different compilers for each TAGNAME.
-# Allow to override them for all tags through lt_cv_aix_libpath.
-m4_defun([_LT_SYS_MODULE_PATH_AIX],
-[m4_require([_LT_DECL_SED])dnl
-if test "${lt_cv_aix_libpath+set}" = set; then
- aix_libpath=$lt_cv_aix_libpath
-else
- AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
- [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
- lt_aix_libpath_sed='[
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\([^ ]*\) *$/\1/
- p
- }
- }]'
- _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- # Check for a 64-bit object if we didn't find anything.
- if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
- _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- fi],[])
- if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
- _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib"
- fi
- ])
- aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
-fi
-])# _LT_SYS_MODULE_PATH_AIX
-
-
-# _LT_SHELL_INIT(ARG)
-# -------------------
-m4_define([_LT_SHELL_INIT],
-[m4_divert_text([M4SH-INIT], [$1
-])])# _LT_SHELL_INIT
-
-
-
-# _LT_PROG_ECHO_BACKSLASH
-# -----------------------
-# Find how we can fake an echo command that does not interpret backslash.
-# In particular, with Autoconf 2.60 or later we add some code to the start
-# of the generated configure script which will find a shell with a builtin
-# printf (which we can use as an echo command).
-m4_defun([_LT_PROG_ECHO_BACKSLASH],
-[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-
-AC_MSG_CHECKING([how to print strings])
-# Test print first, because it will be a builtin if present.
-if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
- test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='print -r --'
-elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='printf %s\n'
-else
- # Use this function as a fallback that always works.
- func_fallback_echo ()
- {
- eval 'cat <<_LTECHO_EOF
-$[]1
-_LTECHO_EOF'
- }
- ECHO='func_fallback_echo'
-fi
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
- $ECHO "$*"
-}
-
-case "$ECHO" in
- printf*) AC_MSG_RESULT([printf]) ;;
- print*) AC_MSG_RESULT([print -r]) ;;
- *) AC_MSG_RESULT([cat]) ;;
-esac
-
-m4_ifdef([_AS_DETECT_SUGGESTED],
-[_AS_DETECT_SUGGESTED([
- test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
- ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
- ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
- ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
- PATH=/empty FPATH=/empty; export PATH FPATH
- test "X`printf %s $ECHO`" = "X$ECHO" \
- || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
-
-_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
-_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
-])# _LT_PROG_ECHO_BACKSLASH
-
-
-# _LT_WITH_SYSROOT
-# ----------------
-AC_DEFUN([_LT_WITH_SYSROOT],
-[AC_MSG_CHECKING([for sysroot])
-AC_ARG_WITH([sysroot],
-[ --with-sysroot[=DIR] Search for dependent libraries within DIR
- (or the compiler's sysroot if not specified).],
-[], [with_sysroot=no])
-
-dnl lt_sysroot will always be passed unquoted. We quote it here
-dnl in case the user passed a directory name.
-lt_sysroot=
-case ${with_sysroot} in #(
- yes)
- if test "$GCC" = yes; then
- lt_sysroot=`$CC --print-sysroot 2>/dev/null`
- fi
- ;; #(
- /*)
- lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
- ;; #(
- no|'')
- ;; #(
- *)
- AC_MSG_RESULT([${with_sysroot}])
- AC_MSG_ERROR([The sysroot must be an absolute path.])
- ;;
-esac
-
- AC_MSG_RESULT([${lt_sysroot:-no}])
-_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
-[dependent libraries, and in which our libraries should be installed.])])
-
-# _LT_ENABLE_LOCK
-# ---------------
-m4_defun([_LT_ENABLE_LOCK],
-[AC_ARG_ENABLE([libtool-lock],
- [AS_HELP_STRING([--disable-libtool-lock],
- [avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case `/usr/bin/file conftest.$ac_objext` in
- *ELF-32*)
- HPUX_IA64_MODE="32"
- ;;
- *ELF-64*)
- HPUX_IA64_MODE="64"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-*-*-irix6*)
- # Find out which ABI we are using.
- echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- if test "$lt_cv_prog_gnu_ld" = yes; then
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -melf32bsmip"
- ;;
- *N32*)
- LD="${LD-ld} -melf32bmipn32"
- ;;
- *64-bit*)
- LD="${LD-ld} -melf64bmip"
- ;;
- esac
- else
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -32"
- ;;
- *N32*)
- LD="${LD-ld} -n32"
- ;;
- *64-bit*)
- LD="${LD-ld} -64"
- ;;
- esac
- fi
- fi
- rm -rf conftest*
- ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case `/usr/bin/file conftest.o` in
- *32-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_i386_fbsd"
- ;;
- x86_64-*linux*)
- LD="${LD-ld} -m elf_i386"
- ;;
- powerpc64le-*linux*)
- LD="${LD-ld} -m elf32lppclinux"
- ;;
- powerpc64-*linux*)
- LD="${LD-ld} -m elf32ppclinux"
- ;;
- s390x-*linux*)
- LD="${LD-ld} -m elf_s390"
- ;;
- sparc64-*linux*)
- LD="${LD-ld} -m elf32_sparc"
- ;;
- esac
- ;;
- *64-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_x86_64_fbsd"
- ;;
- x86_64-*linux*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- powerpcle-*linux*)
- LD="${LD-ld} -m elf64lppc"
- ;;
- powerpc-*linux*)
- LD="${LD-ld} -m elf64ppc"
- ;;
- s390*-*linux*|s390*-*tpf*)
- LD="${LD-ld} -m elf64_s390"
- ;;
- sparc*-*linux*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-*-*-sco3.2v5*)
- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -belf"
- AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
- [AC_LANG_PUSH(C)
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
- AC_LANG_POP])
- if test x"$lt_cv_cc_needs_belf" != x"yes"; then
- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
- CFLAGS="$SAVE_CFLAGS"
- fi
- ;;
-*-*solaris*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case `/usr/bin/file conftest.o` in
- *64-bit*)
- case $lt_cv_prog_gnu_ld in
- yes*)
- case $host in
- i?86-*-solaris*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- sparc*-*-solaris*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- # GNU ld 2.21 introduced _sol2 emulations. Use them if available.
- if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
- LD="${LD-ld}_sol2"
- fi
- ;;
- *)
- if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
- LD="${LD-ld} -64"
- fi
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-esac
-
-need_locks="$enable_libtool_lock"
-])# _LT_ENABLE_LOCK
-
-
-# _LT_PROG_AR
-# -----------
-m4_defun([_LT_PROG_AR],
-[AC_CHECK_TOOLS(AR, [ar], false)
-: ${AR=ar}
-: ${AR_FLAGS=cru}
-_LT_DECL([], [AR], [1], [The archiver])
-_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
-
-AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
- [lt_cv_ar_at_file=no
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
- [echo conftest.$ac_objext > conftest.lst
- lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
- AC_TRY_EVAL([lt_ar_try])
- if test "$ac_status" -eq 0; then
- # Ensure the archiver fails upon bogus file names.
- rm -f conftest.$ac_objext libconftest.a
- AC_TRY_EVAL([lt_ar_try])
- if test "$ac_status" -ne 0; then
- lt_cv_ar_at_file=@
- fi
- fi
- rm -f conftest.* libconftest.a
- ])
- ])
-
-if test "x$lt_cv_ar_at_file" = xno; then
- archiver_list_spec=
-else
- archiver_list_spec=$lt_cv_ar_at_file
-fi
-_LT_DECL([], [archiver_list_spec], [1],
- [How to feed a file listing to the archiver])
-])# _LT_PROG_AR
-
-
-# _LT_CMD_OLD_ARCHIVE
-# -------------------
-m4_defun([_LT_CMD_OLD_ARCHIVE],
-[_LT_PROG_AR
-
-AC_CHECK_TOOL(STRIP, strip, :)
-test -z "$STRIP" && STRIP=:
-_LT_DECL([], [STRIP], [1], [A symbol stripping program])
-
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-test -z "$RANLIB" && RANLIB=:
-_LT_DECL([], [RANLIB], [1],
- [Commands used to install an old-style archive])
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
- case $host_os in
- openbsd*)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
- ;;
- *)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
- ;;
- esac
- old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
-fi
-
-case $host_os in
- darwin*)
- lock_old_archive_extraction=yes ;;
- *)
- lock_old_archive_extraction=no ;;
-esac
-_LT_DECL([], [old_postinstall_cmds], [2])
-_LT_DECL([], [old_postuninstall_cmds], [2])
-_LT_TAGDECL([], [old_archive_cmds], [2],
- [Commands used to build an old-style archive])
-_LT_DECL([], [lock_old_archive_extraction], [0],
- [Whether to use a lock for old archive extraction])
-])# _LT_CMD_OLD_ARCHIVE
-
-
-# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------------------
-# Check whether the given compiler option works
-AC_DEFUN([_LT_COMPILER_OPTION],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
- [$2=no
- m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="$3"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&AS_MESSAGE_LOG_FD
- echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- $2=yes
- fi
- fi
- $RM conftest*
-])
-
-if test x"[$]$2" = xyes; then
- m4_if([$5], , :, [$5])
-else
- m4_if([$6], , :, [$6])
-fi
-])# _LT_COMPILER_OPTION
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
-
-
-# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-# [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------
-# Check whether the given linker option works
-AC_DEFUN([_LT_LINKER_OPTION],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
- [$2=no
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $3"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&AS_MESSAGE_LOG_FD
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- $2=yes
- fi
- else
- $2=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS="$save_LDFLAGS"
-])
-
-if test x"[$]$2" = xyes; then
- m4_if([$4], , :, [$4])
-else
- m4_if([$5], , :, [$5])
-fi
-])# _LT_LINKER_OPTION
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
-
-
-# LT_CMD_MAX_LEN
-#---------------
-AC_DEFUN([LT_CMD_MAX_LEN],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-# find the maximum length of command line arguments
-AC_MSG_CHECKING([the maximum length of command line arguments])
-AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
- i=0
- teststring="ABCD"
-
- case $build_os in
- msdosdjgpp*)
- # On DJGPP, this test can blow up pretty badly due to problems in libc
- # (any single argument exceeding 2000 bytes causes a buffer overrun
- # during glob expansion). Even if it were fixed, the result of this
- # check would be larger than it should be.
- lt_cv_sys_max_cmd_len=12288; # 12K is about right
- ;;
-
- gnu*)
- # Under GNU Hurd, this test is not required because there is
- # no limit to the length of command line arguments.
- # Libtool will interpret -1 as no limit whatsoever
- lt_cv_sys_max_cmd_len=-1;
- ;;
-
- cygwin* | mingw* | cegcc*)
- # On Win9x/ME, this test blows up -- it succeeds, but takes
- # about 5 minutes as the teststring grows exponentially.
- # Worse, since 9x/ME are not pre-emptively multitasking,
- # you end up with a "frozen" computer, even though with patience
- # the test eventually succeeds (with a max line length of 256k).
- # Instead, let's just punt: use the minimum linelength reported by
- # all of the supported platforms: 8192 (on NT/2K/XP).
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- mint*)
- # On MiNT this can take a long time and run out of memory.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- amigaos*)
- # On AmigaOS with pdksh, this test takes hours, literally.
- # So we just punt and use a minimum line length of 8192.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
- # This has been around since 386BSD, at least. Likely further.
- if test -x /sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
- elif test -x /usr/sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
- else
- lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
- fi
- # And add a safety zone
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- ;;
-
- interix*)
- # We know the value 262144 and hardcode it with a safety zone (like BSD)
- lt_cv_sys_max_cmd_len=196608
- ;;
-
- os2*)
- # The test takes a long time on OS/2.
- lt_cv_sys_max_cmd_len=8192
- ;;
-
- osf*)
- # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
- # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
- # nice to cause kernel panics so lets avoid the loop below.
- # First set a reasonable default.
- lt_cv_sys_max_cmd_len=16384
- #
- if test -x /sbin/sysconfig; then
- case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
- *1*) lt_cv_sys_max_cmd_len=-1 ;;
- esac
- fi
- ;;
- sco3.2v5*)
- lt_cv_sys_max_cmd_len=102400
- ;;
- sysv5* | sco5v6* | sysv4.2uw2*)
- kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
- if test -n "$kargmax"; then
- lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'`
- else
- lt_cv_sys_max_cmd_len=32768
- fi
- ;;
- *)
- lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
- if test -n "$lt_cv_sys_max_cmd_len"; then
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- else
- # Make teststring a little bigger before we do anything with it.
- # a 1K string should be a reasonable start.
- for i in 1 2 3 4 5 6 7 8 ; do
- teststring=$teststring$teststring
- done
- SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
- # If test is not a shell built-in, we'll probably end up computing a
- # maximum length that is only half of the actual maximum length, but
- # we can't tell.
- while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
- = "X$teststring$teststring"; } >/dev/null 2>&1 &&
- test $i != 17 # 1/2 MB should be enough
- do
- i=`expr $i + 1`
- teststring=$teststring$teststring
- done
- # Only check the string length outside the loop.
- lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
- teststring=
- # Add a significant safety factor because C++ compilers can tack on
- # massive amounts of additional arguments before passing them to the
- # linker. It appears as though 1/2 is a usable value.
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
- fi
- ;;
- esac
-])
-if test -n $lt_cv_sys_max_cmd_len ; then
- AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
-else
- AC_MSG_RESULT(none)
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
-_LT_DECL([], [max_cmd_len], [0],
- [What is the maximum length of a command?])
-])# LT_CMD_MAX_LEN
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
-
-
-# _LT_HEADER_DLFCN
-# ----------------
-m4_defun([_LT_HEADER_DLFCN],
-[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
-])# _LT_HEADER_DLFCN
-
-
-# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
-# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
-# ----------------------------------------------------------------
-m4_defun([_LT_TRY_DLOPEN_SELF],
-[m4_require([_LT_HEADER_DLFCN])dnl
-if test "$cross_compiling" = yes; then :
- [$4]
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
-[#line $LINENO "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-/* When -fvisbility=hidden is used, assume the code has been annotated
- correspondingly for the symbols needed. */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
-
-int fnord () { return 42; }
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
-
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else
- {
- if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- else puts (dlerror ());
- }
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
-
- return status;
-}]
-_LT_EOF
- if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
- (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) $1 ;;
- x$lt_dlneed_uscore) $2 ;;
- x$lt_dlunknown|x*) $3 ;;
- esac
- else :
- # compilation failed
- $3
- fi
-fi
-rm -fr conftest*
-])# _LT_TRY_DLOPEN_SELF
-
-
-# LT_SYS_DLOPEN_SELF
-# ------------------
-AC_DEFUN([LT_SYS_DLOPEN_SELF],
-[m4_require([_LT_HEADER_DLFCN])dnl
-if test "x$enable_dlopen" != xyes; then
- enable_dlopen=unknown
- enable_dlopen_self=unknown
- enable_dlopen_self_static=unknown
-else
- lt_cv_dlopen=no
- lt_cv_dlopen_libs=
-
- case $host_os in
- beos*)
- lt_cv_dlopen="load_add_on"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
- ;;
-
- mingw* | pw32* | cegcc*)
- lt_cv_dlopen="LoadLibrary"
- lt_cv_dlopen_libs=
- ;;
-
- cygwin*)
- lt_cv_dlopen="dlopen"
- lt_cv_dlopen_libs=
- ;;
-
- darwin*)
- # if libdl is installed we need to link against it
- AC_CHECK_LIB([dl], [dlopen],
- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
- lt_cv_dlopen="dyld"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
- ])
- ;;
-
- *)
- AC_CHECK_FUNC([shl_load],
- [lt_cv_dlopen="shl_load"],
- [AC_CHECK_LIB([dld], [shl_load],
- [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
- [AC_CHECK_FUNC([dlopen],
- [lt_cv_dlopen="dlopen"],
- [AC_CHECK_LIB([dl], [dlopen],
- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
- [AC_CHECK_LIB([svld], [dlopen],
- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
- [AC_CHECK_LIB([dld], [dld_link],
- [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
- ])
- ])
- ])
- ])
- ])
- ;;
- esac
-
- if test "x$lt_cv_dlopen" != xno; then
- enable_dlopen=yes
- else
- enable_dlopen=no
- fi
-
- case $lt_cv_dlopen in
- dlopen)
- save_CPPFLAGS="$CPPFLAGS"
- test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
- save_LDFLAGS="$LDFLAGS"
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
- save_LIBS="$LIBS"
- LIBS="$lt_cv_dlopen_libs $LIBS"
-
- AC_CACHE_CHECK([whether a program can dlopen itself],
- lt_cv_dlopen_self, [dnl
- _LT_TRY_DLOPEN_SELF(
- lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
- lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
- ])
-
- if test "x$lt_cv_dlopen_self" = xyes; then
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
- AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
- lt_cv_dlopen_self_static, [dnl
- _LT_TRY_DLOPEN_SELF(
- lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
- lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross)
- ])
- fi
-
- CPPFLAGS="$save_CPPFLAGS"
- LDFLAGS="$save_LDFLAGS"
- LIBS="$save_LIBS"
- ;;
- esac
-
- case $lt_cv_dlopen_self in
- yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
- *) enable_dlopen_self=unknown ;;
- esac
-
- case $lt_cv_dlopen_self_static in
- yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
- *) enable_dlopen_self_static=unknown ;;
- esac
-fi
-_LT_DECL([dlopen_support], [enable_dlopen], [0],
- [Whether dlopen is supported])
-_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
- [Whether dlopen of programs is supported])
-_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
- [Whether dlopen of statically linked programs is supported])
-])# LT_SYS_DLOPEN_SELF
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
-
-
-# _LT_COMPILER_C_O([TAGNAME])
-# ---------------------------
-# Check to see if options -c and -o are simultaneously supported by compiler.
-# This macro does not hard code the compiler like AC_PROG_CC_C_O.
-m4_defun([_LT_COMPILER_C_O],
-[m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
- [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
- [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&AS_MESSAGE_LOG_FD
- echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
- fi
- fi
- chmod u+w . 2>&AS_MESSAGE_LOG_FD
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
-])
-_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
- [Does compiler simultaneously support -c and -o options?])
-])# _LT_COMPILER_C_O
-
-
-# _LT_COMPILER_FILE_LOCKS([TAGNAME])
-# ----------------------------------
-# Check to see if we can do hard links to lock some files if needed
-m4_defun([_LT_COMPILER_FILE_LOCKS],
-[m4_require([_LT_ENABLE_LOCK])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-_LT_COMPILER_C_O([$1])
-
-hard_links="nottested"
-if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
- # do not overwrite the value of need_locks provided by the user
- AC_MSG_CHECKING([if we can lock with hard links])
- hard_links=yes
- $RM conftest*
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- touch conftest.a
- ln conftest.a conftest.b 2>&5 || hard_links=no
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- AC_MSG_RESULT([$hard_links])
- if test "$hard_links" = no; then
- AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
- need_locks=warn
- fi
-else
- need_locks=no
-fi
-_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
-])# _LT_COMPILER_FILE_LOCKS
-
-
-# _LT_CHECK_OBJDIR
-# ----------------
-m4_defun([_LT_CHECK_OBJDIR],
-[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
-[rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
- lt_cv_objdir=.libs
-else
- # MS-DOS does not allow filenames that begin with a dot.
- lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null])
-objdir=$lt_cv_objdir
-_LT_DECL([], [objdir], [0],
- [The name of the directory that contains temporary libtool files])dnl
-m4_pattern_allow([LT_OBJDIR])dnl
-AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/",
- [Define to the sub-directory in which libtool stores uninstalled libraries.])
-])# _LT_CHECK_OBJDIR
-
-
-# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
-# --------------------------------------
-# Check hardcoding attributes.
-m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
-[AC_MSG_CHECKING([how to hardcode library paths into programs])
-_LT_TAGVAR(hardcode_action, $1)=
-if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
- test -n "$_LT_TAGVAR(runpath_var, $1)" ||
- test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
-
- # We can hardcode non-existent directories.
- if test "$_LT_TAGVAR(hardcode_direct, $1)" != no &&
- # If the only mechanism to avoid hardcoding is shlibpath_var, we
- # have to relink, otherwise we might link with an installed library
- # when we should be linking with a yet-to-be-installed one
- ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
- test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then
- # Linking always hardcodes the temporary library directory.
- _LT_TAGVAR(hardcode_action, $1)=relink
- else
- # We can link without hardcoding, and we can hardcode nonexisting dirs.
- _LT_TAGVAR(hardcode_action, $1)=immediate
- fi
-else
- # We cannot hardcode anything, or else we can only hardcode existing
- # directories.
- _LT_TAGVAR(hardcode_action, $1)=unsupported
-fi
-AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
-
-if test "$_LT_TAGVAR(hardcode_action, $1)" = relink ||
- test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then
- # Fast installation is not supported
- enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
- test "$enable_shared" = no; then
- # Fast installation is not necessary
- enable_fast_install=needless
-fi
-_LT_TAGDECL([], [hardcode_action], [0],
- [How to hardcode a shared library path into an executable])
-])# _LT_LINKER_HARDCODE_LIBPATH
-
-
-# _LT_CMD_STRIPLIB
-# ----------------
-m4_defun([_LT_CMD_STRIPLIB],
-[m4_require([_LT_DECL_EGREP])
-striplib=
-old_striplib=
-AC_MSG_CHECKING([whether stripping libraries is possible])
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
- test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
- test -z "$striplib" && striplib="$STRIP --strip-unneeded"
- AC_MSG_RESULT([yes])
-else
-# FIXME - insert some real tests, host_os isn't really good enough
- case $host_os in
- darwin*)
- if test -n "$STRIP" ; then
- striplib="$STRIP -x"
- old_striplib="$STRIP -S"
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- fi
- ;;
- *)
- AC_MSG_RESULT([no])
- ;;
- esac
-fi
-_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
-_LT_DECL([], [striplib], [1])
-])# _LT_CMD_STRIPLIB
-
-
-# _LT_SYS_DYNAMIC_LINKER([TAG])
-# -----------------------------
-# PORTME Fill in your ld.so characteristics
-m4_defun([_LT_SYS_DYNAMIC_LINKER],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_OBJDUMP])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_CHECK_SHELL_FEATURES])dnl
-AC_MSG_CHECKING([dynamic linker characteristics])
-m4_if([$1],
- [], [
-if test "$GCC" = yes; then
- case $host_os in
- darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
- *) lt_awk_arg="/^libraries:/" ;;
- esac
- case $host_os in
- mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;;
- *) lt_sed_strip_eq="s,=/,/,g" ;;
- esac
- lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
- case $lt_search_path_spec in
- *\;*)
- # if the path contains ";" then we assume it to be the separator
- # otherwise default to the standard path separator (i.e. ":") - it is
- # assumed that no part of a normal pathname contains ";" but that should
- # okay in the real world where ";" in dirpaths is itself problematic.
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
- ;;
- *)
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
- ;;
- esac
- # Ok, now we have the path, separated by spaces, we can step through it
- # and add multilib dir if necessary.
- lt_tmp_lt_search_path_spec=
- lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
- for lt_sys_path in $lt_search_path_spec; do
- if test -d "$lt_sys_path/$lt_multi_os_dir"; then
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
- else
- test -d "$lt_sys_path" && \
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
- fi
- done
- lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS=" "; FS="/|\n";} {
- lt_foo="";
- lt_count=0;
- for (lt_i = NF; lt_i > 0; lt_i--) {
- if ($lt_i != "" && $lt_i != ".") {
- if ($lt_i == "..") {
- lt_count++;
- } else {
- if (lt_count == 0) {
- lt_foo="/" $lt_i lt_foo;
- } else {
- lt_count--;
- }
- }
- }
- }
- if (lt_foo != "") { lt_freq[[lt_foo]]++; }
- if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
-}'`
- # AWK program above erroneously prepends '/' to C:/dos/paths
- # for these hosts.
- case $host_os in
- mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
- $SED 's,/\([[A-Za-z]]:\),\1,g'` ;;
- esac
- sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
-else
- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi])
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
-
-aix[[4-9]]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- hardcode_into_libs=yes
- if test "$host_cpu" = ia64; then
- # AIX 5 supports IA64
- library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- else
- # With GCC up to 2.95.x, collect2 would create an import file
- # for dependence libraries. The import file would start with
- # the line `#! .'. This would cause the generated library to
- # depend on `.', always an invalid library. This was fixed in
- # development snapshots of GCC prior to 3.0.
- case $host_os in
- aix4 | aix4.[[01]] | aix4.[[01]].*)
- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
- echo ' yes '
- echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
- :
- else
- can_build_shared=no
- fi
- ;;
- esac
- # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
- # soname into executable. Probably we can add versioning support to
- # collect2, so additional links can be useful in future.
- if test "$aix_use_runtimelinking" = yes; then
- # If using run time linking (on AIX 4.2 or later) use lib<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- else
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='${libname}${release}.a $libname.a'
- soname_spec='${libname}${release}${shared_ext}$major'
- fi
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- case $host_cpu in
- powerpc)
- # Since July 2007 AmigaOS4 officially supports .so libraries.
- # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- ;;
- m68k)
- library_names_spec='$libname.ixlibrary $libname.a'
- # Create ${libname}_ixlibrary.a entries in /sys/libs.
- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
- ;;
- esac
- ;;
-
-beos*)
- library_names_spec='${libname}${shared_ext}'
- dynamic_linker="$host_os ld.so"
- shlibpath_var=LIBRARY_PATH
- ;;
-
-bsdi[[45]]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
- # the default ld.so.conf also contains /usr/contrib/lib and
- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
- # libtool to hard-code these into programs
- ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
- version_type=windows
- shrext_cmds=".dll"
- need_version=no
- need_lib_prefix=no
-
- case $GCC,$cc_basename in
- yes,*)
- # gcc
- library_names_spec='$libname.dll.a'
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname~
- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
- fi'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-m4_if([$1], [],[
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
- ;;
- mingw* | cegcc*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- ;;
-
- *,cl*)
- # Native MSVC
- libname_spec='$name'
- soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
- library_names_spec='${libname}.dll.lib'
-
- case $build_os in
- mingw*)
- sys_lib_search_path_spec=
- lt_save_ifs=$IFS
- IFS=';'
- for lt_path in $LIB
- do
- IFS=$lt_save_ifs
- # Let DOS variable expansion print the short 8.3 style file name.
- lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
- sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
- done
- IFS=$lt_save_ifs
- # Convert to MSYS style.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
- ;;
- cygwin*)
- # Convert to unix form, then to dos form, then back to unix form
- # but this time dos style (no spaces!) so that the unix form looks
- # like /cygdrive/c/PROGRA~1:/cygdr...
- sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
- sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
- sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- ;;
- *)
- sys_lib_search_path_spec="$LIB"
- if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
- # It is most probably a Windows format PATH.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
- # FIXME: find the short name or the path components, as spaces are
- # common. (e.g. "Program Files" -> "PROGRA~1")
- ;;
- esac
-
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
- dynamic_linker='Win32 link.exe'
- ;;
-
- *)
- # Assume MSVC wrapper
- library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
- dynamic_linker='Win32 ld.exe'
- ;;
- esac
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
- soname_spec='${libname}${release}${major}$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-m4_if([$1], [],[
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
- ;;
-
-dgux*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-freebsd* | dragonfly*)
- # DragonFly does not have aout. When/if they implement a new
- # versioning mechanism, adjust this.
- if test -x /usr/bin/objformat; then
- objformat=`/usr/bin/objformat`
- else
- case $host_os in
- freebsd[[23]].*) objformat=aout ;;
- *) objformat=elf ;;
- esac
- fi
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2.*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.[[01]]* | freebsdelf3.[[01]]*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
- freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
- *) # from 4.6 on, and DragonFly
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- esac
- ;;
-
-gnu*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-haiku*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- dynamic_linker="$host_os runtime_loader"
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
- hardcode_into_libs=yes
- ;;
-
-hpux9* | hpux10* | hpux11*)
- # Give a soname corresponding to the major version so that dld.sl refuses to
- # link against other versions.
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- case $host_cpu in
- ia64*)
- shrext_cmds='.so'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.so"
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- if test "X$HPUX_IA64_MODE" = X32; then
- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
- else
- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
- fi
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- hppa*64*)
- shrext_cmds='.sl'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- *)
- shrext_cmds='.sl'
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=SHLIB_PATH
- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
- esac
- # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
- postinstall_cmds='chmod 555 $lib'
- # or fails outright, so override atomically:
- install_override_mode=555
- ;;
-
-interix[[3-9]]*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $host_os in
- nonstopux*) version_type=nonstopux ;;
- *)
- if test "$lt_cv_prog_gnu_ld" = yes; then
- version_type=linux # correct to gnu/linux during the next big refactor
- else
- version_type=irix
- fi ;;
- esac
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
- case $host_os in
- irix5* | nonstopux*)
- libsuff= shlibsuff=
- ;;
- *)
- case $LD in # libtool.m4 will add one of these switches to LD
- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
- libsuff= shlibsuff= libmagic=32-bit;;
- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
- libsuff=32 shlibsuff=N32 libmagic=N32;;
- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
- libsuff=64 shlibsuff=64 libmagic=64-bit;;
- *) libsuff= shlibsuff= libmagic=never-match;;
- esac
- ;;
- esac
- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
- hardcode_into_libs=yes
- ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
- dynamic_linker=no
- ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
-
- # Some binutils ld are patched to set DT_RUNPATH
- AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
- [lt_cv_shlibpath_overrides_runpath=no
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
- LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
- AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
- [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
- [lt_cv_shlibpath_overrides_runpath=yes])])
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
- ])
- shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-
- # This implies no fast_install, which is unacceptable.
- # Some rework will be needed to allow for fast_install
- # before this can be enabled.
- hardcode_into_libs=yes
-
- # Add ABI-specific directories to the system library path.
- sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
-
- # Append ld.so.conf contents to the search path
- if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
-
- fi
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='NetBSD ld.elf_so'
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
-
-newsos6)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-*nto* | *qnx*)
- version_type=qnx
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='ldqnx.so'
- ;;
-
-openbsd*)
- version_type=sunos
- sys_lib_dlsearch_path_spec="/usr/lib"
- need_lib_prefix=no
- # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
- case $host_os in
- openbsd3.3 | openbsd3.3.*) need_version=yes ;;
- *) need_version=no ;;
- esac
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- case $host_os in
- openbsd2.[[89]] | openbsd2.[[89]].*)
- shlibpath_overrides_runpath=no
- ;;
- *)
- shlibpath_overrides_runpath=yes
- ;;
- esac
- else
- shlibpath_overrides_runpath=yes
- fi
- ;;
-
-os2*)
- libname_spec='$name'
- shrext_cmds=".dll"
- need_lib_prefix=no
- library_names_spec='$libname${shared_ext} $libname.a'
- dynamic_linker='OS/2 ld.exe'
- shlibpath_var=LIBPATH
- ;;
-
-osf3* | osf4* | osf5*)
- version_type=osf
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
- ;;
-
-rdos*)
- dynamic_linker=no
- ;;
-
-solaris*)
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- # ldd complains unless libraries are executable
- postinstall_cmds='chmod +x $lib'
- ;;
-
-sunos4*)
- version_type=sunos
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- if test "$with_gnu_ld" = yes; then
- need_lib_prefix=no
- fi
- need_version=yes
- ;;
-
-sysv4 | sysv4.3*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- case $host_vendor in
- sni)
- shlibpath_overrides_runpath=no
- need_lib_prefix=no
- runpath_var=LD_RUN_PATH
- ;;
- siemens)
- need_lib_prefix=no
- ;;
- motorola)
- need_lib_prefix=no
- need_version=no
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
- ;;
- esac
- ;;
-
-sysv4*MP*)
- if test -d /usr/nec ;then
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
- soname_spec='$libname${shared_ext}.$major'
- shlibpath_var=LD_LIBRARY_PATH
- fi
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- version_type=freebsd-elf
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- if test "$with_gnu_ld" = yes; then
- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
- else
- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
- case $host_os in
- sco3.2v5*)
- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
- ;;
- esac
- fi
- sys_lib_dlsearch_path_spec='/usr/lib'
- ;;
-
-tpf*)
- # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
- version_type=linux # correct to gnu/linux during the next big refactor
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-uts4*)
- version_type=linux # correct to gnu/linux during the next big refactor
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-*)
- dynamic_linker=no
- ;;
-esac
-AC_MSG_RESULT([$dynamic_linker])
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
- sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
- sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-_LT_DECL([], [variables_saved_for_relink], [1],
- [Variables whose values should be saved in libtool wrapper scripts and
- restored at link time])
-_LT_DECL([], [need_lib_prefix], [0],
- [Do we need the "lib" prefix for modules?])
-_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
-_LT_DECL([], [version_type], [0], [Library versioning type])
-_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable])
-_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
-_LT_DECL([], [shlibpath_overrides_runpath], [0],
- [Is shlibpath searched before the hard-coded library search path?])
-_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
-_LT_DECL([], [library_names_spec], [1],
- [[List of archive names. First name is the real one, the rest are links.
- The last name is the one that the linker finds with -lNAME]])
-_LT_DECL([], [soname_spec], [1],
- [[The coded name of the library, if different from the real name]])
-_LT_DECL([], [install_override_mode], [1],
- [Permission mode override for installation of shared libraries])
-_LT_DECL([], [postinstall_cmds], [2],
- [Command to use after installation of a shared archive])
-_LT_DECL([], [postuninstall_cmds], [2],
- [Command to use after uninstallation of a shared archive])
-_LT_DECL([], [finish_cmds], [2],
- [Commands used to finish a libtool library installation in a directory])
-_LT_DECL([], [finish_eval], [1],
- [[As "finish_cmds", except a single script fragment to be evaled but
- not shown]])
-_LT_DECL([], [hardcode_into_libs], [0],
- [Whether we should hardcode library paths into libraries])
-_LT_DECL([], [sys_lib_search_path_spec], [2],
- [Compile-time system search path for libraries])
-_LT_DECL([], [sys_lib_dlsearch_path_spec], [2],
- [Run-time system search path for libraries])
-])# _LT_SYS_DYNAMIC_LINKER
-
-
-# _LT_PATH_TOOL_PREFIX(TOOL)
-# --------------------------
-# find a file program which can recognize shared library
-AC_DEFUN([_LT_PATH_TOOL_PREFIX],
-[m4_require([_LT_DECL_EGREP])dnl
-AC_MSG_CHECKING([for $1])
-AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
-[case $MAGIC_CMD in
-[[\\/*] | ?:[\\/]*])
- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD="$MAGIC_CMD"
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-dnl $ac_dummy forces splitting on constant user-supplied paths.
-dnl POSIX.2 word splitting is done only on the output of word expansions,
-dnl not every word. This closes a longstanding sh security hole.
- ac_dummy="m4_if([$2], , $PATH, [$2])"
- for ac_dir in $ac_dummy; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$1; then
- lt_cv_path_MAGIC_CMD="$ac_dir/$1"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool at gnu.org
-
-_LT_EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$lt_save_ifs"
- MAGIC_CMD="$lt_save_MAGIC_CMD"
- ;;
-esac])
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
- AC_MSG_RESULT($MAGIC_CMD)
-else
- AC_MSG_RESULT(no)
-fi
-_LT_DECL([], [MAGIC_CMD], [0],
- [Used to examine libraries when file_magic_cmd begins with "file"])dnl
-])# _LT_PATH_TOOL_PREFIX
-
-# Old name:
-AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
-
-
-# _LT_PATH_MAGIC
-# --------------
-# find a file program which can recognize a shared library
-m4_defun([_LT_PATH_MAGIC],
-[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
-if test -z "$lt_cv_path_MAGIC_CMD"; then
- if test -n "$ac_tool_prefix"; then
- _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
- else
- MAGIC_CMD=:
- fi
-fi
-])# _LT_PATH_MAGIC
-
-
-# LT_PATH_LD
-# ----------
-# find the pathname to the GNU or non-GNU linker
-AC_DEFUN([LT_PATH_LD],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
-
-AC_ARG_WITH([gnu-ld],
- [AS_HELP_STRING([--with-gnu-ld],
- [assume the C compiler uses GNU ld @<:@default=no@:>@])],
- [test "$withval" = no || with_gnu_ld=yes],
- [with_gnu_ld=no])dnl
-
-ac_prog=ld
-if test "$GCC" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- AC_MSG_CHECKING([for ld used by $CC])
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [[\\/]]* | ?:[[\\/]]*)
- re_direlt='/[[^/]][[^/]]*/\.\./'
- # Canonicalize the pathname of ld
- ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
- while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- AC_MSG_CHECKING([for GNU ld])
-else
- AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(lt_cv_path_LD,
-[if test -z "$LD"; then
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- lt_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some variants of GNU ld only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
- *GNU* | *'with BFD'*)
- test "$with_gnu_ld" != no && break
- ;;
- *)
- test "$with_gnu_ld" != yes && break
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
-else
- lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
- AC_MSG_RESULT($LD)
-else
- AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-_LT_PATH_LD_GNU
-AC_SUBST([LD])
-
-_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
-])# LT_PATH_LD
-
-# Old names:
-AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
-AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_PROG_LD], [])
-dnl AC_DEFUN([AC_PROG_LD], [])
-
-
-# _LT_PATH_LD_GNU
-#- --------------
-m4_defun([_LT_PATH_LD_GNU],
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- lt_cv_prog_gnu_ld=yes
- ;;
-*)
- lt_cv_prog_gnu_ld=no
- ;;
-esac])
-with_gnu_ld=$lt_cv_prog_gnu_ld
-])# _LT_PATH_LD_GNU
-
-
-# _LT_CMD_RELOAD
-# --------------
-# find reload flag for linker
-# -- PORTME Some linkers may need a different reload flag.
-m4_defun([_LT_CMD_RELOAD],
-[AC_CACHE_CHECK([for $LD option to reload object files],
- lt_cv_ld_reload_flag,
- [lt_cv_ld_reload_flag='-r'])
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- if test "$GCC" != yes; then
- reload_cmds=false
- fi
- ;;
- darwin*)
- if test "$GCC" = yes; then
- reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
- else
- reload_cmds='$LD$reload_flag -o $output$reload_objs'
- fi
- ;;
-esac
-_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
-_LT_TAGDECL([], [reload_cmds], [2])dnl
-])# _LT_CMD_RELOAD
-
-
-# _LT_CHECK_MAGIC_METHOD
-# ----------------------
-# how to check for library dependencies
-# -- PORTME fill in with the dynamic library characteristics
-m4_defun([_LT_CHECK_MAGIC_METHOD],
-[m4_require([_LT_DECL_EGREP])
-m4_require([_LT_DECL_OBJDUMP])
-AC_CACHE_CHECK([how to recognize dependent libraries],
-lt_cv_deplibs_check_method,
-[lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix[[4-9]]*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-beos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-bsdi[[45]]*)
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=/shlib/libc.so
- ;;
-
-cygwin*)
- # func_win32_libid is a shell function defined in ltmain.sh
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- ;;
-
-mingw* | pw32*)
- # Base MSYS/MinGW do not provide the 'file' command needed by
- # func_win32_libid shell function, so use a weaker test based on 'objdump',
- # unless we find 'file', for example because we are cross-compiling.
- # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
- if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- else
- # Keep this pattern in sync with the one in func_win32_libid.
- lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- fi
- ;;
-
-cegcc*)
- # use the weaker test based on 'objdump'. See mingw*.
- lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- ;;
-
-darwin* | rhapsody*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-freebsd* | dragonfly*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- case $host_cpu in
- i*86 )
- # Not sure whether the presence of OpenBSD here was a mistake.
- # Let's accept both of them until this is cleared up.
- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
- ;;
- esac
- else
- lt_cv_deplibs_check_method=pass_all
- fi
- ;;
-
-gnu*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-haiku*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-hpux10.20* | hpux11*)
- lt_cv_file_magic_cmd=/usr/bin/file
- case $host_cpu in
- ia64*)
- lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
- lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
- ;;
- hppa*64*)
- [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
- lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
- ;;
- *)
- lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
- lt_cv_file_magic_test_file=/usr/lib/libc.sl
- ;;
- esac
- ;;
-
-interix[[3-9]]*)
- # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $LD in
- *-32|*"-32 ") libmagic=32-bit;;
- *-n32|*"-n32 ") libmagic=N32;;
- *-64|*"-64 ") libmagic=64-bit;;
- *) libmagic=never-match;;
- esac
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
- fi
- ;;
-
-newos6*)
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/libnls.so
- ;;
-
-*nto* | *qnx*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-openbsd*)
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
- fi
- ;;
-
-osf3* | osf4* | osf5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-rdos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-solaris*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv4 | sysv4.3*)
- case $host_vendor in
- motorola)
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- ;;
- ncr)
- lt_cv_deplibs_check_method=pass_all
- ;;
- sequent)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
- ;;
- sni)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
- lt_cv_file_magic_test_file=/lib/libc.so
- ;;
- siemens)
- lt_cv_deplibs_check_method=pass_all
- ;;
- pc)
- lt_cv_deplibs_check_method=pass_all
- ;;
- esac
- ;;
-
-tpf*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-esac
-])
-
-file_magic_glob=
-want_nocaseglob=no
-if test "$build" = "$host"; then
- case $host_os in
- mingw* | pw32*)
- if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
- want_nocaseglob=yes
- else
- file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
- fi
- ;;
- esac
-fi
-
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-_LT_DECL([], [deplibs_check_method], [1],
- [Method to check whether dependent libraries are shared objects])
-_LT_DECL([], [file_magic_cmd], [1],
- [Command to use when deplibs_check_method = "file_magic"])
-_LT_DECL([], [file_magic_glob], [1],
- [How to find potential files when deplibs_check_method = "file_magic"])
-_LT_DECL([], [want_nocaseglob], [1],
- [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
-])# _LT_CHECK_MAGIC_METHOD
-
-
-# LT_PATH_NM
-# ----------
-# find the pathname to a BSD- or MS-compatible name lister
-AC_DEFUN([LT_PATH_NM],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
-[if test -n "$NM"; then
- # Let the user override the test.
- lt_cv_path_NM="$NM"
-else
- lt_nm_to_check="${ac_tool_prefix}nm"
- if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
- lt_nm_to_check="$lt_nm_to_check nm"
- fi
- for lt_tmp_nm in $lt_nm_to_check; do
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- tmp_nm="$ac_dir/$lt_tmp_nm"
- if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- # Tru64's nm complains that /dev/null is an invalid object file
- case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
- */dev/null* | *'Invalid file or object type'*)
- lt_cv_path_NM="$tmp_nm -B"
- break
- ;;
- *)
- case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
- */dev/null*)
- lt_cv_path_NM="$tmp_nm -p"
- break
- ;;
- *)
- lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- ;;
- esac
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
- done
- : ${lt_cv_path_NM=no}
-fi])
-if test "$lt_cv_path_NM" != "no"; then
- NM="$lt_cv_path_NM"
-else
- # Didn't find any BSD compatible name lister, look for dumpbin.
- if test -n "$DUMPBIN"; then :
- # Let the user override the test.
- else
- AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
- case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
- *COFF*)
- DUMPBIN="$DUMPBIN -symbols"
- ;;
- *)
- DUMPBIN=:
- ;;
- esac
- fi
- AC_SUBST([DUMPBIN])
- if test "$DUMPBIN" != ":"; then
- NM="$DUMPBIN"
- fi
-fi
-test -z "$NM" && NM=nm
-AC_SUBST([NM])
-_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
-
-AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
- [lt_cv_nm_interface="BSD nm"
- echo "int some_variable = 0;" > conftest.$ac_ext
- (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
- (eval "$ac_compile" 2>conftest.err)
- cat conftest.err >&AS_MESSAGE_LOG_FD
- (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
- (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
- cat conftest.err >&AS_MESSAGE_LOG_FD
- (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
- cat conftest.out >&AS_MESSAGE_LOG_FD
- if $GREP 'External.*some_variable' conftest.out > /dev/null; then
- lt_cv_nm_interface="MS dumpbin"
- fi
- rm -f conftest*])
-])# LT_PATH_NM
-
-# Old names:
-AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
-AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_PROG_NM], [])
-dnl AC_DEFUN([AC_PROG_NM], [])
-
-# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
-# --------------------------------
-# how to determine the name of the shared library
-# associated with a specific link library.
-# -- PORTME fill in with the dynamic library characteristics
-m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
-[m4_require([_LT_DECL_EGREP])
-m4_require([_LT_DECL_OBJDUMP])
-m4_require([_LT_DECL_DLLTOOL])
-AC_CACHE_CHECK([how to associate runtime and link libraries],
-lt_cv_sharedlib_from_linklib_cmd,
-[lt_cv_sharedlib_from_linklib_cmd='unknown'
-
-case $host_os in
-cygwin* | mingw* | pw32* | cegcc*)
- # two different shell functions defined in ltmain.sh
- # decide which to use based on capabilities of $DLLTOOL
- case `$DLLTOOL --help 2>&1` in
- *--identify-strict*)
- lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
- ;;
- *)
- lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
- ;;
- esac
- ;;
-*)
- # fallback: assume linklib IS sharedlib
- lt_cv_sharedlib_from_linklib_cmd="$ECHO"
- ;;
-esac
-])
-sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
-test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
-
-_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
- [Command to associate shared and link libraries])
-])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
-
-
-# _LT_PATH_MANIFEST_TOOL
-# ----------------------
-# locate the manifest tool
-m4_defun([_LT_PATH_MANIFEST_TOOL],
-[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
-test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
- [lt_cv_path_mainfest_tool=no
- echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
- $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
- cat conftest.err >&AS_MESSAGE_LOG_FD
- if $GREP 'Manifest Tool' conftest.out > /dev/null; then
- lt_cv_path_mainfest_tool=yes
- fi
- rm -f conftest*])
-if test "x$lt_cv_path_mainfest_tool" != xyes; then
- MANIFEST_TOOL=:
-fi
-_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
-])# _LT_PATH_MANIFEST_TOOL
-
-
-# LT_LIB_M
-# --------
-# check for math library
-AC_DEFUN([LT_LIB_M],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-LIBM=
-case $host in
-*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
- # These system don't have libm, or don't need it
- ;;
-*-ncr-sysv4.3*)
- AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
- AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
- ;;
-*)
- AC_CHECK_LIB(m, cos, LIBM="-lm")
- ;;
-esac
-AC_SUBST([LIBM])
-])# LT_LIB_M
-
-# Old name:
-AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_CHECK_LIBM], [])
-
-
-# _LT_COMPILER_NO_RTTI([TAGNAME])
-# -------------------------------
-m4_defun([_LT_COMPILER_NO_RTTI],
-[m4_require([_LT_TAG_COMPILER])dnl
-
-_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-
-if test "$GCC" = yes; then
- case $cc_basename in
- nvcc*)
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
- esac
-
- _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
- lt_cv_prog_compiler_rtti_exceptions,
- [-fno-rtti -fno-exceptions], [],
- [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
-fi
-_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
- [Compiler flag to turn off builtin functions])
-])# _LT_COMPILER_NO_RTTI
-
-
-# _LT_CMD_GLOBAL_SYMBOLS
-# ----------------------
-m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-AC_REQUIRE([LT_PATH_LD])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-AC_MSG_CHECKING([command to parse $NM output from $compiler object])
-AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
-[
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix. What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[[BCDEGRST]]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
-
-# Define system-specific variables.
-case $host_os in
-aix*)
- symcode='[[BCDT]]'
- ;;
-cygwin* | mingw* | pw32* | cegcc*)
- symcode='[[ABCDGISTW]]'
- ;;
-hpux*)
- if test "$host_cpu" = ia64; then
- symcode='[[ABCDEGRST]]'
- fi
- ;;
-irix* | nonstopux*)
- symcode='[[BCDEGRST]]'
- ;;
-osf*)
- symcode='[[BCDEGQRST]]'
- ;;
-solaris*)
- symcode='[[BDRT]]'
- ;;
-sco3.2v5*)
- symcode='[[DT]]'
- ;;
-sysv4.2uw2*)
- symcode='[[DT]]'
- ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
- symcode='[[ABDT]]'
- ;;
-sysv4)
- symcode='[[DFNSTU]]'
- ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
- symcode='[[ABCDGIRSTW]]' ;;
-esac
-
-# Transform an extracted symbol line into a proper C declaration.
-# Some systems (esp. on ia64) link data and code symbols differently,
-# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
- opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
- ;;
-esac
-
-# Try without a prefix underscore, then with it.
-for ac_symprfx in "" "_"; do
-
- # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
- symxfrm="\\1 $ac_symprfx\\2 \\2"
-
- # Write the raw and C identifiers.
- if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- # Fake it for dumpbin and say T for any non-static function
- # and D for any global variable.
- # Also find C++ and __fastcall symbols from MSVC++,
- # which start with @ or ?.
- lt_cv_sys_global_symbol_pipe="$AWK ['"\
-" {last_section=section; section=\$ 3};"\
-" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
-" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-" \$ 0!~/External *\|/{next};"\
-" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-" {if(hide[section]) next};"\
-" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-" s[1]~/^[@?]/{print s[1], s[1]; next};"\
-" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
-" ' prfx=^$ac_symprfx]"
- else
- lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
- fi
- lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
-
- # Check to see that the pipe works correctly.
- pipe_works=no
-
- rm -f conftest*
- cat > conftest.$ac_ext <<_LT_EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(void);
-void nm_test_func(void){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-_LT_EOF
-
- if AC_TRY_EVAL(ac_compile); then
- # Now try to grab the symbols.
- nlist=conftest.nm
- if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
- # Try sorting and uniquifying the output.
- if sort "$nlist" | uniq > "$nlist"T; then
- mv -f "$nlist"T "$nlist"
- else
- rm -f "$nlist"T
- fi
-
- # Make sure that we snagged all the symbols we need.
- if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
- if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
- cat <<_LT_EOF > conftest.$ac_ext
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
- relocations are performed -- see ld's documentation on pseudo-relocs. */
-# define LT@&t at _DLSYM_CONST
-#elif defined(__osf__)
-/* This system does not cope well with relocations in const data. */
-# define LT@&t at _DLSYM_CONST
-#else
-# define LT@&t at _DLSYM_CONST const
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-_LT_EOF
- # Now generate the symbol file.
- eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-
- cat <<_LT_EOF >> conftest.$ac_ext
-
-/* The mapping between symbol names and symbols. */
-LT@&t at _DLSYM_CONST struct {
- const char *name;
- void *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[[]] =
-{
- { "@PROGRAM@", (void *) 0 },
-_LT_EOF
- $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
- cat <<\_LT_EOF >> conftest.$ac_ext
- {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
- return lt__PROGRAM__LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-_LT_EOF
- # Now try linking the two files.
- mv conftest.$ac_objext conftstm.$ac_objext
- lt_globsym_save_LIBS=$LIBS
- lt_globsym_save_CFLAGS=$CFLAGS
- LIBS="conftstm.$ac_objext"
- CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
- if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
- pipe_works=yes
- fi
- LIBS=$lt_globsym_save_LIBS
- CFLAGS=$lt_globsym_save_CFLAGS
- else
- echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
- fi
- else
- echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
- fi
- else
- echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
- fi
- else
- echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
- cat conftest.$ac_ext >&5
- fi
- rm -rf conftest* conftst*
-
- # Do not use the global_symbol_pipe unless it works.
- if test "$pipe_works" = yes; then
- break
- else
- lt_cv_sys_global_symbol_pipe=
- fi
-done
-])
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
- lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
- AC_MSG_RESULT(failed)
-else
- AC_MSG_RESULT(ok)
-fi
-
-# Response file support.
-if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- nm_file_list_spec='@'
-elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
- nm_file_list_spec='@'
-fi
-
-_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
- [Take the output of nm and produce a listing of raw symbols and C names])
-_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
- [Transform the output of nm in a proper C declaration])
-_LT_DECL([global_symbol_to_c_name_address],
- [lt_cv_sys_global_symbol_to_c_name_address], [1],
- [Transform the output of nm in a C name address pair])
-_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
- [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
- [Transform the output of nm in a C name address pair when lib prefix is needed])
-_LT_DECL([], [nm_file_list_spec], [1],
- [Specify filename containing input files for $NM])
-]) # _LT_CMD_GLOBAL_SYMBOLS
-
-
-# _LT_COMPILER_PIC([TAGNAME])
-# ---------------------------
-m4_defun([_LT_COMPILER_PIC],
-[m4_require([_LT_TAG_COMPILER])dnl
-_LT_TAGVAR(lt_prog_compiler_wl, $1)=
-_LT_TAGVAR(lt_prog_compiler_pic, $1)=
-_LT_TAGVAR(lt_prog_compiler_static, $1)=
-
-m4_if([$1], [CXX], [
- # C++ specific cases for pic, static, wl, etc.
- if test "$GXX" = yes; then
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- m68k)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
- ;;
- esac
- ;;
-
- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
- mingw* | cygwin* | os2* | pw32* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- # Although the cygwin gcc ignores -fPIC, still need this for old-style
- # (--disable-auto-import) libraries
- m4_if([$1], [GCJ], [],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
- ;;
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
- ;;
- *djgpp*)
- # DJGPP does not support shared libraries at all
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- ;;
- haiku*)
- # PIC is the default for Haiku.
- # The "-static" flag exists, but is broken.
- _LT_TAGVAR(lt_prog_compiler_static, $1)=
- ;;
- interix[[3-9]]*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
- sysv4*MP*)
- if test -d /usr/nec; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
- fi
- ;;
- hpux*)
- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
- # sets the default TLS model and affects inlining.
- case $host_cpu in
- hppa*64*)
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
- ;;
- *qnx* | *nto*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
- else
- case $host_os in
- aix[[4-9]]*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- else
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
- chorus*)
- case $cc_basename in
- cxch68*)
- # Green Hills C++ Compiler
- # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
- ;;
- esac
- ;;
- mingw* | cygwin* | os2* | pw32* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- m4_if([$1], [GCJ], [],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
- ;;
- dgux*)
- case $cc_basename in
- ec++*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- ;;
- ghcx*)
- # Green Hills C++ Compiler
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- ;;
- *)
- ;;
- esac
- ;;
- freebsd* | dragonfly*)
- # FreeBSD uses GNU C++
- ;;
- hpux9* | hpux10* | hpux11*)
- case $cc_basename in
- CC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
- if test "$host_cpu" != ia64; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
- fi
- ;;
- aCC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
- ;;
- esac
- ;;
- *)
- ;;
- esac
- ;;
- interix*)
- # This is c89, which is MS Visual C++ (no shared libs)
- # Anyone wants to do a port?
- ;;
- irix5* | irix6* | nonstopux*)
- case $cc_basename in
- CC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- # CC pic flag -KPIC is the default.
- ;;
- *)
- ;;
- esac
- ;;
- linux* | k*bsd*-gnu | kopensolaris*-gnu)
- case $cc_basename in
- KCC*)
- # KAI C++ Compiler
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- ecpc* )
- # old Intel C++ for x86_64 which still supported -KPIC.
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- icpc* )
- # Intel C++, used to be incompatible with GCC.
- # ICC 10 doesn't accept -KPIC any more.
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- pgCC* | pgcpp*)
- # Portland Group C++ compiler
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- cxx*)
- # Compaq C++
- # Make sure the PIC flag is empty. It appears that all Alpha
- # Linux and Compaq Tru64 Unix objects are PIC.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
- xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
- # IBM XL 8.0, 9.0 on PPC and BlueGene
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- ;;
- esac
- ;;
- esac
- ;;
- lynxos*)
- ;;
- m88k*)
- ;;
- mvs*)
- case $cc_basename in
- cxx*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
- ;;
- *)
- ;;
- esac
- ;;
- netbsd*)
- ;;
- *qnx* | *nto*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
- osf3* | osf4* | osf5*)
- case $cc_basename in
- KCC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
- ;;
- RCC*)
- # Rational C++ 2.4.1
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- ;;
- cxx*)
- # Digital/Compaq C++
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # Make sure the PIC flag is empty. It appears that all Alpha
- # Linux and Compaq Tru64 Unix objects are PIC.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
- *)
- ;;
- esac
- ;;
- psos*)
- ;;
- solaris*)
- case $cc_basename in
- CC* | sunCC*)
- # Sun C++ 4.2, 5.x and Centerline C++
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- ;;
- gcx*)
- # Green Hills C++ Compiler
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
- ;;
- *)
- ;;
- esac
- ;;
- sunos4*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.x
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- lcc*)
- # Lucid
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- ;;
- *)
- ;;
- esac
- ;;
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- case $cc_basename in
- CC*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- esac
- ;;
- tandem*)
- case $cc_basename in
- NCC*)
- # NonStop-UX NCC 3.20
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- ;;
- *)
- ;;
- esac
- ;;
- vxworks*)
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- ;;
- esac
- fi
-],
-[
- if test "$GCC" = yes; then
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- m68k)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
- ;;
- esac
- ;;
-
- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- # Although the cygwin gcc ignores -fPIC, still need this for old-style
- # (--disable-auto-import) libraries
- m4_if([$1], [GCJ], [],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
- ;;
-
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
- ;;
-
- haiku*)
- # PIC is the default for Haiku.
- # The "-static" flag exists, but is broken.
- _LT_TAGVAR(lt_prog_compiler_static, $1)=
- ;;
-
- hpux*)
- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
- # sets the default TLS model and affects inlining.
- case $host_cpu in
- hppa*64*)
- # +Z the default
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
- ;;
-
- interix[[3-9]]*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
-
- msdosdjgpp*)
- # Just because we use GCC doesn't mean we suddenly get shared libraries
- # on systems that don't support them.
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- enable_shared=no
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
- fi
- ;;
-
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
-
- case $cc_basename in
- nvcc*) # Cuda Compiler Driver 2.2
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
- if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)"
- fi
- ;;
- esac
- else
- # PORTME Check for flag to pass linker flags through the system compiler.
- case $host_os in
- aix*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- else
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- m4_if([$1], [GCJ], [],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
- ;;
-
- hpux9* | hpux10* | hpux11*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
- # not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
- ;;
- esac
- # Is there a better lt_prog_compiler_static that works with the bundled CC?
- _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
- ;;
-
- irix5* | irix6* | nonstopux*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # PIC (with -KPIC) is the default.
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
-
- linux* | k*bsd*-gnu | kopensolaris*-gnu)
- case $cc_basename in
- # old Intel for x86_64 which still supported -KPIC.
- ecc*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- # icc used to be incompatible with GCC.
- # ICC 10 doesn't accept -KPIC any more.
- icc* | ifort*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- # Lahey Fortran 8.1.
- lf95*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
- ;;
- nagfor*)
- # NAG Fortran compiler
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group compilers (*not* the Pentium gcc compiler,
- # which looks to be a dead project)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- ccc*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # All Alpha code is PIC.
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
- xl* | bgxl* | bgf* | mpixl*)
- # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
- # Sun Fortran 8.3 passes all unrecognized flags to the linker
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
- ;;
- *Sun\ F* | *Sun*Fortran*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- ;;
- *Sun\ C*)
- # Sun C 5.9
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- ;;
- *Intel*\ [[CF]]*Compiler*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- *Portland\ Group*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- esac
- ;;
- esac
- ;;
-
- newsos6)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
- ;;
-
- osf3* | osf4* | osf5*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # All OSF/1 code is PIC.
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
-
- rdos*)
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
-
- solaris*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- case $cc_basename in
- f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
- *)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
- esac
- ;;
-
- sunos4*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- sysv4 | sysv4.2uw2* | sysv4.3*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec ;then
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- fi
- ;;
-
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- unicos*)
- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- ;;
-
- uts4*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- *)
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- ;;
- esac
- fi
-])
-case $host_os in
- # For platforms which do not support PIC, -DPIC is meaningless:
- *djgpp*)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)=
- ;;
- *)
- _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t at m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
- ;;
-esac
-
-AC_CACHE_CHECK([for $compiler option to produce PIC],
- [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
- [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
-_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
- _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
- [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
- [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t at m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
- [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
- "" | " "*) ;;
- *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
- esac],
- [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
- _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
-fi
-_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
- [Additional compiler flags for building library objects])
-
-_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
- [How to pass a linker flag through the compiler])
-#
-# Check to make sure the static flag actually works.
-#
-wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
-_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
- _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
- $lt_tmp_static_flag,
- [],
- [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
-_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
- [Compiler flag to prevent dynamic linking])
-])# _LT_COMPILER_PIC
-
-
-# _LT_LINKER_SHLIBS([TAGNAME])
-# ----------------------------
-# See if the linker supports building shared libraries.
-m4_defun([_LT_LINKER_SHLIBS],
-[AC_REQUIRE([LT_PATH_LD])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-m4_require([_LT_PATH_MANIFEST_TOOL])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-m4_if([$1], [CXX], [
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
- case $host_os in
- aix[[4-9]]*)
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- # Also, AIX nm treats weak defined symbols like other global defined
- # symbols, whereas GNU nm marks them as "W".
- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- else
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- fi
- ;;
- pw32*)
- _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
- ;;
- cygwin* | mingw* | cegcc*)
- case $cc_basename in
- cl*)
- _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
- ;;
- *)
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
- _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
- ;;
- esac
- ;;
- *)
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- ;;
- esac
-], [
- runpath_var=
- _LT_TAGVAR(allow_undefined_flag, $1)=
- _LT_TAGVAR(always_export_symbols, $1)=no
- _LT_TAGVAR(archive_cmds, $1)=
- _LT_TAGVAR(archive_expsym_cmds, $1)=
- _LT_TAGVAR(compiler_needs_object, $1)=no
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
- _LT_TAGVAR(export_dynamic_flag_spec, $1)=
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- _LT_TAGVAR(hardcode_automatic, $1)=no
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_direct_absolute, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
- _LT_TAGVAR(hardcode_libdir_separator, $1)=
- _LT_TAGVAR(hardcode_minus_L, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
- _LT_TAGVAR(inherit_rpath, $1)=no
- _LT_TAGVAR(link_all_deplibs, $1)=unknown
- _LT_TAGVAR(module_cmds, $1)=
- _LT_TAGVAR(module_expsym_cmds, $1)=
- _LT_TAGVAR(old_archive_from_new_cmds, $1)=
- _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
- _LT_TAGVAR(thread_safe_flag_spec, $1)=
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- # include_expsyms should be a list of space-separated symbols to be *always*
- # included in the symbol list
- _LT_TAGVAR(include_expsyms, $1)=
- # exclude_expsyms can be an extended regexp of symbols to exclude
- # it will be wrapped by ` (' and `)$', so one must not match beginning or
- # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
- # as well as any symbol that contains `d'.
- _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
- # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
- # platforms (ab)use it in PIC code, but their linkers get confused if
- # the symbol is explicitly referenced. Since portable code cannot
- # rely on this symbol name, it's probably fine to never include it in
- # preloaded symbol tables.
- # Exclude shared library initialization/finalization symbols.
-dnl Note also adjust exclude_expsyms for C++ above.
- extract_expsyms_cmds=
-
- case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- # FIXME: the MSVC++ port hasn't been tested in a loooong time
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- if test "$GCC" != yes; then
- with_gnu_ld=no
- fi
- ;;
- interix*)
- # we just hope/assume this is gcc and not c89 (= MSVC++)
- with_gnu_ld=yes
- ;;
- openbsd*)
- with_gnu_ld=no
- ;;
- esac
-
- _LT_TAGVAR(ld_shlibs, $1)=yes
-
- # On some targets, GNU ld is compatible enough with the native linker
- # that we're better off using the native interface for both.
- lt_use_gnu_ld_interface=no
- if test "$with_gnu_ld" = yes; then
- case $host_os in
- aix*)
- # The AIX port of GNU ld has always aspired to compatibility
- # with the native linker. However, as the warning in the GNU ld
- # block says, versions before 2.19.5* couldn't really create working
- # shared libraries, regardless of the interface used.
- case `$LD -v 2>&1` in
- *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
- *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
- *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- fi
-
- if test "$lt_use_gnu_ld_interface" = yes; then
- # If archive_cmds runs LD, not CC, wlarc should be empty
- wlarc='${wl}'
-
- # Set some defaults for GNU ld with shared library support. These
- # are reset later if shared libraries are not supported. Putting them
- # here allows them to be overridden if necessary.
- runpath_var=LD_RUN_PATH
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- # ancient GNU ld didn't support --whole-archive et. al.
- if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- fi
- supports_anon_versioning=no
- case `$LD -v 2>&1` in
- *GNU\ gold*) supports_anon_versioning=yes ;;
- *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
- *\ 2.11.*) ;; # other 2.11 versions
- *) supports_anon_versioning=yes ;;
- esac
-
- # See if GNU ld supports shared libraries.
- case $host_os in
- aix[[3-9]]*)
- # On AIX/PPC, the GNU linker is very broken
- if test "$host_cpu" != ia64; then
- _LT_TAGVAR(ld_shlibs, $1)=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.19, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support. If you
-*** really care for shared libraries, you may want to install binutils
-*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
-*** You will then need to restart the configuration process.
-
-_LT_EOF
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)=''
- ;;
- m68k)
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- ;;
- esac
- ;;
-
- beos*)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
- # as there is no search path for DLLs.
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=no
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
- _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
-
- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file (1st line
- # is EXPORTS), use it as is; otherwise, prepend...
- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- haiku*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- interix[[3-9]]*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
-
- gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
- tmp_diet=no
- if test "$host_os" = linux-dietlibc; then
- case $cc_basename in
- diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
- esac
- fi
- if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
- && test "$tmp_diet" = no
- then
- tmp_addflag=' $pic_flag'
- tmp_sharedflag='-shared'
- case $cc_basename,$host_cpu in
- pgcc*) # Portland Group C compiler
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag'
- ;;
- pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group f77 and f90 compilers
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag -Mnomain' ;;
- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
- tmp_addflag=' -i_dynamic' ;;
- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
- tmp_addflag=' -i_dynamic -nofor_main' ;;
- ifc* | ifort*) # Intel Fortran compiler
- tmp_addflag=' -nofor_main' ;;
- lf95*) # Lahey Fortran 8.1
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- tmp_sharedflag='--shared' ;;
- xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
- tmp_sharedflag='-qmkshrobj'
- tmp_addflag= ;;
- nvcc*) # Cuda Compiler Driver 2.2
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- _LT_TAGVAR(compiler_needs_object, $1)=yes
- ;;
- esac
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*) # Sun C 5.9
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- _LT_TAGVAR(compiler_needs_object, $1)=yes
- tmp_sharedflag='-G' ;;
- *Sun\ F*) # Sun Fortran 8.3
- tmp_sharedflag='-G' ;;
- esac
- _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
- if test "x$supports_anon_versioning" = xyes; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- fi
-
- case $cc_basename in
- xlf* | bgf* | bgxlf* | mpixlf*)
- # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
- _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
- if test "x$supports_anon_versioning" = xyes; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
- fi
- ;;
- esac
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
- wlarc=
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- fi
- ;;
-
- solaris*)
- if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
- _LT_TAGVAR(ld_shlibs, $1)=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
- case `$LD -v 2>&1` in
- *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
- _LT_TAGVAR(ld_shlibs, $1)=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- ;;
- *)
- # For security reasons, it is highly recommended that you always
- # use absolute paths for naming shared libraries, and exclude the
- # DT_RUNPATH tag from executables and libraries. But doing so
- # requires that you compile everything twice, which is a pain.
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- sunos4*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- wlarc=
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- *)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
-
- if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then
- runpath_var=
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
- _LT_TAGVAR(export_dynamic_flag_spec, $1)=
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- fi
- else
- # PORTME fill in a description of your system's linker (not GNU ld)
- case $host_os in
- aix3*)
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=yes
- _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
- # Note: this linker hardcodes the directories in LIBPATH if there
- # are no directories specified by -L.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
- # Neither direct hardcoding nor static linking is supported with a
- # broken collect2.
- _LT_TAGVAR(hardcode_direct, $1)=unsupported
- fi
- ;;
-
- aix[[4-9]]*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=""
- else
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- # Also, AIX nm treats weak defined symbols like other global
- # defined symbols, whereas GNU nm marks them as "W".
- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- else
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- fi
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
- for ld_flag in $LDFLAGS; do
- if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
- aix_use_runtimelinking=yes
- break
- fi
- done
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- _LT_TAGVAR(archive_cmds, $1)=''
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
-
- if test "$GCC" = yes; then
- case $host_os in aix4.[[012]]|aix4.[[012]].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" &&
- strings "$collect2name" | $GREP resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- _LT_TAGVAR(hardcode_direct, $1)=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=
- fi
- ;;
- esac
- shared_flag='-shared'
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag="$shared_flag "'${wl}-G'
- fi
- else
- # not using gcc
- if test "$host_cpu" = ia64; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag='${wl}-G'
- else
- shared_flag='${wl}-bM:SRE'
- fi
- fi
- fi
-
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to export.
- _LT_TAGVAR(always_export_symbols, $1)=yes
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
- # Determine the default libpath from the value encoded in an
- # empty executable.
- _LT_SYS_MODULE_PATH_AIX([$1])
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
- if test "$host_cpu" = ia64; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
- _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
- _LT_SYS_MODULE_PATH_AIX([$1])
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
- if test "$with_gnu_ld" = yes; then
- # We only use this code for GNU lds that support --whole-archive.
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- else
- # Exported symbols can be pulled into shared objects from archives
- _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
- # This is similar to how AIX traditionally builds its shared libraries.
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)=''
- ;;
- m68k)
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- ;;
- esac
- ;;
-
- bsdi[[45]]*)
- _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- case $cc_basename in
- cl*)
- # Native MSVC
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='@'
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
- else
- sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
- fi~
- $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
- linknames='
- # The linker will not automatically build a static lib if we build a DLL.
- # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
- # Don't use ranlib
- _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
- _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
- lt_tool_outputfile="@TOOL_OUTPUT@"~
- case $lt_outputfile in
- *.exe|*.EXE) ;;
- *)
- lt_outputfile="$lt_outputfile.exe"
- lt_tool_outputfile="$lt_tool_outputfile.exe"
- ;;
- esac~
- if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
- $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
- $RM "$lt_outputfile.manifest";
- fi'
- ;;
- *)
- # Assume MSVC wrapper
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
- # The linker will automatically build a .lib file if we build a DLL.
- _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
- # FIXME: Should let the user specify the lib program.
- _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- ;;
- esac
- ;;
-
- darwin* | rhapsody*)
- _LT_DARWIN_LINKER_FEATURES($1)
- ;;
-
- dgux*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
- # support. Future versions do this automatically, but an explicit c++rt0.o
- # does not break anything, and helps significantly (at the cost of a little
- # extra space).
- freebsd2.2*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- # Unfortunately, older versions of FreeBSD 2 do not have this feature.
- freebsd2.*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd* | dragonfly*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- hpux9*)
- if test "$GCC" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(hardcode_direct, $1)=yes
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- ;;
-
- hpux10*)
- if test "$GCC" = yes && test "$with_gnu_ld" = no; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
- fi
- if test "$with_gnu_ld" = no; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- fi
- ;;
-
- hpux11*)
- if test "$GCC" = yes && test "$with_gnu_ld" = no; then
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- else
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- m4_if($1, [], [
- # Older versions of the 11.00 compiler do not understand -b yet
- # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
- _LT_LINKER_OPTION([if $CC understands -b],
- _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
- [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
- [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
- [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
- ;;
- esac
- fi
- if test "$with_gnu_ld" = no; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
- *)
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- ;;
- esac
- fi
- ;;
-
- irix5* | irix6* | nonstopux*)
- if test "$GCC" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- # Try to use the -exported_symbol ld option, if it does not
- # work, assume that -exports_file does not work either and
- # implicitly export all symbols.
- # This should be the same for all languages, so no per-tag cache variable.
- AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
- [lt_cv_irix_exported_symbol],
- [save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
- AC_LINK_IFELSE(
- [AC_LANG_SOURCE(
- [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
- [C++], [[int foo (void) { return 0; }]],
- [Fortran 77], [[
- subroutine foo
- end]],
- [Fortran], [[
- subroutine foo
- end]])])],
- [lt_cv_irix_exported_symbol=yes],
- [lt_cv_irix_exported_symbol=no])
- LDFLAGS="$save_LDFLAGS"])
- if test "$lt_cv_irix_exported_symbol" = yes; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
- fi
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(inherit_rpath, $1)=yes
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
- else
- _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- newsos6)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- *nto* | *qnx*)
- ;;
-
- openbsd*)
- if test -f /usr/libexec/ld.so; then
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- else
- case $host_os in
- openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- ;;
- esac
- fi
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- os2*)
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
- _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
- ;;
-
- osf3*)
- if test "$GCC" = yes; then
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- ;;
-
- osf4* | osf5*) # as osf3* with the addition of -msym flag
- if test "$GCC" = yes; then
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- else
- _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
- $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
-
- # Both c and cxx compiler support -rpath directly
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- ;;
-
- solaris*)
- _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
- if test "$GCC" = yes; then
- wlarc='${wl}'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- else
- case `$CC -V 2>&1` in
- *"Compilers 5.0"*)
- wlarc=''
- _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
- ;;
- *)
- wlarc='${wl}'
- _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- ;;
- esac
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- case $host_os in
- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
- *)
- # The compiler driver will combine and reorder linker options,
- # but understands `-z linker_flag'. GCC discards it without `$wl',
- # but is careful enough not to reorder.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- if test "$GCC" = yes; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
- fi
- ;;
- esac
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- sunos4*)
- if test "x$host_vendor" = xsequent; then
- # Use $CC to link under sequent, because it throws in some extra .o
- # files that make .init and .fini sections work.
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
- fi
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- sysv4)
- case $host_vendor in
- sni)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
- ;;
- siemens)
- ## LD is ld it makes a PLAMLIB
- ## CC just makes a GrossModule.
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
- _LT_TAGVAR(hardcode_direct, $1)=no
- ;;
- motorola)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
- ;;
- esac
- runpath_var='LD_RUN_PATH'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- sysv4.3*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- _LT_TAGVAR(ld_shlibs, $1)=yes
- fi
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
- _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We can NOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- uts4*)
- _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- *)
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
-
- if test x$host_vendor = xsni; then
- case $host in
- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym'
- ;;
- esac
- fi
- fi
-])
-AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
-test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
-
-_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
-_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
-_LT_DECL([], [extract_expsyms_cmds], [2],
- [The commands to extract the exported symbol list from a shared archive])
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
-x|xyes)
- # Assume -lc should be added
- _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-
- if test "$enable_shared" = yes && test "$GCC" = yes; then
- case $_LT_TAGVAR(archive_cmds, $1) in
- *'~'*)
- # FIXME: we may have to deal with multi-command sequences.
- ;;
- '$CC '*)
- # Test whether the compiler implicitly links with -lc since on some
- # systems, -lgcc has to come before -lc. If gcc already passes -lc
- # to ld, don't add -lc before -lgcc.
- AC_CACHE_CHECK([whether -lc should be explicitly linked in],
- [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
- [$RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
- pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
- _LT_TAGVAR(allow_undefined_flag, $1)=
- if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
- then
- lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
- else
- lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
- fi
- _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
- ])
- _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
- ;;
- esac
- fi
- ;;
-esac
-
-_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
- [Whether or not to add -lc for building shared libraries])
-_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
- [enable_shared_with_static_runtimes], [0],
- [Whether or not to disallow shared libs when runtime libs are static])
-_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
- [Compiler flag to allow reflexive dlopens])
-_LT_TAGDECL([], [whole_archive_flag_spec], [1],
- [Compiler flag to generate shared objects directly from archives])
-_LT_TAGDECL([], [compiler_needs_object], [1],
- [Whether the compiler copes with passing no objects directly])
-_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
- [Create an old-style archive from a shared archive])
-_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
- [Create a temporary old-style archive to link instead of a shared archive])
-_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
-_LT_TAGDECL([], [archive_expsym_cmds], [2])
-_LT_TAGDECL([], [module_cmds], [2],
- [Commands used to build a loadable module if different from building
- a shared archive.])
-_LT_TAGDECL([], [module_expsym_cmds], [2])
-_LT_TAGDECL([], [with_gnu_ld], [1],
- [Whether we are building with GNU ld or not])
-_LT_TAGDECL([], [allow_undefined_flag], [1],
- [Flag that allows shared libraries with undefined symbols to be built])
-_LT_TAGDECL([], [no_undefined_flag], [1],
- [Flag that enforces no undefined symbols])
-_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
- [Flag to hardcode $libdir into a binary during linking.
- This must work even if $libdir does not exist])
-_LT_TAGDECL([], [hardcode_libdir_separator], [1],
- [Whether we need a single "-rpath" flag with a separated argument])
-_LT_TAGDECL([], [hardcode_direct], [0],
- [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
- DIR into the resulting binary])
-_LT_TAGDECL([], [hardcode_direct_absolute], [0],
- [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
- DIR into the resulting binary and the resulting library dependency is
- "absolute", i.e impossible to change by setting ${shlibpath_var} if the
- library is relocated])
-_LT_TAGDECL([], [hardcode_minus_L], [0],
- [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
- into the resulting binary])
-_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
- [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
- into the resulting binary])
-_LT_TAGDECL([], [hardcode_automatic], [0],
- [Set to "yes" if building a shared library automatically hardcodes DIR
- into the library and all subsequent libraries and executables linked
- against it])
-_LT_TAGDECL([], [inherit_rpath], [0],
- [Set to yes if linker adds runtime paths of dependent libraries
- to runtime path list])
-_LT_TAGDECL([], [link_all_deplibs], [0],
- [Whether libtool must link a program against all its dependency libraries])
-_LT_TAGDECL([], [always_export_symbols], [0],
- [Set to "yes" if exported symbols are required])
-_LT_TAGDECL([], [export_symbols_cmds], [2],
- [The commands to list exported symbols])
-_LT_TAGDECL([], [exclude_expsyms], [1],
- [Symbols that should not be listed in the preloaded symbols])
-_LT_TAGDECL([], [include_expsyms], [1],
- [Symbols that must always be exported])
-_LT_TAGDECL([], [prelink_cmds], [2],
- [Commands necessary for linking programs (against libraries) with templates])
-_LT_TAGDECL([], [postlink_cmds], [2],
- [Commands necessary for finishing linking programs])
-_LT_TAGDECL([], [file_list_spec], [1],
- [Specify filename containing input files])
-dnl FIXME: Not yet implemented
-dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
-dnl [Compiler flag to generate thread safe objects])
-])# _LT_LINKER_SHLIBS
-
-
-# _LT_LANG_C_CONFIG([TAG])
-# ------------------------
-# Ensure that the configuration variables for a C compiler are suitably
-# defined. These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_C_CONFIG],
-[m4_require([_LT_DECL_EGREP])dnl
-lt_save_CC="$CC"
-AC_LANG_PUSH(C)
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-_LT_TAG_COMPILER
-# Save the default compiler, since it gets overwritten when the other
-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-compiler_DEFAULT=$CC
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
- _LT_COMPILER_NO_RTTI($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
- LT_SYS_DLOPEN_SELF
- _LT_CMD_STRIPLIB
-
- # Report which library types will actually be built
- AC_MSG_CHECKING([if libtool supports shared libraries])
- AC_MSG_RESULT([$can_build_shared])
-
- AC_MSG_CHECKING([whether to build shared libraries])
- test "$can_build_shared" = "no" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
-
- aix[[4-9]]*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- esac
- AC_MSG_RESULT([$enable_shared])
-
- AC_MSG_CHECKING([whether to build static libraries])
- # Make sure either enable_shared or enable_static is yes.
- test "$enable_shared" = yes || enable_static=yes
- AC_MSG_RESULT([$enable_static])
-
- _LT_CONFIG($1)
-fi
-AC_LANG_POP
-CC="$lt_save_CC"
-])# _LT_LANG_C_CONFIG
-
-
-# _LT_LANG_CXX_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for a C++ compiler are suitably
-# defined. These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_CXX_CONFIG],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_PATH_MANIFEST_TOOL])dnl
-if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
- ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
- (test "X$CXX" != "Xg++"))) ; then
- AC_PROG_CXXCPP
-else
- _lt_caught_CXX_error=yes
-fi
-
-AC_LANG_PUSH(C++)
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(compiler_needs_object, $1)=no
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for C++ test sources.
-ac_ext=cpp
-
-# Object file extension for compiled C++ test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the CXX compiler isn't working. Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_caught_CXX_error" != yes; then
- # Code to be used in simple compile tests
- lt_simple_compile_test_code="int some_variable = 0;"
-
- # Code to be used in simple link tests
- lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
-
- # ltmain only uses $CC for tagged configurations so make sure $CC is set.
- _LT_TAG_COMPILER
-
- # save warnings/boilerplate of simple test code
- _LT_COMPILER_BOILERPLATE
- _LT_LINKER_BOILERPLATE
-
- # Allow CC to be a program name with arguments.
- lt_save_CC=$CC
- lt_save_CFLAGS=$CFLAGS
- lt_save_LD=$LD
- lt_save_GCC=$GCC
- GCC=$GXX
- lt_save_with_gnu_ld=$with_gnu_ld
- lt_save_path_LD=$lt_cv_path_LD
- if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
- lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
- else
- $as_unset lt_cv_prog_gnu_ld
- fi
- if test -n "${lt_cv_path_LDCXX+set}"; then
- lt_cv_path_LD=$lt_cv_path_LDCXX
- else
- $as_unset lt_cv_path_LD
- fi
- test -z "${LDCXX+set}" || LD=$LDCXX
- CC=${CXX-"c++"}
- CFLAGS=$CXXFLAGS
- compiler=$CC
- _LT_TAGVAR(compiler, $1)=$CC
- _LT_CC_BASENAME([$compiler])
-
- if test -n "$compiler"; then
- # We don't want -fno-exception when compiling C++ code, so set the
- # no_builtin_flag separately
- if test "$GXX" = yes; then
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
- else
- _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
- fi
-
- if test "$GXX" = yes; then
- # Set up default GNU C++ configuration
-
- LT_PATH_LD
-
- # Check if GNU C++ uses GNU ld as the underlying linker, since the
- # archiving commands below assume that GNU ld is being used.
- if test "$with_gnu_ld" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
- # If archive_cmds runs LD, not CC, wlarc should be empty
- # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
- # investigate it a little bit more. (MM)
- wlarc='${wl}'
-
- # ancient GNU ld didn't support --whole-archive et. al.
- if eval "`$CC -print-prog-name=ld` --help 2>&1" |
- $GREP 'no-whole-archive' > /dev/null; then
- _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- _LT_TAGVAR(whole_archive_flag_spec, $1)=
- fi
- else
- with_gnu_ld=no
- wlarc=
-
- # A generic and very simple default shared library creation
- # command for GNU C++ for the case where it uses the native
- # linker, instead of GNU ld. If possible, this setting should
- # overridden to take advantage of the native linker features on
- # the platform it is being used on.
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
- fi
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
- else
- GXX=no
- with_gnu_ld=no
- wlarc=
- fi
-
- # PORTME: fill in a description of your system's C++ link characteristics
- AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
- _LT_TAGVAR(ld_shlibs, $1)=yes
- case $host_os in
- aix3*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- aix[[4-9]]*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=""
- else
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
- for ld_flag in $LDFLAGS; do
- case $ld_flag in
- *-brtl*)
- aix_use_runtimelinking=yes
- break
- ;;
- esac
- done
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- _LT_TAGVAR(archive_cmds, $1)=''
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
-
- if test "$GXX" = yes; then
- case $host_os in aix4.[[012]]|aix4.[[012]].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" &&
- strings "$collect2name" | $GREP resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- _LT_TAGVAR(hardcode_direct, $1)=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- _LT_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=
- fi
- esac
- shared_flag='-shared'
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag="$shared_flag "'${wl}-G'
- fi
- else
- # not using gcc
- if test "$host_cpu" = ia64; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag='${wl}-G'
- else
- shared_flag='${wl}-bM:SRE'
- fi
- fi
- fi
-
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to
- # export.
- _LT_TAGVAR(always_export_symbols, $1)=yes
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
- # Determine the default libpath from the value encoded in an empty
- # executable.
- _LT_SYS_MODULE_PATH_AIX([$1])
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
- if test "$host_cpu" = ia64; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
- _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
- _LT_SYS_MODULE_PATH_AIX([$1])
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
- if test "$with_gnu_ld" = yes; then
- # We only use this code for GNU lds that support --whole-archive.
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- else
- # Exported symbols can be pulled into shared objects from archives
- _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
- fi
- _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
- # This is similar to how AIX traditionally builds its shared
- # libraries.
- _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- fi
- ;;
-
- beos*)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- chorus*)
- case $cc_basename in
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- cygwin* | mingw* | pw32* | cegcc*)
- case $GXX,$cc_basename in
- ,cl* | no,cl*)
- # Native MSVC
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=yes
- _LT_TAGVAR(file_list_spec, $1)='@'
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
- else
- $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
- fi~
- $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
- linknames='
- # The linker will not automatically build a static lib if we build a DLL.
- # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- # Don't use ranlib
- _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
- _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
- lt_tool_outputfile="@TOOL_OUTPUT@"~
- case $lt_outputfile in
- *.exe|*.EXE) ;;
- *)
- lt_outputfile="$lt_outputfile.exe"
- lt_tool_outputfile="$lt_tool_outputfile.exe"
- ;;
- esac~
- func_to_tool_file "$lt_outputfile"~
- if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
- $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
- $RM "$lt_outputfile.manifest";
- fi'
- ;;
- *)
- # g++
- # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
- # as there is no search path for DLLs.
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_TAGVAR(always_export_symbols, $1)=no
- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-
- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file (1st line
- # is EXPORTS), use it as is; otherwise, prepend...
- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
- darwin* | rhapsody*)
- _LT_DARWIN_LINKER_FEATURES($1)
- ;;
-
- dgux*)
- case $cc_basename in
- ec++*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- ghcx*)
- # Green Hills C++ Compiler
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- freebsd2.*)
- # C++ shared libraries reported to be fairly broken before
- # switch to ELF
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- freebsd-elf*)
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- ;;
-
- freebsd* | dragonfly*)
- # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
- # conventions
- _LT_TAGVAR(ld_shlibs, $1)=yes
- ;;
-
- gnu*)
- ;;
-
- haiku*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- hpux9*)
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
- # but as the default
- # location of the library.
-
- case $cc_basename in
- CC*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- aCC*)
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test "$GXX" = yes; then
- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- hpux10*|hpux11*)
- if test $with_gnu_ld = no; then
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- ;;
- *)
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- ;;
- esac
- fi
- case $host_cpu in
- hppa*64*|ia64*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
- *)
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
- # but as the default
- # location of the library.
- ;;
- esac
-
- case $cc_basename in
- CC*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- aCC*)
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- esac
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test "$GXX" = yes; then
- if test $with_gnu_ld = no; then
- case $host_cpu in
- hppa*64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- ia64*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- esac
- fi
- else
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- interix[[3-9]]*)
- _LT_TAGVAR(hardcode_direct, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
- irix5* | irix6*)
- case $cc_basename in
- CC*)
- # SGI C++
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-
- # Archives containing C++ object files must be created using
- # "CC -ar", where "CC" is the IRIX C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
- ;;
- *)
- if test "$GXX" = yes; then
- if test "$with_gnu_ld" = no; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
- fi
- fi
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- ;;
- esac
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_TAGVAR(inherit_rpath, $1)=yes
- ;;
-
- linux* | k*bsd*-gnu | kopensolaris*-gnu)
- case $cc_basename in
- KCC*)
- # Kuck and Associates, Inc. (KAI) C++ Compiler
-
- # KCC will only create a shared library if the output file
- # ends with ".so" (or ".sl" for HP-UX), so rename the library
- # to its proper name (with version) after linking.
- _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
- # Archives containing C++ object files must be created using
- # "CC -Bstatic", where "CC" is the KAI C++ compiler.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
- ;;
- icpc* | ecpc* )
- # Intel C++
- with_gnu_ld=yes
- # version 8.0 and above of icpc choke on multiply defined symbols
- # if we add $predep_objects and $postdep_objects, however 7.1 and
- # earlier do not add the objects themselves.
- case `$CC -V 2>&1` in
- *"Version 7."*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
- *) # Version 8.0 or newer
- tmp_idyn=
- case $host_cpu in
- ia64*) tmp_idyn=' -i_dynamic';;
- esac
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
- esac
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- ;;
- pgCC* | pgcpp*)
- # Portland Group C++ compiler
- case `$CC -V` in
- *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
- _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
- compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
- _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
- $RANLIB $oldlib'
- _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
- rm -rf $tpldir~
- $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
- ;;
- *) # Version 6 and above use weak symbols
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
- ;;
- esac
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- ;;
- cxx*)
- # Compaq C++
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
-
- runpath_var=LD_RUN_PATH
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
- ;;
- xl* | mpixl* | bgxl*)
- # IBM XL 8.0 on PPC, with GNU ld
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- if test "x$supports_anon_versioning" = xyes; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- fi
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
- _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
- _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- _LT_TAGVAR(compiler_needs_object, $1)=yes
-
- # Not sure whether something based on
- # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
- # would be better.
- output_verbose_link_cmd='func_echo_all'
-
- # Archives containing C++ object files must be created using
- # "CC -xar", where "CC" is the Sun C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
- ;;
- esac
- ;;
- esac
- ;;
-
- lynxos*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- m88k*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- mvs*)
- case $cc_basename in
- cxx*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
- wlarc=
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- fi
- # Workaround some broken pre-1.5 toolchains
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
- ;;
-
- *nto* | *qnx*)
- _LT_TAGVAR(ld_shlibs, $1)=yes
- ;;
-
- openbsd2*)
- # C++ shared libraries are fairly broken
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- openbsd*)
- if test -f /usr/libexec/ld.so; then
- _LT_TAGVAR(hardcode_direct, $1)=yes
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- fi
- output_verbose_link_cmd=func_echo_all
- else
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- osf3* | osf4* | osf5*)
- case $cc_basename in
- KCC*)
- # Kuck and Associates, Inc. (KAI) C++ Compiler
-
- # KCC will only create a shared library if the output file
- # ends with ".so" (or ".sl" for HP-UX), so rename the library
- # to its proper name (with version) after linking.
- _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Archives containing C++ object files must be created using
- # the KAI C++ compiler.
- case $host in
- osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
- *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
- esac
- ;;
- RCC*)
- # Rational C++ 2.4.1
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- cxx*)
- case $host in
- osf3*)
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- ;;
- *)
- _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
- echo "-hidden">> $lib.exp~
- $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
- $RM $lib.exp'
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
- ;;
- esac
-
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
- ;;
- *)
- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
- _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- case $host in
- osf3*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- ;;
- esac
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
- else
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- psos*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- sunos4*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.x
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- lcc*)
- # Lucid
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- solaris*)
- case $cc_basename in
- CC* | sunCC*)
- # Sun C++ 4.2, 5.x and Centerline C++
- _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
- _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
- _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- case $host_os in
- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
- *)
- # The compiler driver will combine and reorder linker options,
- # but understands `-z linker_flag'.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
- ;;
- esac
- _LT_TAGVAR(link_all_deplibs, $1)=yes
-
- output_verbose_link_cmd='func_echo_all'
-
- # Archives containing C++ object files must be created using
- # "CC -xar", where "CC" is the Sun C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
- ;;
- gcx*)
- # Green Hills C++ Compiler
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-
- # The C++ compiler must be used to create the archive.
- _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
- ;;
- *)
- # GNU C++ compiler with Solaris linker
- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
- _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
- if $CC --version | $GREP -v '^2\.7' > /dev/null; then
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
- else
- # g++ 2.7 appears to require `-G' NOT `-shared' on this
- # platform.
- _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
- fi
-
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
- case $host_os in
- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
- *)
- _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
- ;;
- esac
- fi
- ;;
- esac
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
- _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- runpath_var='LD_RUN_PATH'
-
- case $cc_basename in
- CC*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We can NOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
- _LT_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
- _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_TAGVAR(link_all_deplibs, $1)=yes
- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
- runpath_var='LD_RUN_PATH'
-
- case $cc_basename in
- CC*)
- _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
- '"$_LT_TAGVAR(old_archive_cmds, $1)"
- _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
- '"$_LT_TAGVAR(reload_cmds, $1)"
- ;;
- *)
- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- ;;
-
- tandem*)
- case $cc_basename in
- NCC*)
- # NonStop-UX NCC 3.20
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- vxworks*)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- *)
- # FIXME: insert proper C++ library support
- _LT_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
-
- AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
- test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
- _LT_TAGVAR(GCC, $1)="$GXX"
- _LT_TAGVAR(LD, $1)="$LD"
-
- ## CAVEAT EMPTOR:
- ## There is no encapsulation within the following macros, do not change
- ## the running order or otherwise move them around unless you know exactly
- ## what you are doing...
- _LT_SYS_HIDDEN_LIBDEPS($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
- fi # test -n "$compiler"
-
- CC=$lt_save_CC
- CFLAGS=$lt_save_CFLAGS
- LDCXX=$LD
- LD=$lt_save_LD
- GCC=$lt_save_GCC
- with_gnu_ld=$lt_save_with_gnu_ld
- lt_cv_path_LDCXX=$lt_cv_path_LD
- lt_cv_path_LD=$lt_save_path_LD
- lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
- lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-fi # test "$_lt_caught_CXX_error" != yes
-
-AC_LANG_POP
-])# _LT_LANG_CXX_CONFIG
-
-
-# _LT_FUNC_STRIPNAME_CNF
-# ----------------------
-# func_stripname_cnf prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-#
-# This function is identical to the (non-XSI) version of func_stripname,
-# except this one can be used by m4 code that may be executed by configure,
-# rather than the libtool script.
-m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
-AC_REQUIRE([_LT_DECL_SED])
-AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
-func_stripname_cnf ()
-{
- case ${2} in
- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
- esac
-} # func_stripname_cnf
-])# _LT_FUNC_STRIPNAME_CNF
-
-# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
-# ---------------------------------
-# Figure out "hidden" library dependencies from verbose
-# compiler output when linking a shared library.
-# Parse the compiler output and extract the necessary
-# objects, libraries and library flags.
-m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
-# Dependencies to place before and after the object being linked:
-_LT_TAGVAR(predep_objects, $1)=
-_LT_TAGVAR(postdep_objects, $1)=
-_LT_TAGVAR(predeps, $1)=
-_LT_TAGVAR(postdeps, $1)=
-_LT_TAGVAR(compiler_lib_search_path, $1)=
-
-dnl we can't use the lt_simple_compile_test_code here,
-dnl because it contains code intended for an executable,
-dnl not a library. It's possible we should let each
-dnl tag define a new lt_????_link_test_code variable,
-dnl but it's only used here...
-m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
-int a;
-void foo (void) { a = 0; }
-_LT_EOF
-], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
-class Foo
-{
-public:
- Foo (void) { a = 0; }
-private:
- int a;
-};
-_LT_EOF
-], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
- subroutine foo
- implicit none
- integer*4 a
- a=0
- return
- end
-_LT_EOF
-], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
- subroutine foo
- implicit none
- integer a
- a=0
- return
- end
-_LT_EOF
-], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
-public class foo {
- private int a;
- public void bar (void) {
- a = 0;
- }
-};
-_LT_EOF
-], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF
-package foo
-func foo() {
-}
-_LT_EOF
-])
-
-_lt_libdeps_save_CFLAGS=$CFLAGS
-case "$CC $CFLAGS " in #(
-*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
-*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
-*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
-esac
-
-dnl Parse the compiler output and extract the necessary
-dnl objects, libraries and library flags.
-if AC_TRY_EVAL(ac_compile); then
- # Parse the compiler output and extract the necessary
- # objects, libraries and library flags.
-
- # Sentinel used to keep track of whether or not we are before
- # the conftest object file.
- pre_test_object_deps_done=no
-
- for p in `eval "$output_verbose_link_cmd"`; do
- case ${prev}${p} in
-
- -L* | -R* | -l*)
- # Some compilers place space between "-{L,R}" and the path.
- # Remove the space.
- if test $p = "-L" ||
- test $p = "-R"; then
- prev=$p
- continue
- fi
-
- # Expand the sysroot to ease extracting the directories later.
- if test -z "$prev"; then
- case $p in
- -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
- -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
- -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
- esac
- fi
- case $p in
- =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
- esac
- if test "$pre_test_object_deps_done" = no; then
- case ${prev} in
- -L | -R)
- # Internal compiler library paths should come after those
- # provided the user. The postdeps already come after the
- # user supplied libs so there is no need to process them.
- if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
- _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
- else
- _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
- fi
- ;;
- # The "-l" case would never come before the object being
- # linked, so don't bother handling this case.
- esac
- else
- if test -z "$_LT_TAGVAR(postdeps, $1)"; then
- _LT_TAGVAR(postdeps, $1)="${prev}${p}"
- else
- _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
- fi
- fi
- prev=
- ;;
-
- *.lto.$objext) ;; # Ignore GCC LTO objects
- *.$objext)
- # This assumes that the test object file only shows up
- # once in the compiler output.
- if test "$p" = "conftest.$objext"; then
- pre_test_object_deps_done=yes
- continue
- fi
-
- if test "$pre_test_object_deps_done" = no; then
- if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
- _LT_TAGVAR(predep_objects, $1)="$p"
- else
- _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
- fi
- else
- if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
- _LT_TAGVAR(postdep_objects, $1)="$p"
- else
- _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
- fi
- fi
- ;;
-
- *) ;; # Ignore the rest.
-
- esac
- done
-
- # Clean up.
- rm -f a.out a.exe
-else
- echo "libtool.m4: error: problem compiling $1 test program"
-fi
-
-$RM -f confest.$objext
-CFLAGS=$_lt_libdeps_save_CFLAGS
-
-# PORTME: override above test on systems where it is broken
-m4_if([$1], [CXX],
-[case $host_os in
-interix[[3-9]]*)
- # Interix 3.5 installs completely hosed .la files for C++, so rather than
- # hack all around it, let's just trust "g++" to DTRT.
- _LT_TAGVAR(predep_objects,$1)=
- _LT_TAGVAR(postdep_objects,$1)=
- _LT_TAGVAR(postdeps,$1)=
- ;;
-
-linux*)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
-
- # The more standards-conforming stlport4 library is
- # incompatible with the Cstd library. Avoid specifying
- # it if it's in CXXFLAGS. Ignore libCrun as
- # -library=stlport4 depends on it.
- case " $CXX $CXXFLAGS " in
- *" -library=stlport4 "*)
- solaris_use_stlport4=yes
- ;;
- esac
-
- if test "$solaris_use_stlport4" != yes; then
- _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
- fi
- ;;
- esac
- ;;
-
-solaris*)
- case $cc_basename in
- CC* | sunCC*)
- # The more standards-conforming stlport4 library is
- # incompatible with the Cstd library. Avoid specifying
- # it if it's in CXXFLAGS. Ignore libCrun as
- # -library=stlport4 depends on it.
- case " $CXX $CXXFLAGS " in
- *" -library=stlport4 "*)
- solaris_use_stlport4=yes
- ;;
- esac
-
- # Adding this requires a known-good setup of shared libraries for
- # Sun compiler versions before 5.6, else PIC objects from an old
- # archive will be linked into the output, leading to subtle bugs.
- if test "$solaris_use_stlport4" != yes; then
- _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
- fi
- ;;
- esac
- ;;
-esac
-])
-
-case " $_LT_TAGVAR(postdeps, $1) " in
-*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
-esac
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=
-if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
-fi
-_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
- [The directories searched by this compiler when creating a shared library])
-_LT_TAGDECL([], [predep_objects], [1],
- [Dependencies to place before and after the objects being linked to
- create a shared library])
-_LT_TAGDECL([], [postdep_objects], [1])
-_LT_TAGDECL([], [predeps], [1])
-_LT_TAGDECL([], [postdeps], [1])
-_LT_TAGDECL([], [compiler_lib_search_path], [1],
- [The library search path used internally by the compiler when linking
- a shared library])
-])# _LT_SYS_HIDDEN_LIBDEPS
-
-
-# _LT_LANG_F77_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for a Fortran 77 compiler are
-# suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_F77_CONFIG],
-[AC_LANG_PUSH(Fortran 77)
-if test -z "$F77" || test "X$F77" = "Xno"; then
- _lt_disable_F77=yes
-fi
-
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for f77 test sources.
-ac_ext=f
-
-# Object file extension for compiled f77 test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the F77 compiler isn't working. Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_disable_F77" != yes; then
- # Code to be used in simple compile tests
- lt_simple_compile_test_code="\
- subroutine t
- return
- end
-"
-
- # Code to be used in simple link tests
- lt_simple_link_test_code="\
- program t
- end
-"
-
- # ltmain only uses $CC for tagged configurations so make sure $CC is set.
- _LT_TAG_COMPILER
-
- # save warnings/boilerplate of simple test code
- _LT_COMPILER_BOILERPLATE
- _LT_LINKER_BOILERPLATE
-
- # Allow CC to be a program name with arguments.
- lt_save_CC="$CC"
- lt_save_GCC=$GCC
- lt_save_CFLAGS=$CFLAGS
- CC=${F77-"f77"}
- CFLAGS=$FFLAGS
- compiler=$CC
- _LT_TAGVAR(compiler, $1)=$CC
- _LT_CC_BASENAME([$compiler])
- GCC=$G77
- if test -n "$compiler"; then
- AC_MSG_CHECKING([if libtool supports shared libraries])
- AC_MSG_RESULT([$can_build_shared])
-
- AC_MSG_CHECKING([whether to build shared libraries])
- test "$can_build_shared" = "no" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
- aix[[4-9]]*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- esac
- AC_MSG_RESULT([$enable_shared])
-
- AC_MSG_CHECKING([whether to build static libraries])
- # Make sure either enable_shared or enable_static is yes.
- test "$enable_shared" = yes || enable_static=yes
- AC_MSG_RESULT([$enable_static])
-
- _LT_TAGVAR(GCC, $1)="$G77"
- _LT_TAGVAR(LD, $1)="$LD"
-
- ## CAVEAT EMPTOR:
- ## There is no encapsulation within the following macros, do not change
- ## the running order or otherwise move them around unless you know exactly
- ## what you are doing...
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
- fi # test -n "$compiler"
-
- GCC=$lt_save_GCC
- CC="$lt_save_CC"
- CFLAGS="$lt_save_CFLAGS"
-fi # test "$_lt_disable_F77" != yes
-
-AC_LANG_POP
-])# _LT_LANG_F77_CONFIG
-
-
-# _LT_LANG_FC_CONFIG([TAG])
-# -------------------------
-# Ensure that the configuration variables for a Fortran compiler are
-# suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_FC_CONFIG],
-[AC_LANG_PUSH(Fortran)
-
-if test -z "$FC" || test "X$FC" = "Xno"; then
- _lt_disable_FC=yes
-fi
-
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for fc test sources.
-ac_ext=${ac_fc_srcext-f}
-
-# Object file extension for compiled fc test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the FC compiler isn't working. Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_disable_FC" != yes; then
- # Code to be used in simple compile tests
- lt_simple_compile_test_code="\
- subroutine t
- return
- end
-"
-
- # Code to be used in simple link tests
- lt_simple_link_test_code="\
- program t
- end
-"
-
- # ltmain only uses $CC for tagged configurations so make sure $CC is set.
- _LT_TAG_COMPILER
-
- # save warnings/boilerplate of simple test code
- _LT_COMPILER_BOILERPLATE
- _LT_LINKER_BOILERPLATE
-
- # Allow CC to be a program name with arguments.
- lt_save_CC="$CC"
- lt_save_GCC=$GCC
- lt_save_CFLAGS=$CFLAGS
- CC=${FC-"f95"}
- CFLAGS=$FCFLAGS
- compiler=$CC
- GCC=$ac_cv_fc_compiler_gnu
-
- _LT_TAGVAR(compiler, $1)=$CC
- _LT_CC_BASENAME([$compiler])
-
- if test -n "$compiler"; then
- AC_MSG_CHECKING([if libtool supports shared libraries])
- AC_MSG_RESULT([$can_build_shared])
-
- AC_MSG_CHECKING([whether to build shared libraries])
- test "$can_build_shared" = "no" && enable_shared=no
-
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
- aix[[4-9]]*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- esac
- AC_MSG_RESULT([$enable_shared])
-
- AC_MSG_CHECKING([whether to build static libraries])
- # Make sure either enable_shared or enable_static is yes.
- test "$enable_shared" = yes || enable_static=yes
- AC_MSG_RESULT([$enable_static])
-
- _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu"
- _LT_TAGVAR(LD, $1)="$LD"
-
- ## CAVEAT EMPTOR:
- ## There is no encapsulation within the following macros, do not change
- ## the running order or otherwise move them around unless you know exactly
- ## what you are doing...
- _LT_SYS_HIDDEN_LIBDEPS($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_SYS_DYNAMIC_LINKER($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
- fi # test -n "$compiler"
-
- GCC=$lt_save_GCC
- CC=$lt_save_CC
- CFLAGS=$lt_save_CFLAGS
-fi # test "$_lt_disable_FC" != yes
-
-AC_LANG_POP
-])# _LT_LANG_FC_CONFIG
-
-
-# _LT_LANG_GCJ_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for the GNU Java Compiler compiler
-# are suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_GCJ_CONFIG],
-[AC_REQUIRE([LT_PROG_GCJ])dnl
-AC_LANG_SAVE
-
-# Source file extension for Java test sources.
-ac_ext=java
-
-# Object file extension for compiled Java test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=yes
-CC=${GCJ-"gcj"}
-CFLAGS=$GCJFLAGS
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)="$LD"
-_LT_CC_BASENAME([$compiler])
-
-# GCJ did not exist at the time GCC didn't implicitly link libc in.
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
- _LT_COMPILER_NO_RTTI($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
-fi
-
-AC_LANG_RESTORE
-
-GCC=$lt_save_GCC
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_GCJ_CONFIG
-
-
-# _LT_LANG_GO_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for the GNU Go compiler
-# are suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_GO_CONFIG],
-[AC_REQUIRE([LT_PROG_GO])dnl
-AC_LANG_SAVE
-
-# Source file extension for Go test sources.
-ac_ext=go
-
-# Object file extension for compiled Go test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="package main; func main() { }"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='package main; func main() { }'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=yes
-CC=${GOC-"gccgo"}
-CFLAGS=$GOFLAGS
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)="$LD"
-_LT_CC_BASENAME([$compiler])
-
-# Go did not exist at the time GCC didn't implicitly link libc in.
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
- _LT_COMPILER_NO_RTTI($1)
- _LT_COMPILER_PIC($1)
- _LT_COMPILER_C_O($1)
- _LT_COMPILER_FILE_LOCKS($1)
- _LT_LINKER_SHLIBS($1)
- _LT_LINKER_HARDCODE_LIBPATH($1)
-
- _LT_CONFIG($1)
-fi
-
-AC_LANG_RESTORE
-
-GCC=$lt_save_GCC
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_GO_CONFIG
-
-
-# _LT_LANG_RC_CONFIG([TAG])
-# -------------------------
-# Ensure that the configuration variables for the Windows resource compiler
-# are suitably defined. These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_RC_CONFIG],
-[AC_REQUIRE([LT_PROG_RC])dnl
-AC_LANG_SAVE
-
-# Source file extension for RC test sources.
-ac_ext=rc
-
-# Object file extension for compiled RC test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="$lt_simple_compile_test_code"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=
-CC=${RC-"windres"}
-CFLAGS=
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_CC_BASENAME([$compiler])
-_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-
-if test -n "$compiler"; then
- :
- _LT_CONFIG($1)
-fi
-
-GCC=$lt_save_GCC
-AC_LANG_RESTORE
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_RC_CONFIG
-
-
-# LT_PROG_GCJ
-# -----------
-AC_DEFUN([LT_PROG_GCJ],
-[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
- [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
- [AC_CHECK_TOOL(GCJ, gcj,)
- test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
- AC_SUBST(GCJFLAGS)])])[]dnl
-])
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
-
-
-# LT_PROG_GO
-# ----------
-AC_DEFUN([LT_PROG_GO],
-[AC_CHECK_TOOL(GOC, gccgo,)
-])
-
-
-# LT_PROG_RC
-# ----------
-AC_DEFUN([LT_PROG_RC],
-[AC_CHECK_TOOL(RC, windres,)
-])
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_RC], [])
-
-
-# _LT_DECL_EGREP
-# --------------
-# If we don't have a new enough Autoconf to choose the best grep
-# available, choose the one first in the user's PATH.
-m4_defun([_LT_DECL_EGREP],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_REQUIRE([AC_PROG_FGREP])dnl
-test -z "$GREP" && GREP=grep
-_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
-_LT_DECL([], [EGREP], [1], [An ERE matcher])
-_LT_DECL([], [FGREP], [1], [A literal string matcher])
-dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
-AC_SUBST([GREP])
-])
-
-
-# _LT_DECL_OBJDUMP
-# --------------
-# If we don't have a new enough Autoconf to choose the best objdump
-# available, choose the one first in the user's PATH.
-m4_defun([_LT_DECL_OBJDUMP],
-[AC_CHECK_TOOL(OBJDUMP, objdump, false)
-test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
-AC_SUBST([OBJDUMP])
-])
-
-# _LT_DECL_DLLTOOL
-# ----------------
-# Ensure DLLTOOL variable is set.
-m4_defun([_LT_DECL_DLLTOOL],
-[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
-AC_SUBST([DLLTOOL])
-])
-
-# _LT_DECL_SED
-# ------------
-# Check for a fully-functional sed program, that truncates
-# as few characters as possible. Prefer GNU sed if found.
-m4_defun([_LT_DECL_SED],
-[AC_PROG_SED
-test -z "$SED" && SED=sed
-Xsed="$SED -e 1s/^X//"
-_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
-_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
- [Sed that helps us avoid accidentally triggering echo(1) options like -n])
-])# _LT_DECL_SED
-
-m4_ifndef([AC_PROG_SED], [
-############################################################
-# NOTE: This macro has been submitted for inclusion into #
-# GNU Autoconf as AC_PROG_SED. When it is available in #
-# a released version of Autoconf we should remove this #
-# macro and use it instead. #
-############################################################
-
-m4_defun([AC_PROG_SED],
-[AC_MSG_CHECKING([for a sed that does not truncate output])
-AC_CACHE_VAL(lt_cv_path_SED,
-[# Loop through the user's path and test for sed and gsed.
-# Then use that list of sed's as ones to test for truncation.
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for lt_ac_prog in sed gsed; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
- lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
- fi
- done
- done
-done
-IFS=$as_save_IFS
-lt_ac_max=0
-lt_ac_count=0
-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
-# along with /bin/sed that truncates output.
-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
- test ! -f $lt_ac_sed && continue
- cat /dev/null > conftest.in
- lt_ac_count=0
- echo $ECHO_N "0123456789$ECHO_C" >conftest.in
- # Check for GNU sed and select it if it is found.
- if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
- lt_cv_path_SED=$lt_ac_sed
- break
- fi
- while true; do
- cat conftest.in conftest.in >conftest.tmp
- mv conftest.tmp conftest.in
- cp conftest.in conftest.nl
- echo >>conftest.nl
- $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
- cmp -s conftest.out conftest.nl || break
- # 10000 chars as input seems more than enough
- test $lt_ac_count -gt 10 && break
- lt_ac_count=`expr $lt_ac_count + 1`
- if test $lt_ac_count -gt $lt_ac_max; then
- lt_ac_max=$lt_ac_count
- lt_cv_path_SED=$lt_ac_sed
- fi
- done
-done
-])
-SED=$lt_cv_path_SED
-AC_SUBST([SED])
-AC_MSG_RESULT([$SED])
-])#AC_PROG_SED
-])#m4_ifndef
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_SED], [])
-
-
-# _LT_CHECK_SHELL_FEATURES
-# ------------------------
-# Find out whether the shell is Bourne or XSI compatible,
-# or has some other useful features.
-m4_defun([_LT_CHECK_SHELL_FEATURES],
-[AC_MSG_CHECKING([whether the shell understands some XSI constructs])
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
- test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
- = c,a/b,b/c, \
- && eval 'test $(( 1 + 1 )) -eq 2 \
- && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
- && xsi_shell=yes
-AC_MSG_RESULT([$xsi_shell])
-_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell'])
-
-AC_MSG_CHECKING([whether the shell understands "+="])
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \
- >/dev/null 2>&1 \
- && lt_shell_append=yes
-AC_MSG_RESULT([$lt_shell_append])
-_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append'])
-
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- lt_unset=unset
-else
- lt_unset=false
-fi
-_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
-
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
- # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
- lt_SP2NL='tr \040 \012'
- lt_NL2SP='tr \015\012 \040\040'
- ;;
- *) # EBCDIC based system
- lt_SP2NL='tr \100 \n'
- lt_NL2SP='tr \r\n \100\100'
- ;;
-esac
-_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
-_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
-])# _LT_CHECK_SHELL_FEATURES
-
-
-# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY)
-# ------------------------------------------------------
-# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and
-# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY.
-m4_defun([_LT_PROG_FUNCTION_REPLACE],
-[dnl {
-sed -e '/^$1 ()$/,/^} # $1 /c\
-$1 ()\
-{\
-m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1])
-} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-])
-
-
-# _LT_PROG_REPLACE_SHELLFNS
-# -------------------------
-# Replace existing portable implementations of several shell functions with
-# equivalent extended shell implementations where those features are available..
-m4_defun([_LT_PROG_REPLACE_SHELLFNS],
-[if test x"$xsi_shell" = xyes; then
- _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl
- case ${1} in
- */*) func_dirname_result="${1%/*}${2}" ;;
- * ) func_dirname_result="${3}" ;;
- esac])
-
- _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl
- func_basename_result="${1##*/}"])
-
- _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl
- case ${1} in
- */*) func_dirname_result="${1%/*}${2}" ;;
- * ) func_dirname_result="${3}" ;;
- esac
- func_basename_result="${1##*/}"])
-
- _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl
- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
- # positional parameters, so assign one to ordinary parameter first.
- func_stripname_result=${3}
- func_stripname_result=${func_stripname_result#"${1}"}
- func_stripname_result=${func_stripname_result%"${2}"}])
-
- _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl
- func_split_long_opt_name=${1%%=*}
- func_split_long_opt_arg=${1#*=}])
-
- _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl
- func_split_short_opt_arg=${1#??}
- func_split_short_opt_name=${1%"$func_split_short_opt_arg"}])
-
- _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl
- case ${1} in
- *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
- *) func_lo2o_result=${1} ;;
- esac])
-
- _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo])
-
- _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))])
-
- _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}])
-fi
-
-if test x"$lt_shell_append" = xyes; then
- _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"])
-
- _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl
- func_quote_for_eval "${2}"
-dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \
- eval "${1}+=\\\\ \\$func_quote_for_eval_result"])
-
- # Save a `func_append' function call where possible by direct use of '+='
- sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
- test 0 -eq $? || _lt_function_replace_fail=:
-else
- # Save a `func_append' function call even when '+=' is not available
- sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
- && mv -f "$cfgfile.tmp" "$cfgfile" \
- || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
- test 0 -eq $? || _lt_function_replace_fail=:
-fi
-
-if test x"$_lt_function_replace_fail" = x":"; then
- AC_MSG_WARN([Unable to substitute extended shell functions in $ofile])
-fi
-])
-
-# _LT_PATH_CONVERSION_FUNCTIONS
-# -----------------------------
-# Determine which file name conversion functions should be used by
-# func_to_host_file (and, implicitly, by func_to_host_path). These are needed
-# for certain cross-compile configurations and native mingw.
-m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_MSG_CHECKING([how to convert $build file names to $host format])
-AC_CACHE_VAL(lt_cv_to_host_file_cmd,
-[case $host in
- *-*-mingw* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
- ;;
- *-*-cygwin* )
- lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
- ;;
- * ) # otherwise, assume *nix
- lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
- ;;
- esac
- ;;
- *-*-cygwin* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
- ;;
- *-*-cygwin* )
- lt_cv_to_host_file_cmd=func_convert_file_noop
- ;;
- * ) # otherwise, assume *nix
- lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
- ;;
- esac
- ;;
- * ) # unhandled hosts (and "normal" native builds)
- lt_cv_to_host_file_cmd=func_convert_file_noop
- ;;
-esac
-])
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
-_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
- [0], [convert $build file names to $host format])dnl
-
-AC_MSG_CHECKING([how to convert $build file names to toolchain format])
-AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
-[#assume ordinary cross tools, or native build.
-lt_cv_to_tool_file_cmd=func_convert_file_noop
-case $host in
- *-*-mingw* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
- ;;
- esac
- ;;
-esac
-])
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
-_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
- [0], [convert $build files to toolchain format])dnl
-])# _LT_PATH_CONVERSION_FUNCTIONS
diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4
deleted file mode 100644
index 5d9acd8..0000000
--- a/m4/ltoptions.m4
+++ /dev/null
@@ -1,384 +0,0 @@
-# Helper functions for option handling. -*- Autoconf -*-
-#
-# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
-# Written by Gary V. Vaughan, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 7 ltoptions.m4
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
-
-
-# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
-# ------------------------------------------
-m4_define([_LT_MANGLE_OPTION],
-[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
-
-
-# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
-# ---------------------------------------
-# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
-# matching handler defined, dispatch to it. Other OPTION-NAMEs are
-# saved as a flag.
-m4_define([_LT_SET_OPTION],
-[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
-m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
- _LT_MANGLE_DEFUN([$1], [$2]),
- [m4_warning([Unknown $1 option `$2'])])[]dnl
-])
-
-
-# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
-# ------------------------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-m4_define([_LT_IF_OPTION],
-[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
-
-
-# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
-# -------------------------------------------------------
-# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
-# are set.
-m4_define([_LT_UNLESS_OPTIONS],
-[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
- [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
- [m4_define([$0_found])])])[]dnl
-m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
-])[]dnl
-])
-
-
-# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
-# ----------------------------------------
-# OPTION-LIST is a space-separated list of Libtool options associated
-# with MACRO-NAME. If any OPTION has a matching handler declared with
-# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
-# the unknown option and exit.
-m4_defun([_LT_SET_OPTIONS],
-[# Set options
-m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
- [_LT_SET_OPTION([$1], _LT_Option)])
-
-m4_if([$1],[LT_INIT],[
- dnl
- dnl Simply set some default values (i.e off) if boolean options were not
- dnl specified:
- _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
- ])
- _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
- ])
- dnl
- dnl If no reference was made to various pairs of opposing options, then
- dnl we run the default mode handler for the pair. For example, if neither
- dnl `shared' nor `disable-shared' was passed, we enable building of shared
- dnl archives by default:
- _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
- _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
- _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
- _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
- [_LT_ENABLE_FAST_INSTALL])
- ])
-])# _LT_SET_OPTIONS
-
-
-## --------------------------------- ##
-## Macros to handle LT_INIT options. ##
-## --------------------------------- ##
-
-# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
-# -----------------------------------------
-m4_define([_LT_MANGLE_DEFUN],
-[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
-
-
-# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
-# -----------------------------------------------
-m4_define([LT_OPTION_DEFINE],
-[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
-])# LT_OPTION_DEFINE
-
-
-# dlopen
-# ------
-LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
-])
-
-AU_DEFUN([AC_LIBTOOL_DLOPEN],
-[_LT_SET_OPTION([LT_INIT], [dlopen])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `dlopen' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
-
-
-# win32-dll
-# ---------
-# Declare package support for building win32 dll's.
-LT_OPTION_DEFINE([LT_INIT], [win32-dll],
-[enable_win32_dll=yes
-
-case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
- AC_CHECK_TOOL(AS, as, false)
- AC_CHECK_TOOL(DLLTOOL, dlltool, false)
- AC_CHECK_TOOL(OBJDUMP, objdump, false)
- ;;
-esac
-
-test -z "$AS" && AS=as
-_LT_DECL([], [AS], [1], [Assembler program])dnl
-
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
-])# win32-dll
-
-AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-_LT_SET_OPTION([LT_INIT], [win32-dll])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `win32-dll' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
-
-
-# _LT_ENABLE_SHARED([DEFAULT])
-# ----------------------------
-# implement the --enable-shared flag, and supports the `shared' and
-# `disable-shared' LT_INIT options.
-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_SHARED],
-[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([shared],
- [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
- [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
- [p=${PACKAGE-default}
- case $enableval in
- yes) enable_shared=yes ;;
- no) enable_shared=no ;;
- *)
- enable_shared=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_shared=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac],
- [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
-
- _LT_DECL([build_libtool_libs], [enable_shared], [0],
- [Whether or not to build shared libraries])
-])# _LT_ENABLE_SHARED
-
-LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
-
-# Old names:
-AC_DEFUN([AC_ENABLE_SHARED],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
-])
-
-AC_DEFUN([AC_DISABLE_SHARED],
-[_LT_SET_OPTION([LT_INIT], [disable-shared])
-])
-
-AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
-AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_ENABLE_SHARED], [])
-dnl AC_DEFUN([AM_DISABLE_SHARED], [])
-
-
-
-# _LT_ENABLE_STATIC([DEFAULT])
-# ----------------------------
-# implement the --enable-static flag, and support the `static' and
-# `disable-static' LT_INIT options.
-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_STATIC],
-[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([static],
- [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
- [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
- [p=${PACKAGE-default}
- case $enableval in
- yes) enable_static=yes ;;
- no) enable_static=no ;;
- *)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_static=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac],
- [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
-
- _LT_DECL([build_old_libs], [enable_static], [0],
- [Whether or not to build static libraries])
-])# _LT_ENABLE_STATIC
-
-LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
-
-# Old names:
-AC_DEFUN([AC_ENABLE_STATIC],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
-])
-
-AC_DEFUN([AC_DISABLE_STATIC],
-[_LT_SET_OPTION([LT_INIT], [disable-static])
-])
-
-AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
-AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_ENABLE_STATIC], [])
-dnl AC_DEFUN([AM_DISABLE_STATIC], [])
-
-
-
-# _LT_ENABLE_FAST_INSTALL([DEFAULT])
-# ----------------------------------
-# implement the --enable-fast-install flag, and support the `fast-install'
-# and `disable-fast-install' LT_INIT options.
-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_FAST_INSTALL],
-[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([fast-install],
- [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
- [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
- [p=${PACKAGE-default}
- case $enableval in
- yes) enable_fast_install=yes ;;
- no) enable_fast_install=no ;;
- *)
- enable_fast_install=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_fast_install=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac],
- [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
-
-_LT_DECL([fast_install], [enable_fast_install], [0],
- [Whether or not to optimize for fast installation])dnl
-])# _LT_ENABLE_FAST_INSTALL
-
-LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
-
-# Old names:
-AU_DEFUN([AC_ENABLE_FAST_INSTALL],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `fast-install' option into LT_INIT's first parameter.])
-])
-
-AU_DEFUN([AC_DISABLE_FAST_INSTALL],
-[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `disable-fast-install' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
-dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
-
-
-# _LT_WITH_PIC([MODE])
-# --------------------
-# implement the --with-pic flag, and support the `pic-only' and `no-pic'
-# LT_INIT options.
-# MODE is either `yes' or `no'. If omitted, it defaults to `both'.
-m4_define([_LT_WITH_PIC],
-[AC_ARG_WITH([pic],
- [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
- [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
- [lt_p=${PACKAGE-default}
- case $withval in
- yes|no) pic_mode=$withval ;;
- *)
- pic_mode=default
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for lt_pkg in $withval; do
- IFS="$lt_save_ifs"
- if test "X$lt_pkg" = "X$lt_p"; then
- pic_mode=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac],
- [pic_mode=default])
-
-test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
-
-_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
-])# _LT_WITH_PIC
-
-LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
-LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
-
-# Old name:
-AU_DEFUN([AC_LIBTOOL_PICMODE],
-[_LT_SET_OPTION([LT_INIT], [pic-only])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `pic-only' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
-
-## ----------------- ##
-## LTDL_INIT Options ##
-## ----------------- ##
-
-m4_define([_LTDL_MODE], [])
-LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
- [m4_define([_LTDL_MODE], [nonrecursive])])
-LT_OPTION_DEFINE([LTDL_INIT], [recursive],
- [m4_define([_LTDL_MODE], [recursive])])
-LT_OPTION_DEFINE([LTDL_INIT], [subproject],
- [m4_define([_LTDL_MODE], [subproject])])
-
-m4_define([_LTDL_TYPE], [])
-LT_OPTION_DEFINE([LTDL_INIT], [installable],
- [m4_define([_LTDL_TYPE], [installable])])
-LT_OPTION_DEFINE([LTDL_INIT], [convenience],
- [m4_define([_LTDL_TYPE], [convenience])])
diff --git a/m4/ltsugar.m4 b/m4/ltsugar.m4
deleted file mode 100644
index 9000a05..0000000
--- a/m4/ltsugar.m4
+++ /dev/null
@@ -1,123 +0,0 @@
-# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
-#
-# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
-# Written by Gary V. Vaughan, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 6 ltsugar.m4
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
-
-
-# lt_join(SEP, ARG1, [ARG2...])
-# -----------------------------
-# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
-# associated separator.
-# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
-# versions in m4sugar had bugs.
-m4_define([lt_join],
-[m4_if([$#], [1], [],
- [$#], [2], [[$2]],
- [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
-m4_define([_lt_join],
-[m4_if([$#$2], [2], [],
- [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
-
-
-# lt_car(LIST)
-# lt_cdr(LIST)
-# ------------
-# Manipulate m4 lists.
-# These macros are necessary as long as will still need to support
-# Autoconf-2.59 which quotes differently.
-m4_define([lt_car], [[$1]])
-m4_define([lt_cdr],
-[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
- [$#], 1, [],
- [m4_dquote(m4_shift($@))])])
-m4_define([lt_unquote], $1)
-
-
-# lt_append(MACRO-NAME, STRING, [SEPARATOR])
-# ------------------------------------------
-# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
-# Note that neither SEPARATOR nor STRING are expanded; they are appended
-# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
-# No SEPARATOR is output if MACRO-NAME was previously undefined (different
-# than defined and empty).
-#
-# This macro is needed until we can rely on Autoconf 2.62, since earlier
-# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
-m4_define([lt_append],
-[m4_define([$1],
- m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
-
-
-
-# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
-# ----------------------------------------------------------
-# Produce a SEP delimited list of all paired combinations of elements of
-# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list
-# has the form PREFIXmINFIXSUFFIXn.
-# Needed until we can rely on m4_combine added in Autoconf 2.62.
-m4_define([lt_combine],
-[m4_if(m4_eval([$# > 3]), [1],
- [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
-[[m4_foreach([_Lt_prefix], [$2],
- [m4_foreach([_Lt_suffix],
- ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
- [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
-
-
-# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
-# -----------------------------------------------------------------------
-# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
-# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
-m4_define([lt_if_append_uniq],
-[m4_ifdef([$1],
- [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
- [lt_append([$1], [$2], [$3])$4],
- [$5])],
- [lt_append([$1], [$2], [$3])$4])])
-
-
-# lt_dict_add(DICT, KEY, VALUE)
-# -----------------------------
-m4_define([lt_dict_add],
-[m4_define([$1($2)], [$3])])
-
-
-# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
-# --------------------------------------------
-m4_define([lt_dict_add_subkey],
-[m4_define([$1($2:$3)], [$4])])
-
-
-# lt_dict_fetch(DICT, KEY, [SUBKEY])
-# ----------------------------------
-m4_define([lt_dict_fetch],
-[m4_ifval([$3],
- m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
- m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
-
-
-# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
-# -----------------------------------------------------------------
-m4_define([lt_if_dict_fetch],
-[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
- [$5],
- [$6])])
-
-
-# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
-# --------------------------------------------------------------
-m4_define([lt_dict_filter],
-[m4_if([$5], [], [],
- [lt_join(m4_quote(m4_default([$4], [[, ]])),
- lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
- [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
-])
diff --git a/m4/ltversion.m4 b/m4/ltversion.m4
deleted file mode 100644
index 07a8602..0000000
--- a/m4/ltversion.m4
+++ /dev/null
@@ -1,23 +0,0 @@
-# ltversion.m4 -- version numbers -*- Autoconf -*-
-#
-# Copyright (C) 2004 Free Software Foundation, Inc.
-# Written by Scott James Remnant, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# @configure_input@
-
-# serial 3337 ltversion.m4
-# This file is part of GNU Libtool
-
-m4_define([LT_PACKAGE_VERSION], [2.4.2])
-m4_define([LT_PACKAGE_REVISION], [1.3337])
-
-AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.4.2'
-macro_revision='1.3337'
-_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
-_LT_DECL(, macro_revision, 0)
-])
diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4
deleted file mode 100644
index c573da9..0000000
--- a/m4/lt~obsolete.m4
+++ /dev/null
@@ -1,98 +0,0 @@
-# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
-#
-# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
-# Written by Scott James Remnant, 2004.
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 5 lt~obsolete.m4
-
-# These exist entirely to fool aclocal when bootstrapping libtool.
-#
-# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
-# which have later been changed to m4_define as they aren't part of the
-# exported API, or moved to Autoconf or Automake where they belong.
-#
-# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN
-# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
-# using a macro with the same name in our local m4/libtool.m4 it'll
-# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
-# and doesn't know about Autoconf macros at all.)
-#
-# So we provide this file, which has a silly filename so it's always
-# included after everything else. This provides aclocal with the
-# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
-# because those macros already exist, or will be overwritten later.
-# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
-#
-# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
-# Yes, that means every name once taken will need to remain here until
-# we give up compatibility with versions before 1.7, at which point
-# we need to keep only those names which we still refer to.
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
-
-m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
-m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])])
-m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
-m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])])
-m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
-m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])])
-m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])])
-m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
-m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])])
-m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])])
-m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])])
-m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
-m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
-m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
-m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
-m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])])
-m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])])
-m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
-m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
-m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])])
-m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])])
-m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
-m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
-m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
-m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
-m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
-m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])])
-m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])])
-m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])])
-m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
-m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])])
-m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])])
-m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])])
-m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])])
-m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
-m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])])
-m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
-m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])])
-m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])])
-m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])])
-m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
-m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
-m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
-m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
-m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
-m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
-m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])])
-m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
-m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
-m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])])
-m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
-m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
-m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])])
-m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])])
-m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])
diff --git a/make/agentccheck.mk b/make/agentccheck.mk
new file mode 100644
index 0000000..c4f4753
--- /dev/null
+++ b/make/agentccheck.mk
@@ -0,0 +1,23 @@
+DATADIR:=$(abs_top_srcdir)/tests/data/metadata
+
+check: $(TARGET:%=%.xml-check) $(SYMTARGET:%=%.xml-check)
+xml-upload: $(TEST_TARGET:%=%.xml-upload) $(SYMTARGET:%=%.xml-upload)
+
+xml-check.%: %
+ $(eval INPUT=$(subst xml-check.,,$@))
+ $(eval TEMPFILE = $(shell mktemp))
+ ./$(INPUT) -o metadata > $(TEMPFILE)
+ diff $(TEMPFILE) $(DATADIR)/$(INPUT).xml
+ rm $(TEMPFILE)
+
+xml-upload.%: %
+ $(eval INPUT=$(subst xml-upload.,,$@))
+ ./$(INPUT) -o metadata > $(DATADIR)/$(INPUT).xml
+
+# If test will fail, rerun fence agents to show problems
+delay-check.%: %
+ $(eval INPUT=$(subst delay-check.,,$@))
+ test `/usr/bin/time -f "%e" ./$(INPUT) --delay 10 $(FENCE_TEST_ARGS) -- 2>&1 |\
+ sed 's/\.//' | tail -n 1` -ge 1000 || \
+ /usr/bin/time -f "%e" ./$(INPUT) --delay 0 $(FENCE_TEST_ARGS) --
+
diff --git a/make/agentpycheck.mk b/make/agentpycheck.mk
index 759da0c..c16a7ac 100644
--- a/make/agentpycheck.mk
+++ b/make/agentpycheck.mk
@@ -4,6 +4,7 @@ AWK_VAL='BEGIN {store=-1} /name=\".*_path\"/ {store=2} {if (store!=0) {print}; s
TEST_TARGET=$(filter-out $(TEST_TARGET_SKIP),$(TARGET))
check: $(TEST_TARGET:%=%.xml-check) $(SYMTARGET:%=%.xml-check) $(TEST_TARGET:%=%.delay-check) $(TEST_TARGET:%=%.rng-check)
+xml-upload: $(TEST_TARGET:%=%.xml-upload) $(SYMTARGET:%=%.xml-upload)
%.xml-check: %
$(eval INPUT=$(subst .xml-check,,$(@F)))
diff --git a/make/clusterautoconfig.h.in b/make/clusterautoconfig.h.in
deleted file mode 100644
index 352e461..0000000
--- a/make/clusterautoconfig.h.in
+++ /dev/null
@@ -1,192 +0,0 @@
-/* make/clusterautoconfig.h.in. Generated from configure.ac by autoheader. */
-
-/* Default cluster var/run directory */
-#undef CLUSTERVARRUN
-
-/* Compiling Debugging code */
-#undef DEBUG
-
-/* Default config directory */
-#undef DEFAULT_CONFIG_DIR
-
-/* Default config file */
-#undef DEFAULT_CONFIG_FILE
-
-/* Define to 1 if you have the `alarm' function. */
-#undef HAVE_ALARM
-
-/* Define to 1 if you have the <arpa/inet.h> header file. */
-#undef HAVE_ARPA_INET_H
-
-/* Define to 1 if you have the `atexit' function. */
-#undef HAVE_ATEXIT
-
-/* Define to 1 if you have the `bzero' function. */
-#undef HAVE_BZERO
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#undef HAVE_DLFCN_H
-
-/* Define to 1 if you have the `dup2' function. */
-#undef HAVE_DUP2
-
-/* Define to 1 if you have the <fcntl.h> header file. */
-#undef HAVE_FCNTL_H
-
-/* Define to 1 if you have the `fork' function. */
-#undef HAVE_FORK
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define to 1 if you have the <libintl.h> header file. */
-#undef HAVE_LIBINTL_H
-
-/* Define to 1 if you have the <limits.h> header file. */
-#undef HAVE_LIMITS_H
-
-/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
- to 0 otherwise. */
-#undef HAVE_MALLOC
-
-/* Define to 1 if you have the `memmove' function. */
-#undef HAVE_MEMMOVE
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the `memset' function. */
-#undef HAVE_MEMSET
-
-/* Define to 1 if you have the <netdb.h> header file. */
-#undef HAVE_NETDB_H
-
-/* Define to 1 if you have the `select' function. */
-#undef HAVE_SELECT
-
-/* Define to 1 if you have the `socket' function. */
-#undef HAVE_SOCKET
-
-/* Define to 1 if you have the <stddef.h> header file. */
-#undef HAVE_STDDEF_H
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the `strcasecmp' function. */
-#undef HAVE_STRCASECMP
-
-/* Define to 1 if you have the `strchr' function. */
-#undef HAVE_STRCHR
-
-/* Define to 1 if you have the `strdup' function. */
-#undef HAVE_STRDUP
-
-/* Define to 1 if you have the `strerror' function. */
-#undef HAVE_STRERROR
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the `strtol' function. */
-#undef HAVE_STRTOL
-
-/* Define to 1 if you have the <syslog.h> header file. */
-#undef HAVE_SYSLOG_H
-
-/* Define to 1 if you have the <sys/socket.h> header file. */
-#undef HAVE_SYS_SOCKET_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#undef HAVE_SYS_TIME_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define to 1 if you have the `vfork' function. */
-#undef HAVE_VFORK
-
-/* Define to 1 if you have the <vfork.h> header file. */
-#undef HAVE_VFORK_H
-
-/* Define to 1 if `fork' works. */
-#undef HAVE_WORKING_FORK
-
-/* Define to 1 if `vfork' works. */
-#undef HAVE_WORKING_VFORK
-
-/* Default logging directory */
-#undef LOGDIR
-
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
- */
-#undef LT_OBJDIR
-
-/* Name of package */
-#undef PACKAGE
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Version number of package */
-#undef VERSION
-
-/* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>,
- <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
- #define below would cause a syntax error. */
-#undef _UINT32_T
-
-/* Define to `__inline__' or `__inline' if that's what the C compiler
- calls it, or to nothing if 'inline' is not supported under any name. */
-#ifndef __cplusplus
-#undef inline
-#endif
-
-/* Define to rpl_malloc if the replacement function should be used. */
-#undef malloc
-
-/* Define to `int' if <sys/types.h> does not define. */
-#undef pid_t
-
-/* Define to `unsigned int' if <sys/types.h> does not define. */
-#undef size_t
-
-/* Define to `int' if <sys/types.h> does not define. */
-#undef ssize_t
-
-/* Define to the type of an unsigned integer type of width exactly 32 bits if
- such a type exists and the standard includes do not define it. */
-#undef uint32_t
-
-/* Define as `fork' if `vfork' does not work. */
-#undef vfork
diff --git a/make/copyright.cf b/make/copyright.cf
deleted file mode 100644
index 3801aa9..0000000
--- a/make/copyright.cf
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef __COPYRIGHT_DOT_CF__
-#define __COPYRIGHT_DOT_CF__
-
-#define REDHAT_COPYRIGHT "Copyright (C) Red Hat, Inc. 2004-2010 All rights reserved."
-
-#endif /* __COPYRIGHT_DOT_CF__ */
diff --git a/make/fencebuild.mk b/make/fencebuild.mk
index a8d205e..25bb0f1 100644
--- a/make/fencebuild.mk
+++ b/make/fencebuild.mk
@@ -1,11 +1,9 @@
define gen_agent_from_py
mkdir -p `dirname $@`
- bash $(top_srcdir)/scripts/fenceparse \
- $(top_srcdir)/make/copyright.cf REDHAT_COPYRIGHT \
- $(VERSION) \
- $(abs_srcdir) $@ | \
+ cat $(abs_srcdir)/$@.py | \
sed \
-e 's#@''PYTHON@#${PYTHON}#g' \
+ -e 's#@''RELEASE_VERSION#${VERSION}#g' \
-e 's#@''FENCEAGENTSLIBDIR@#${FENCEAGENTSLIBDIR}#g' \
-e 's#@''LOGDIR@#${LOGDIR}#g' \
-e 's#@''SBINDIR@#${sbindir}#g' \
@@ -30,6 +28,9 @@ define gen_agent_from_py
-e 's#@''SNMPGET_PATH@#${SNMPGET_PATH}#g' \
-e 's#@''NOVA_PATH@#${NOVA_PATH}#g' \
-e 's#@''POWERMAN_PATH@#${POWERMAN_PATH}#g' \
+ -e 's#@''PING_CMD@#${PING_CMD}#g' \
+ -e 's#@''PING6_CMD@#${PING6_CMD}#g' \
+ -e 's#@''PING4_CMD@#${PING4_CMD}#g' \
> $@
if [ 0 -eq `echo "$(@)" | grep fence_ &> /dev/null; echo $$?` ]; then \
diff --git a/make/fencemanc.mk b/make/fencemanc.mk
new file mode 100644
index 0000000..b5fb0cd
--- /dev/null
+++ b/make/fencemanc.mk
@@ -0,0 +1,10 @@
+%.8: % $(top_srcdir)/fence/agents/lib/fence2man.xsl
+ set -e && \
+ $* -o metadata > $(@D)/.$(@F).tmp && \
+ xmllint --noout --relaxng $(top_srcdir)/fence/agents/lib/metadata.rng $(@D)/.$(@F).tmp && \
+ xsltproc $(top_srcdir)/fence/agents/lib/fence2man.xsl $(@D)/.$(@F).tmp > $@
+ xsltproc $(top_srcdir)/fence/agents/lib/fence2wiki.xsl $(@D)/.$(@F).tmp | grep -v '<?xml' > $(@D)/$(@F:%.8=%.wiki)
+
+clean-man:
+ $(eval CLEAN_TARGET=$(shell find -name "*.8" | grep -Pv "kdump/fence_kdump_send.8|manual/fence_ack_manual.8"))
+ rm -f $(CLEAN_TARGET) */.*.8.tmp */*.wiki
diff --git a/make/fencemanperl.mk b/make/fencemanperl.mk
new file mode 100644
index 0000000..0141aa8
--- /dev/null
+++ b/make/fencemanperl.mk
@@ -0,0 +1,9 @@
+%.8: $(TARGET) $(top_srcdir)/fence/agents/lib/fence2man.xsl
+ set -e && \
+ perl $(TARGET) -o metadata > .$@.tmp && \
+ xmllint --noout --relaxng $(top_srcdir)/fence/agents/lib/metadata.rng .$@.tmp && \
+ xsltproc $(top_srcdir)/fence/agents/lib/fence2man.xsl .$@.tmp > $@
+ xsltproc $(top_srcdir)/fence/agents/lib/fence2wiki.xsl .$@.tmp | grep -v '<?xml' > $(@:%.8=%.wiki)
+
+clean-man:
+ rm -f *.8 .*.8.tmp *.wiki
diff --git a/make/release.mk b/make/release.mk
index 3a34ace..bf94495 100644
--- a/make/release.mk
+++ b/make/release.mk
@@ -1,12 +1,18 @@
# to build official release tarballs, handle tagging and publish.
-# signing key
-gpgsignkey=0x6CE95CA7
+project = fence-agents
-project=fence-agents
+deliverables = $(project)-$(version).sha256 \
+ $(project)-$(version).tar.bz2 \
+ $(project)-$(version).tar.gz \
+ $(project)-$(version).tar.xz
-all: checks setup tag tarballs sha256 sign
+.PHONY: all
+all: tag tarballs
+
+
+.PHONY: checks
checks:
ifeq (,$(version))
@echo ERROR: need to define version=
@@ -16,58 +22,61 @@ endif
echo This script needs to be executed from top level cluster git tree; \
exit 1; \
fi
+ @if [ -n "$$(git status --untracked-files=no --porcelain 2>/dev/null)" ]; then \
+ echo Stash or rollback the uncommitted changes in git first; \
+ exit 1; \
+ fi
+
+.PHONY: setup
setup: checks
./autogen.sh
./configure
- make maintainer-clean
+ $(MAKE) maintainer-clean
+
+.PHONY: tag
tag: setup ./tag-$(version)
tag-$(version):
ifeq (,$(release))
@echo Building test release $(version), no tagging
+ echo '$(version)' > .tarball-version
else
+ # following will be captured by git-version-gen automatically
git tag -a -m "v$(version) release" v$(version) HEAD
@touch $@
endif
+
+.PHONY: tarballs
tarballs: tag
./autogen.sh
./configure
- make distcheck
+ $(MAKE) distcheck
-sha256: tarballs $(project)-$(version).sha256
-$(project)-$(version).sha256:
-ifeq (,$(release))
- @echo Building test release $(version), no sha256
-else
- sha256sum $(project)-$(version)*tar* | sort -k2 > $@
-endif
+.PHONY: sha256
+sha256: $(project)-$(version).sha256
-sign: sha256 $(project)-$(version).sha256.asc
+$(deliverables): tarballs
-$(project)-$(version).sha256.asc: $(project)-$(version).sha256
-ifeq (,$(release))
- @echo Building test release $(version), no sign
-else
- gpg --default-key $(gpgsignkey) \
- --detach-sign \
- --armor \
- $<
-endif
+$(project)-$(version).sha256:
+ # checksum anything from deliverables except for in-prep checksums file
+ sha256sum $(deliverables:$@=) | sort -k2 > $@
+
+.PHONY: publish
publish:
ifeq (,$(release))
@echo Building test release $(version), no publishing!
else
- git push --tags origin
- scp $(project)-$(version).* \
- fedorahosted.org:$(project)
- @echo Hey you!.. yeah you looking somewhere else!
- @echo remember to update the wiki and send the email to cluster-devel and linux-cluster
+ git push --follow-tags origin
+ @echo Hey you! Yeah you, looking somewhere else!
+ @echo Remember to notify cluster-devel/RH and users/ClusterLabs MLs.
endif
+
+.PHONY: clean
clean:
- rm -rf $(project)* tag-*
+ rm -rf $(project)* tag-* .tarball-version
diff --git a/missing b/missing
deleted file mode 100755
index f62bbae..0000000
--- a/missing
+++ /dev/null
@@ -1,215 +0,0 @@
-#! /bin/sh
-# Common wrapper for a few potentially missing GNU programs.
-
-scriptversion=2013-10-28.13; # UTC
-
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
-# Originally written by Fran,cois Pinard <pinard at iro.umontreal.ca>, 1996.
-
-# 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
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-if test $# -eq 0; then
- echo 1>&2 "Try '$0 --help' for more information"
- exit 1
-fi
-
-case $1 in
-
- --is-lightweight)
- # Used by our autoconf macros to check whether the available missing
- # script is modern enough.
- exit 0
- ;;
-
- --run)
- # Back-compat with the calling convention used by older automake.
- shift
- ;;
-
- -h|--h|--he|--hel|--help)
- echo "\
-$0 [OPTION]... PROGRAM [ARGUMENT]...
-
-Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
-to PROGRAM being missing or too old.
-
-Options:
- -h, --help display this help and exit
- -v, --version output version information and exit
-
-Supported PROGRAM values:
- aclocal autoconf autoheader autom4te automake makeinfo
- bison yacc flex lex help2man
-
-Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
-'g' are ignored when checking the name.
-
-Send bug reports to <bug-automake at gnu.org>."
- exit $?
- ;;
-
- -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
- echo "missing $scriptversion (GNU Automake)"
- exit $?
- ;;
-
- -*)
- echo 1>&2 "$0: unknown '$1' option"
- echo 1>&2 "Try '$0 --help' for more information"
- exit 1
- ;;
-
-esac
-
-# Run the given program, remember its exit status.
-"$@"; st=$?
-
-# If it succeeded, we are done.
-test $st -eq 0 && exit 0
-
-# Also exit now if we it failed (or wasn't found), and '--version' was
-# passed; such an option is passed most likely to detect whether the
-# program is present and works.
-case $2 in --version|--help) exit $st;; esac
-
-# Exit code 63 means version mismatch. This often happens when the user
-# tries to use an ancient version of a tool on a file that requires a
-# minimum version.
-if test $st -eq 63; then
- msg="probably too old"
-elif test $st -eq 127; then
- # Program was missing.
- msg="missing on your system"
-else
- # Program was found and executed, but failed. Give up.
- exit $st
-fi
-
-perl_URL=http://www.perl.org/
-flex_URL=http://flex.sourceforge.net/
-gnu_software_URL=http://www.gnu.org/software
-
-program_details ()
-{
- case $1 in
- aclocal|automake)
- echo "The '$1' program is part of the GNU Automake package:"
- echo "<$gnu_software_URL/automake>"
- echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
- echo "<$gnu_software_URL/autoconf>"
- echo "<$gnu_software_URL/m4/>"
- echo "<$perl_URL>"
- ;;
- autoconf|autom4te|autoheader)
- echo "The '$1' program is part of the GNU Autoconf package:"
- echo "<$gnu_software_URL/autoconf/>"
- echo "It also requires GNU m4 and Perl in order to run:"
- echo "<$gnu_software_URL/m4/>"
- echo "<$perl_URL>"
- ;;
- esac
-}
-
-give_advice ()
-{
- # Normalize program name to check for.
- normalized_program=`echo "$1" | sed '
- s/^gnu-//; t
- s/^gnu//; t
- s/^g//; t'`
-
- printf '%s\n' "'$1' is $msg."
-
- configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
- case $normalized_program in
- autoconf*)
- echo "You should only need it if you modified 'configure.ac',"
- echo "or m4 files included by it."
- program_details 'autoconf'
- ;;
- autoheader*)
- echo "You should only need it if you modified 'acconfig.h' or"
- echo "$configure_deps."
- program_details 'autoheader'
- ;;
- automake*)
- echo "You should only need it if you modified 'Makefile.am' or"
- echo "$configure_deps."
- program_details 'automake'
- ;;
- aclocal*)
- echo "You should only need it if you modified 'acinclude.m4' or"
- echo "$configure_deps."
- program_details 'aclocal'
- ;;
- autom4te*)
- echo "You might have modified some maintainer files that require"
- echo "the 'autom4te' program to be rebuilt."
- program_details 'autom4te'
- ;;
- bison*|yacc*)
- echo "You should only need it if you modified a '.y' file."
- echo "You may want to install the GNU Bison package:"
- echo "<$gnu_software_URL/bison/>"
- ;;
- lex*|flex*)
- echo "You should only need it if you modified a '.l' file."
- echo "You may want to install the Fast Lexical Analyzer package:"
- echo "<$flex_URL>"
- ;;
- help2man*)
- echo "You should only need it if you modified a dependency" \
- "of a man page."
- echo "You may want to install the GNU Help2man package:"
- echo "<$gnu_software_URL/help2man/>"
- ;;
- makeinfo*)
- echo "You should only need it if you modified a '.texi' file, or"
- echo "any other file indirectly affecting the aspect of the manual."
- echo "You might want to install the Texinfo package:"
- echo "<$gnu_software_URL/texinfo/>"
- echo "The spurious makeinfo call might also be the consequence of"
- echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
- echo "want to install GNU make:"
- echo "<$gnu_software_URL/make/>"
- ;;
- *)
- echo "You might have modified some files without having the proper"
- echo "tools for further handling them. Check the 'README' file, it"
- echo "often tells you about the needed prerequisites for installing"
- echo "this package. You may also peek at any GNU archive site, in"
- echo "case some other package contains this missing '$1' program."
- ;;
- esac
-}
-
-give_advice "$1" | sed -e '1s/^/WARNING: /' \
- -e '2,$s/^/ /' >&2
-
-# Propagate the correct exit status (expected to be 127 for a program
-# not found, 63 for a program that failed due to version mismatch).
-exit $st
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
-# time-stamp-end: "; # UTC"
-# End:
diff --git a/scripts/fenceparse b/scripts/fenceparse
deleted file mode 100644
index b6ed431..0000000
--- a/scripts/fenceparse
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/bash
-
-set -e
-
-export LC_ALL=C
-
-definefile="$1"
-define="$2"
-release="$3"
-srcdir="$4"
-infile="$5"
-
-definedata="$(cat $definefile | grep "^\#define $define" | sed -e 's/.*'$define' //')"
-
-realinfile="$(ls $srcdir/$infile.*{py,pl,sh} 2>/dev/null || true)"
-
-[ -z "$realinfile" ] && exit 1
-
-interpreter="$(cat $realinfile | head -n 1 | awk -F "/" '{print $NF}')"
-interpreter="$(echo $interpreter)"
-
-case "$interpreter" in
- perl)
- start="\$"
- end=";"
- ;;
- *)
- start=""
- end=""
- ;;
-esac
-
-awk "{print}(\$1 ~ /#BEGIN_VERSION_GENERATION/){exit 0}" $realinfile
-echo ${start}RELEASE_VERSION=\"${release}\"${end}
-echo ${start}BUILD_DATE=\"\(built $(date)\)\"${end}
-if awk -v p=0 "(\$1 ~ /#BEGIN_VERSION_GENERATION/){p = 1} (\$1 ~ /#END_VERSION_GENERATION/){p = 0} {if(p==1)print}" $realinfile | \
- grep -q REDHAT_COPYRIGHT; then
- echo ${start}REDHAT_COPYRIGHT=${definedata}${end}
-fi
-awk -v p=0 "(\$1 ~ /#END_VERSION_GENERATION/){p = 1} {if(p==1)print}" $realinfile
-
-exit 0
diff --git a/tests/data/metadata/fence_alom.xml b/tests/data/metadata/fence_alom.xml
index 0d986f6..5656bf2 100644
--- a/tests/data/metadata/fence_alom.xml
+++ b/tests/data/metadata/fence_alom.xml
@@ -8,7 +8,12 @@
<content type="string" default="reboot" />
<shortdesc lang="en">Fencing action</shortdesc>
</parameter>
- <parameter name="cmd_prompt" unique="0" required="0">
+ <parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ <getopt mixed="-c, --command-prompt=[prompt]" />
+ <content type="string" default="['sc\\>\\ ']" />
+ <shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+ </parameter>
+ <parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
<getopt mixed="-c, --command-prompt=[prompt]" />
<content type="string" default="['sc\\>\\ ']" />
<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
@@ -28,7 +33,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="0">
+ <parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="0" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -38,27 +48,47 @@
<content type="integer" default="22" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="0">
+ <parameter name="plug" unique="0" required="0" obsoletes="port">
<getopt mixed="-n, --plug=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
</parameter>
- <parameter name="secure" unique="0" required="0">
+ <parameter name="port" unique="0" required="0" deprecated="1">
+ <getopt mixed="-n, --plug=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+ </parameter>
+ <parameter name="secure" unique="0" required="0" deprecated="1">
+ <getopt mixed="-x, --ssh" />
+ <content type="boolean" default="1" />
+ <shortdesc lang="en">Use SSH connection</shortdesc>
+ </parameter>
+ <parameter name="ssh" unique="0" required="0" obsoletes="secure">
<getopt mixed="-x, --ssh" />
<content type="boolean" default="1" />
<shortdesc lang="en">Use SSH connection</shortdesc>
@@ -68,17 +98,27 @@
<content type="string" />
<shortdesc lang="en">SSH options to use</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_amt.xml b/tests/data/metadata/fence_amt.xml
index dfdfa2e..4fceadb 100644
--- a/tests/data/metadata/fence_amt.xml
+++ b/tests/data/metadata/fence_amt.xml
@@ -29,7 +29,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="0">
+ <parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="0" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -47,17 +52,32 @@
</content>
<shortdesc lang="en">Method to fence</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="0">
+ <parameter name="plug" unique="0" required="0" obsoletes="port">
+ <getopt mixed="-n, --plug=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="0" deprecated="1">
<getopt mixed="-n, --plug=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
@@ -65,14 +85,19 @@
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
@@ -126,7 +151,12 @@
<content type="integer" default="1" />
<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
</parameter>
- <parameter name="sudo" unique="0" required="0">
+ <parameter name="sudo" unique="0" required="0" deprecated="1">
+ <getopt mixed="--use-sudo" />
+ <content type="boolean" />
+ <shortdesc lang="en">Use sudo (without password) when calling 3rd party software</shortdesc>
+ </parameter>
+ <parameter name="use_sudo" unique="0" required="0" obsoletes="sudo">
<getopt mixed="--use-sudo" />
<content type="boolean" />
<shortdesc lang="en">Use sudo (without password) when calling 3rd party software</shortdesc>
diff --git a/tests/data/metadata/fence_amt_ws.xml b/tests/data/metadata/fence_amt_ws.xml
index 4642c0f..2034ed8 100644
--- a/tests/data/metadata/fence_amt_ws.xml
+++ b/tests/data/metadata/fence_amt_ws.xml
@@ -29,7 +29,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="0">
+ <parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="0" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -47,17 +52,32 @@
</content>
<shortdesc lang="en">Method to fence</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="0">
+ <parameter name="plug" unique="0" required="0" obsoletes="port">
+ <getopt mixed="-n, --plug=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="0" deprecated="1">
<getopt mixed="-n, --plug=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
@@ -65,14 +85,19 @@
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_apc.xml b/tests/data/metadata/fence_apc.xml
index f1b94ed..3cc12c3 100644
--- a/tests/data/metadata/fence_apc.xml
+++ b/tests/data/metadata/fence_apc.xml
@@ -8,7 +8,12 @@
<content type="string" default="reboot" />
<shortdesc lang="en">Fencing action</shortdesc>
</parameter>
- <parameter name="cmd_prompt" unique="0" required="0">
+ <parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ <getopt mixed="-c, --command-prompt=[prompt]" />
+ <content type="string" default="['\n>', '\napc>']" />
+ <shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+ </parameter>
+ <parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
<getopt mixed="-c, --command-prompt=[prompt]" />
<content type="string" default="['\n>', '\napc>']" />
<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
@@ -28,7 +33,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -38,27 +48,47 @@
<content type="integer" default="23" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
</parameter>
- <parameter name="secure" unique="0" required="0">
+ <parameter name="port" unique="0" required="1" deprecated="1">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="secure" unique="0" required="0" deprecated="1">
+ <getopt mixed="-x, --ssh" />
+ <content type="boolean" />
+ <shortdesc lang="en">Use SSH connection</shortdesc>
+ </parameter>
+ <parameter name="ssh" unique="0" required="0" obsoletes="secure">
<getopt mixed="-x, --ssh" />
<content type="boolean" />
<shortdesc lang="en">Use SSH connection</shortdesc>
@@ -73,17 +103,27 @@
<content type="string" />
<shortdesc lang="en">Physical switch number on device</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_apc_snmp.xml b/tests/data/metadata/fence_apc_snmp.xml
index a7dc7ef..ef642d0 100644
--- a/tests/data/metadata/fence_apc_snmp.xml
+++ b/tests/data/metadata/fence_apc_snmp.xml
@@ -24,7 +24,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -34,22 +39,37 @@
<content type="integer" default="161" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="0">
+ <parameter name="login" unique="0" required="0" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="1" deprecated="1">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
@@ -98,17 +118,27 @@
</content>
<shortdesc lang="en">Specifies SNMP version to use</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="0" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_azure_arm.xml b/tests/data/metadata/fence_aws.xml
similarity index 69%
copy from tests/data/metadata/fence_azure_arm.xml
copy to tests/data/metadata/fence_aws.xml
index de0f01e..9b99fd0 100644
--- a/tests/data/metadata/fence_azure_arm.xml
+++ b/tests/data/metadata/fence_aws.xml
@@ -1,59 +1,57 @@
<?xml version="1.0" ?>
-<resource-agent name="fence_azure_arm" shortdesc="Fence agent for Azure Resource Manager" >
-<longdesc>Used to deallocate virtual machines and to report power state of virtual machines running in Azure</longdesc>
-<vendor-url>http://www.microsoft.com</vendor-url>
+<resource-agent name="fence_aws" shortdesc="Fence agent for AWS (Amazon Web Services)" >
+<longdesc>fence_aws is an I/O Fencing agent for AWS (Amazon WebServices). It uses the boto3 library to connect to AWS.
+.P
+boto3 can be configured with AWS CLI or by creating ~/.aws/credentials.
+For instructions see: https://boto3.readthedocs.io/en/latest/guide/quickstart.html#configuration</longdesc>
+<vendor-url>http://www.amazon.com</vendor-url>
<parameters>
<parameter name="action" unique="0" required="1">
<getopt mixed="-o, --action=[action]" />
<content type="string" default="reboot" />
<shortdesc lang="en">Fencing action</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
- <getopt mixed="-l, --username=[name]" />
- <content type="string" />
- <shortdesc lang="en">Login name</shortdesc>
- </parameter>
- <parameter name="passwd" unique="0" required="0">
- <getopt mixed="-p, --password=[password]" />
- <content type="string" />
- <shortdesc lang="en">Login password or passphrase</shortdesc>
- </parameter>
- <parameter name="passwd_script" unique="0" required="0">
- <getopt mixed="-S, --password-script=[script]" />
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
+ <getopt mixed="-n, --plug=[id]" />
<content type="string" />
- <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="port" unique="0" required="1" deprecated="1">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
</parameter>
- <parameter name="resourceGroup" unique="0" required="1">
- <getopt mixed="--resourceGroup=[name]" />
+ <parameter name="region" unique="0" required="0">
+ <getopt mixed="-r, --region=[name]" />
<content type="string" />
- <shortdesc lang="en">Name of resource group.</shortdesc>
+ <shortdesc lang="en">Region.</shortdesc>
</parameter>
- <parameter name="tenantId" unique="0" required="1">
- <getopt mixed="--tenantId=[name]" />
+ <parameter name="access_key" unique="0" required="0">
+ <getopt mixed="-a, --access-key=[name]" />
<content type="string" />
- <shortdesc lang="en">Id of Azure Active Directory tenant.</shortdesc>
+ <shortdesc lang="en">Access Key.</shortdesc>
</parameter>
- <parameter name="subscriptionId" unique="0" required="1">
- <getopt mixed="--subscriptionId=[name]" />
+ <parameter name="secret_key" unique="0" required="0">
+ <getopt mixed="-s, --secret-key=[name]" />
<content type="string" />
- <shortdesc lang="en">Id of the Azure subscription.</shortdesc>
+ <shortdesc lang="en">Secret Key.</shortdesc>
</parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
@@ -85,7 +83,7 @@
</parameter>
<parameter name="power_timeout" unique="0" required="0">
<getopt mixed="--power-timeout=[seconds]" />
- <content type="second" default="20" />
+ <content type="second" default="60" />
<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
</parameter>
<parameter name="power_wait" unique="0" required="0">
diff --git a/tests/data/metadata/fence_azure_arm.xml b/tests/data/metadata/fence_azure_arm.xml
index de0f01e..3422ad9 100644
--- a/tests/data/metadata/fence_azure_arm.xml
+++ b/tests/data/metadata/fence_azure_arm.xml
@@ -1,6 +1,10 @@
<?xml version="1.0" ?>
<resource-agent name="fence_azure_arm" shortdesc="Fence agent for Azure Resource Manager" >
-<longdesc>Used to deallocate virtual machines and to report power state of virtual machines running in Azure</longdesc>
+<longdesc>Used to deallocate virtual machines and to report power state of virtual machines running in Azure. It uses Azure SDK for Python to connect to Azure.
+.P
+For instructions to setup credentials see: https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal
+.P
+Username and password are application ID and authentication key from "App registrations".</longdesc>
<vendor-url>http://www.microsoft.com</vendor-url>
<parameters>
<parameter name="action" unique="0" required="1">
@@ -8,26 +12,46 @@
<content type="string" default="reboot" />
<shortdesc lang="en">Fencing action</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
- <getopt mixed="-l, --username=[name]" />
+ <parameter name="login" unique="0" required="1" deprecated="1">
+ <getopt mixed="-l, --username=[appid]" />
<content type="string" />
- <shortdesc lang="en">Login name</shortdesc>
+ <shortdesc lang="en">Application ID</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
- <getopt mixed="-p, --password=[password]" />
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[authkey]" />
<content type="string" />
- <shortdesc lang="en">Login password or passphrase</shortdesc>
+ <shortdesc lang="en">Authentication key</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
+ <getopt mixed="-p, --password=[authkey]" />
+ <content type="string" />
+ <shortdesc lang="en">Authentication key</shortdesc>
+ </parameter>
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="1" deprecated="1">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[appid]" />
+ <content type="string" />
+ <shortdesc lang="en">Application ID</shortdesc>
+ </parameter>
<parameter name="resourceGroup" unique="0" required="1">
<getopt mixed="--resourceGroup=[name]" />
<content type="string" />
@@ -46,14 +70,19 @@
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
@@ -85,7 +114,7 @@
</parameter>
<parameter name="power_timeout" unique="0" required="0">
<getopt mixed="--power-timeout=[seconds]" />
- <content type="second" default="20" />
+ <content type="second" default="150" />
<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
</parameter>
<parameter name="power_wait" unique="0" required="0">
diff --git a/tests/data/metadata/fence_bladecenter.xml b/tests/data/metadata/fence_bladecenter.xml
index 9bfe5af..140781d 100644
--- a/tests/data/metadata/fence_bladecenter.xml
+++ b/tests/data/metadata/fence_bladecenter.xml
@@ -8,7 +8,12 @@
<content type="string" default="reboot" />
<shortdesc lang="en">Fencing action</shortdesc>
</parameter>
- <parameter name="cmd_prompt" unique="0" required="0">
+ <parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ <getopt mixed="-c, --command-prompt=[prompt]" />
+ <content type="string" default="['system>']" />
+ <shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+ </parameter>
+ <parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
<getopt mixed="-c, --command-prompt=[prompt]" />
<content type="string" default="['system>']" />
<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
@@ -28,7 +33,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -38,27 +48,47 @@
<content type="integer" default="23" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
</parameter>
- <parameter name="secure" unique="0" required="0">
+ <parameter name="port" unique="0" required="1" deprecated="1">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="secure" unique="0" required="0" deprecated="1">
+ <getopt mixed="-x, --ssh" />
+ <content type="boolean" />
+ <shortdesc lang="en">Use SSH connection</shortdesc>
+ </parameter>
+ <parameter name="ssh" unique="0" required="0" obsoletes="secure">
<getopt mixed="-x, --ssh" />
<content type="boolean" />
<shortdesc lang="en">Use SSH connection</shortdesc>
@@ -68,17 +98,27 @@
<content type="string" />
<shortdesc lang="en">SSH options to use</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_brocade.xml b/tests/data/metadata/fence_brocade.xml
index 2026f84..35f7d7b 100644
--- a/tests/data/metadata/fence_brocade.xml
+++ b/tests/data/metadata/fence_brocade.xml
@@ -8,7 +8,12 @@
<content type="string" default="off" />
<shortdesc lang="en">Fencing action</shortdesc>
</parameter>
- <parameter name="cmd_prompt" unique="0" required="0">
+ <parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ <getopt mixed="-c, --command-prompt=[prompt]" />
+ <content type="string" default="['> ']" />
+ <shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+ </parameter>
+ <parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
<getopt mixed="-c, --command-prompt=[prompt]" />
<content type="string" default="['> ']" />
<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
@@ -28,7 +33,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -38,27 +48,47 @@
<content type="integer" default="23" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
</parameter>
- <parameter name="secure" unique="0" required="0">
+ <parameter name="port" unique="0" required="1" deprecated="1">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="secure" unique="0" required="0" deprecated="1">
+ <getopt mixed="-x, --ssh" />
+ <content type="boolean" />
+ <shortdesc lang="en">Use SSH connection</shortdesc>
+ </parameter>
+ <parameter name="ssh" unique="0" required="0" obsoletes="secure">
<getopt mixed="-x, --ssh" />
<content type="boolean" />
<shortdesc lang="en">Use SSH connection</shortdesc>
@@ -68,17 +98,27 @@
<content type="string" />
<shortdesc lang="en">SSH options to use</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_cisco_mds.xml b/tests/data/metadata/fence_cisco_mds.xml
index 35628ed..f89e1f6 100644
--- a/tests/data/metadata/fence_cisco_mds.xml
+++ b/tests/data/metadata/fence_cisco_mds.xml
@@ -23,7 +23,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -33,22 +38,37 @@
<content type="integer" default="161" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="0">
+ <parameter name="login" unique="0" required="0" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="1" deprecated="1">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
@@ -97,17 +117,27 @@
</content>
<shortdesc lang="en">Specifies SNMP version to use</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="0" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_cisco_ucs.xml b/tests/data/metadata/fence_cisco_ucs.xml
index 3ddf787..17eaa53 100644
--- a/tests/data/metadata/fence_cisco_ucs.xml
+++ b/tests/data/metadata/fence_cisco_ucs.xml
@@ -18,7 +18,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -28,7 +33,7 @@
<content type="integer" default="80" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
@@ -38,17 +43,32 @@
<content type="boolean" />
<shortdesc lang="en">Disable TLS negotiation and force SSL3.0. This should only be used for devices that do not support TLS1.0 and up.</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="1" deprecated="1">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
@@ -73,17 +93,27 @@
<content type="string" default="" />
<shortdesc lang="en">Additional path needed to access suborganization</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_compute.xml b/tests/data/metadata/fence_compute.xml
index bb271ab..1738c83 100644
--- a/tests/data/metadata/fence_compute.xml
+++ b/tests/data/metadata/fence_compute.xml
@@ -8,67 +8,112 @@
<content type="string" default="off" />
<shortdesc lang="en">Fencing action</shortdesc>
</parameter>
- <parameter name="auth-url" unique="0" required="0">
+ <parameter name="auth_url" unique="0" required="0">
<getopt mixed="-k, --auth-url=[url]" />
<content type="string" default="" />
<shortdesc lang="en">Keystone Admin Auth URL</shortdesc>
</parameter>
- <parameter name="endpoint-type" unique="0" required="0">
+ <parameter name="endpoint_type" unique="0" required="0">
<getopt mixed="-e, --endpoint-type=[endpoint]" />
<content type="string" default="internalURL" />
<shortdesc lang="en">Nova Endpoint type</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="0">
+ <parameter name="login" unique="0" required="0" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
</parameter>
- <parameter name="region-name" unique="0" required="0">
+ <parameter name="port" unique="0" required="1" deprecated="1">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="region_name" unique="0" required="0">
<getopt mixed="--region-name=[region]" />
<content type="boolean" default="" />
<shortdesc lang="en">Region Name</shortdesc>
</parameter>
- <parameter name="tenant-name" unique="0" required="0">
- <getopt mixed="-t, --tenant-name=[tenant]" />
+ <parameter name="tenant_name" unique="0" required="0">
+ <getopt mixed="-t, --tenant-name=[name]" />
<content type="string" default="" />
- <shortdesc lang="en">Keystone Admin Tenant</shortdesc>
+ <shortdesc lang="en">Keystone Admin Tenant or v3 Project</shortdesc>
+ </parameter>
+ <parameter name="username" unique="0" required="0" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
</parameter>
<parameter name="insecure" unique="0" required="0">
<getopt mixed="--insecure" />
<content type="boolean" default="False" />
<shortdesc lang="en">Allow Insecure TLS Requests</shortdesc>
</parameter>
- <parameter name="domain" unique="0" required="0">
+ <parameter name="project-domain" unique="0" required="0" deprecated="1">
+ <getopt mixed="-d, --project-domain=[name]" />
+ <content type="string" default="Default" />
+ <shortdesc lang="en">Keystone v3 Project Domain</shortdesc>
+ </parameter>
+ <parameter name="project_domain" unique="0" required="0" obsoletes="project-domain">
+ <getopt mixed="-d, --project-domain=[name]" />
+ <content type="string" default="Default" />
+ <shortdesc lang="en">Keystone v3 Project Domain</shortdesc>
+ </parameter>
+ <parameter name="user-domain" unique="0" required="0" deprecated="1">
+ <getopt mixed="-u, --user-domain=[name]" />
+ <content type="string" default="Default" />
+ <shortdesc lang="en">Keystone v3 User Domain</shortdesc>
+ </parameter>
+ <parameter name="user_domain" unique="0" required="0" obsoletes="user-domain">
+ <getopt mixed="-u, --user-domain=[name]" />
+ <content type="string" default="Default" />
+ <shortdesc lang="en">Keystone v3 User Domain</shortdesc>
+ </parameter>
+ <parameter name="compute-domain" unique="0" required="0" deprecated="1">
+ <getopt mixed="-d, --domain=[string]" />
+ <content type="string" />
+ <shortdesc lang="en">DNS domain in which hosts live</shortdesc>
+ </parameter>
+ <parameter name="domain" unique="0" required="0" obsoletes="compute-domain">
<getopt mixed="-d, --domain=[string]" />
<content type="string" />
<shortdesc lang="en">DNS domain in which hosts live</shortdesc>
</parameter>
- <parameter name="instance-filtering" unique="0" required="0">
+ <parameter name="instance_filtering" unique="0" required="0">
<getopt mixed="--instance-filtering" />
<content type="boolean" default="True" />
<shortdesc lang="en">Allow instances to be evacuated</shortdesc>
</parameter>
- <parameter name="no-shared-storage" unique="0" required="0">
+ <parameter name="no_shared_storage" unique="0" required="0">
<getopt mixed="--no-shared-storage" />
<content type="boolean" default="False" />
<shortdesc lang="en">Disable functionality for dealing with shared storage</shortdesc>
</parameter>
- <parameter name="record-only" unique="0" required="0">
+ <parameter name="record_only" unique="0" required="0">
<getopt mixed="--record-only" />
<content type="string" default="False" />
<shortdesc lang="en">Only record the target as needing evacuation</shortdesc>
@@ -76,14 +121,19 @@
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
@@ -135,7 +185,7 @@
</parameter>
</parameters>
<actions>
- <action name="on" on_target="1" automatic="1"/>
+ <action name="on" automatic="1"/>
<action name="off" />
<action name="status" />
<action name="list" />
diff --git a/tests/data/metadata/fence_docker.xml b/tests/data/metadata/fence_docker.xml
index bfc1df1..9f6a385 100644
--- a/tests/data/metadata/fence_docker.xml
+++ b/tests/data/metadata/fence_docker.xml
@@ -18,7 +18,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -36,7 +41,12 @@
</content>
<shortdesc lang="en">Method to fence</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="1" deprecated="1">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
@@ -79,14 +89,19 @@
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_drac.xml b/tests/data/metadata/fence_drac.xml
index ded2e7a..afa1406 100644
--- a/tests/data/metadata/fence_drac.xml
+++ b/tests/data/metadata/fence_drac.xml
@@ -8,7 +8,12 @@
<content type="string" default="reboot" />
<shortdesc lang="en">Fencing action</shortdesc>
</parameter>
- <parameter name="cmd_prompt" unique="0" required="0">
+ <parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ <getopt mixed="-c, --command-prompt=[prompt]" />
+ <content type="string" default="['\\[username\\]# ']" />
+ <shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+ </parameter>
+ <parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
<getopt mixed="-c, --command-prompt=[prompt]" />
<content type="string" default="['\\[username\\]# ']" />
<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
@@ -23,7 +28,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="0">
+ <parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="0" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -33,37 +43,62 @@
<content type="integer" default="23" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="0">
+ <parameter name="plug" unique="0" required="0" obsoletes="port">
<getopt mixed="-n, --plug=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
</parameter>
+ <parameter name="port" unique="0" required="0" deprecated="1">
+ <getopt mixed="-n, --plug=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+ </parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_drac5.xml b/tests/data/metadata/fence_drac5.xml
index 8793765..58a086e 100644
--- a/tests/data/metadata/fence_drac5.xml
+++ b/tests/data/metadata/fence_drac5.xml
@@ -8,7 +8,12 @@
<content type="string" default="reboot" />
<shortdesc lang="en">Fencing action</shortdesc>
</parameter>
- <parameter name="cmd_prompt" unique="0" required="0">
+ <parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ <getopt mixed="-c, --command-prompt=[prompt]" />
+ <content type="string" default="['\\$', 'DRAC\\/MC:']" />
+ <shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+ </parameter>
+ <parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
<getopt mixed="-c, --command-prompt=[prompt]" />
<content type="string" default="['\\$', 'DRAC\\/MC:']" />
<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
@@ -37,7 +42,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -47,27 +57,47 @@
<content type="integer" default="23" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
</parameter>
- <parameter name="secure" unique="0" required="0">
+ <parameter name="port" unique="0" required="1" deprecated="1">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="secure" unique="0" required="0" deprecated="1">
+ <getopt mixed="-x, --ssh" />
+ <content type="boolean" />
+ <shortdesc lang="en">Use SSH connection</shortdesc>
+ </parameter>
+ <parameter name="ssh" unique="0" required="0" obsoletes="secure">
<getopt mixed="-x, --ssh" />
<content type="boolean" />
<shortdesc lang="en">Use SSH connection</shortdesc>
@@ -77,17 +107,27 @@
<content type="string" />
<shortdesc lang="en">SSH options to use</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_dummy.xml b/tests/data/metadata/fence_dummy.xml
index ba58f7d..7c9c132 100644
--- a/tests/data/metadata/fence_dummy.xml
+++ b/tests/data/metadata/fence_dummy.xml
@@ -26,14 +26,19 @@
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_eaton_snmp.xml b/tests/data/metadata/fence_eaton_snmp.xml
index 04fff5a..a5ba56f 100644
--- a/tests/data/metadata/fence_eaton_snmp.xml
+++ b/tests/data/metadata/fence_eaton_snmp.xml
@@ -23,7 +23,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -33,22 +38,37 @@
<content type="integer" default="161" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="0">
+ <parameter name="login" unique="0" required="0" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="1" deprecated="1">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
@@ -97,17 +117,27 @@
</content>
<shortdesc lang="en">Specifies SNMP version to use</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="0" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_emerson.xml b/tests/data/metadata/fence_emerson.xml
index 74a45ee..5844232 100644
--- a/tests/data/metadata/fence_emerson.xml
+++ b/tests/data/metadata/fence_emerson.xml
@@ -23,7 +23,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -33,22 +38,37 @@
<content type="integer" default="161" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="0">
+ <parameter name="login" unique="0" required="0" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="1" deprecated="1">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
@@ -97,17 +117,27 @@
</content>
<shortdesc lang="en">Specifies SNMP version to use</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="0" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_eps.xml b/tests/data/metadata/fence_eps.xml
index 779d1d0..241ac20 100644
--- a/tests/data/metadata/fence_eps.xml
+++ b/tests/data/metadata/fence_eps.xml
@@ -10,7 +10,7 @@ Agent basically works by connecting to hidden page and pass appropriate argument
<content type="string" default="reboot" />
<shortdesc lang="en">Fencing action</shortdesc>
</parameter>
- <parameter name="hidden_page" unique="0" required="0">
+ <parameter name="hidden_page" unique="0" required="0" deprecated="1">
<getopt mixed="-c, --page=[page]" />
<content type="string" default="hidden.htm" />
<shortdesc lang="en">Name of hidden page</shortdesc>
@@ -25,7 +25,12 @@ Agent basically works by connecting to hidden page and pass appropriate argument
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -35,37 +40,67 @@ Agent basically works by connecting to hidden page and pass appropriate argument
<content type="integer" default="80" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="0">
+ <parameter name="login" unique="0" required="0" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="page" unique="0" required="0" obsoletes="hidden_page">
+ <getopt mixed="-c, --page=[page]" />
+ <content type="string" default="hidden.htm" />
+ <shortdesc lang="en">Name of hidden page</shortdesc>
+ </parameter>
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
</parameter>
+ <parameter name="port" unique="0" required="1" deprecated="1">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="username" unique="0" required="0" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_compute.xml b/tests/data/metadata/fence_evacuate.xml
similarity index 58%
copy from tests/data/metadata/fence_compute.xml
copy to tests/data/metadata/fence_evacuate.xml
index bb271ab..2b430f8 100644
--- a/tests/data/metadata/fence_compute.xml
+++ b/tests/data/metadata/fence_evacuate.xml
@@ -1,89 +1,134 @@
<?xml version="1.0" ?>
-<resource-agent name="fence_compute" shortdesc="Fence agent for the automatic resurrection of OpenStack compute instances" >
-<longdesc>Used to tell Nova that compute nodes are down and to reschedule flagged instances</longdesc>
+<resource-agent name="fence_evacuate" shortdesc="Fence agent for the automatic resurrection of OpenStack compute instances" >
+<longdesc>Used to reschedule flagged instances</longdesc>
<vendor-url></vendor-url>
<parameters>
<parameter name="action" unique="0" required="1">
<getopt mixed="-o, --action=[action]" />
- <content type="string" default="off" />
+ <content type="string" default="reboot" />
<shortdesc lang="en">Fencing action</shortdesc>
</parameter>
- <parameter name="auth-url" unique="0" required="0">
+ <parameter name="auth_url" unique="0" required="0">
<getopt mixed="-k, --auth-url=[url]" />
<content type="string" default="" />
<shortdesc lang="en">Keystone Admin Auth URL</shortdesc>
</parameter>
- <parameter name="endpoint-type" unique="0" required="0">
+ <parameter name="endpoint_type" unique="0" required="0">
<getopt mixed="-e, --endpoint-type=[endpoint]" />
<content type="string" default="internalURL" />
<shortdesc lang="en">Nova Endpoint type</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="0">
+ <parameter name="login" unique="0" required="0" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
</parameter>
- <parameter name="region-name" unique="0" required="0">
+ <parameter name="port" unique="0" required="1" deprecated="1">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="region_name" unique="0" required="0">
<getopt mixed="--region-name=[region]" />
<content type="boolean" default="" />
<shortdesc lang="en">Region Name</shortdesc>
</parameter>
- <parameter name="tenant-name" unique="0" required="0">
- <getopt mixed="-t, --tenant-name=[tenant]" />
+ <parameter name="tenant_name" unique="0" required="0">
+ <getopt mixed="-t, --tenant-name=[name]" />
<content type="string" default="" />
- <shortdesc lang="en">Keystone Admin Tenant</shortdesc>
+ <shortdesc lang="en">Keystone Admin Tenant or v3 Project</shortdesc>
+ </parameter>
+ <parameter name="username" unique="0" required="0" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
</parameter>
<parameter name="insecure" unique="0" required="0">
<getopt mixed="--insecure" />
<content type="boolean" default="False" />
<shortdesc lang="en">Allow Insecure TLS Requests</shortdesc>
</parameter>
- <parameter name="domain" unique="0" required="0">
+ <parameter name="project-domain" unique="0" required="0" deprecated="1">
+ <getopt mixed="-d, --project-domain=[name]" />
+ <content type="string" default="Default" />
+ <shortdesc lang="en">Keystone v3 Project Domain</shortdesc>
+ </parameter>
+ <parameter name="project_domain" unique="0" required="0" obsoletes="project-domain">
+ <getopt mixed="-d, --project-domain=[name]" />
+ <content type="string" default="Default" />
+ <shortdesc lang="en">Keystone v3 Project Domain</shortdesc>
+ </parameter>
+ <parameter name="user-domain" unique="0" required="0" deprecated="1">
+ <getopt mixed="-u, --user-domain=[name]" />
+ <content type="string" default="Default" />
+ <shortdesc lang="en">Keystone v3 User Domain</shortdesc>
+ </parameter>
+ <parameter name="user_domain" unique="0" required="0" obsoletes="user-domain">
+ <getopt mixed="-u, --user-domain=[name]" />
+ <content type="string" default="Default" />
+ <shortdesc lang="en">Keystone v3 User Domain</shortdesc>
+ </parameter>
+ <parameter name="compute-domain" unique="0" required="0" deprecated="1">
+ <getopt mixed="-d, --domain=[string]" />
+ <content type="string" />
+ <shortdesc lang="en">DNS domain in which hosts live</shortdesc>
+ </parameter>
+ <parameter name="domain" unique="0" required="0" obsoletes="compute-domain">
<getopt mixed="-d, --domain=[string]" />
<content type="string" />
<shortdesc lang="en">DNS domain in which hosts live</shortdesc>
</parameter>
- <parameter name="instance-filtering" unique="0" required="0">
+ <parameter name="instance_filtering" unique="0" required="0">
<getopt mixed="--instance-filtering" />
<content type="boolean" default="True" />
<shortdesc lang="en">Allow instances to be evacuated</shortdesc>
</parameter>
- <parameter name="no-shared-storage" unique="0" required="0">
+ <parameter name="no_shared_storage" unique="0" required="0">
<getopt mixed="--no-shared-storage" />
<content type="boolean" default="False" />
<shortdesc lang="en">Disable functionality for dealing with shared storage</shortdesc>
</parameter>
- <parameter name="record-only" unique="0" required="0">
- <getopt mixed="--record-only" />
- <content type="string" default="False" />
- <shortdesc lang="en">Only record the target as needing evacuation</shortdesc>
- </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
@@ -135,8 +180,9 @@
</parameter>
</parameters>
<actions>
- <action name="on" on_target="1" automatic="1"/>
+ <action name="on" automatic="0"/>
<action name="off" />
+ <action name="reboot" />
<action name="status" />
<action name="list" />
<action name="list-status" />
diff --git a/tests/data/metadata/fence_xenapi.xml b/tests/data/metadata/fence_gce.xml
similarity index 71%
copy from tests/data/metadata/fence_xenapi.xml
copy to tests/data/metadata/fence_gce.xml
index 7623673..0b86e66 100644
--- a/tests/data/metadata/fence_xenapi.xml
+++ b/tests/data/metadata/fence_gce.xml
@@ -1,49 +1,51 @@
<?xml version="1.0" ?>
-<resource-agent name="fence_xenapi" shortdesc="Fence agent for Citrix XenServer over XenAPI" >
-<longdesc>fence_cxs is an I/O Fencing agent used on Citrix XenServer hosts. It uses the XenAPI, supplied by Citrix, to establish an XML-RPC sesssion to a XenServer host. Once the session is established, further XML-RPC commands are issued in order to switch on, switch off, restart and query the status of virtual machines running on the host.</longdesc>
-<vendor-url>http://www.xenproject.org</vendor-url>
+<resource-agent name="fence_gce" shortdesc="Fence agent for GCE (Google Cloud Engine)" >
+<longdesc>fence_gce is an I/O Fencing agent for GCE (Google Cloud Engine). It uses the googleapiclient library to connect to GCE.
+googleapiclient can be configured with Google SDK CLI or by executing 'gcloud auth application-default login'.
+For instructions see: https://cloud.google.com/compute/docs/tutorials/python-guide</longdesc>
+<vendor-url>http://cloud.google.com</vendor-url>
<parameters>
<parameter name="action" unique="0" required="1">
<getopt mixed="-o, --action=[action]" />
<content type="string" default="reboot" />
<shortdesc lang="en">Fencing action</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="0">
- <getopt mixed="-l, --username=[name]" />
- <content type="string" />
- <shortdesc lang="en">Login name</shortdesc>
- </parameter>
- <parameter name="passwd" unique="0" required="0">
- <getopt mixed="-p, --password=[password]" />
- <content type="string" />
- <shortdesc lang="en">Login password or passphrase</shortdesc>
- </parameter>
- <parameter name="passwd_script" unique="0" required="0">
- <getopt mixed="-S, --password-script=[script]" />
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
+ <getopt mixed="-n, --plug=[id]" />
<content type="string" />
- <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="port" unique="0" required="1" deprecated="1">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
</parameter>
- <parameter name="session_url" unique="0" required="1">
- <getopt mixed="-s, --session-url" />
+ <parameter name="zone" unique="0" required="0">
+ <getopt mixed="--zone=[name]" />
<content type="string" />
- <shortdesc lang="en">URL to connect to XenServer on</shortdesc>
+ <shortdesc lang="en">Zone.</shortdesc>
+ </parameter>
+ <parameter name="project" unique="0" required="0">
+ <getopt mixed="--project=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Project.</shortdesc>
</parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
@@ -75,7 +77,7 @@
</parameter>
<parameter name="power_timeout" unique="0" required="0">
<getopt mixed="--power-timeout=[seconds]" />
- <content type="second" default="20" />
+ <content type="second" default="60" />
<shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
</parameter>
<parameter name="power_wait" unique="0" required="0">
diff --git a/tests/data/metadata/fence_hds_cb.xml b/tests/data/metadata/fence_hds_cb.xml
index 660c335..c665d4a 100644
--- a/tests/data/metadata/fence_hds_cb.xml
+++ b/tests/data/metadata/fence_hds_cb.xml
@@ -8,7 +8,12 @@
<content type="string" default="reboot" />
<shortdesc lang="en">Fencing action</shortdesc>
</parameter>
- <parameter name="cmd_prompt" unique="0" required="0">
+ <parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ <getopt mixed="-c, --command-prompt=[prompt]" />
+ <content type="string" default="['\\) :']" />
+ <shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+ </parameter>
+ <parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
<getopt mixed="-c, --command-prompt=[prompt]" />
<content type="string" default="['\\) :']" />
<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
@@ -28,7 +33,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -38,27 +48,47 @@
<content type="integer" default="23" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
</parameter>
- <parameter name="secure" unique="0" required="0">
+ <parameter name="port" unique="0" required="1" deprecated="1">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="secure" unique="0" required="0" deprecated="1">
+ <getopt mixed="-x, --ssh" />
+ <content type="boolean" />
+ <shortdesc lang="en">Use SSH connection</shortdesc>
+ </parameter>
+ <parameter name="ssh" unique="0" required="0" obsoletes="secure">
<getopt mixed="-x, --ssh" />
<content type="boolean" />
<shortdesc lang="en">Use SSH connection</shortdesc>
@@ -68,17 +98,27 @@
<content type="string" />
<shortdesc lang="en">SSH options to use</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_sbd.xml b/tests/data/metadata/fence_heuristics_ping.xml
similarity index 58%
copy from tests/data/metadata/fence_sbd.xml
copy to tests/data/metadata/fence_heuristics_ping.xml
index 3d06c2a..067f3ac 100644
--- a/tests/data/metadata/fence_sbd.xml
+++ b/tests/data/metadata/fence_heuristics_ping.xml
@@ -1,6 +1,8 @@
<?xml version="1.0" ?>
-<resource-agent name="fence_sbd" shortdesc="Fence agent for sbd" >
-<longdesc>fence_sbd is I/O Fencing agent which can be used in environments where sbd can be used (shared storage).</longdesc>
+<resource-agent name="fence_heuristics_ping" shortdesc="Fence agent for ping-heuristic based fencing" >
+<longdesc>fence_heuristics_ping uses ping-heuristics to control execution of another fence agent on the same fencing level.
+.P
+This is not a fence agent by itself! Its only purpose is to enable/disable another fence agent that lives on the same fencing level but after fence_heuristics_ping.</longdesc>
<vendor-url></vendor-url>
<parameters>
<parameter name="action" unique="0" required="1">
@@ -8,11 +10,6 @@
<content type="string" default="reboot" />
<shortdesc lang="en">Fencing action</shortdesc>
</parameter>
- <parameter name="devices" unique="0" required="1">
- <getopt mixed="--devices=[device_a,device_b]" />
- <content type="string" />
- <shortdesc lang="en">SBD Device</shortdesc>
- </parameter>
<parameter name="method" unique="0" required="0">
<getopt mixed="-m, --method=[method]" />
<content type="select" default="cycle" >
@@ -21,22 +18,52 @@
</content>
<shortdesc lang="en">Method to fence</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
- <getopt mixed="-n, --plug=[id]" />
- <content type="string" />
- <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ <parameter name="ping_count" unique="0" required="0">
+ <getopt mixed="--ping-count=[number]" />
+ <content type="string" default="10" />
+ <shortdesc lang="en">The number of ping-probes that is being sent per target</shortdesc>
+ </parameter>
+ <parameter name="ping_good_count" unique="0" required="0">
+ <getopt mixed="--ping-good-count=[number]" />
+ <content type="string" default="8" />
+ <shortdesc lang="en">The number of positive ping-probes required to account a target as available</shortdesc>
+ </parameter>
+ <parameter name="ping_interval" unique="0" required="0">
+ <getopt mixed="--ping-interval=[seconds]" />
+ <content type="string" default="1" />
+ <shortdesc lang="en">The interval in seconds between ping-probes</shortdesc>
+ </parameter>
+ <parameter name="ping_maxfail" unique="0" required="0">
+ <getopt mixed="--ping-maxfail=[number]" />
+ <content type="string" default="0" />
+ <shortdesc lang="en">The number of failed ping-targets to still account as overall success</shortdesc>
+ </parameter>
+ <parameter name="ping_targets" unique="0" required="1">
+ <getopt mixed="--ping-targets=tgt1,[inet6:]tgt2" />
+ <content type="string" default="" />
+ <shortdesc lang="en">A comma separated list of ping-targets (optionally prepended by 'inet:' or 'inet6:') to be probed</shortdesc>
+ </parameter>
+ <parameter name="ping_timeout" unique="0" required="0">
+ <getopt mixed="--ping-timeout=[seconds]" />
+ <content type="string" default="2" />
+ <shortdesc lang="en">The timeout in seconds till an individual ping-probe is accounted as lost</shortdesc>
</parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
@@ -51,11 +78,6 @@
<content type="boolean" />
<shortdesc lang="en">Display help and exit</shortdesc>
</parameter>
- <parameter name="separator" unique="0" required="0">
- <getopt mixed="-C, --separator=[char]" />
- <content type="string" default="," />
- <shortdesc lang="en">Separator for CSV created by 'list' operation</shortdesc>
- </parameter>
<parameter name="delay" unique="0" required="0">
<getopt mixed="--delay=[seconds]" />
<content type="second" default="0" />
@@ -76,10 +98,6 @@
<content type="second" default="0" />
<shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
</parameter>
- <parameter name="sbd_path" unique="0" required="0">
- <getopt mixed="--sbd-path=[path]" />
- <shortdesc lang="en">Path to SBD binary</shortdesc>
- </parameter>
<parameter name="shell_timeout" unique="0" required="0">
<getopt mixed="--shell-timeout=[seconds]" />
<content type="second" default="3" />
@@ -95,9 +113,6 @@
<action name="on" automatic="0"/>
<action name="off" />
<action name="reboot" />
- <action name="status" />
- <action name="list" />
- <action name="list-status" />
<action name="monitor" />
<action name="metadata" />
<action name="validate-all" />
diff --git a/tests/data/metadata/fence_hpblade.xml b/tests/data/metadata/fence_hpblade.xml
index ab7caf2..110e94f 100644
--- a/tests/data/metadata/fence_hpblade.xml
+++ b/tests/data/metadata/fence_hpblade.xml
@@ -8,7 +8,12 @@
<content type="string" default="reboot" />
<shortdesc lang="en">Fencing action</shortdesc>
</parameter>
- <parameter name="cmd_prompt" unique="0" required="0">
+ <parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ <getopt mixed="-c, --command-prompt=[prompt]" />
+ <content type="string" default="['c7000oa>']" />
+ <shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+ </parameter>
+ <parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
<getopt mixed="-c, --command-prompt=[prompt]" />
<content type="string" default="['c7000oa>']" />
<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
@@ -28,7 +33,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -38,27 +48,47 @@
<content type="integer" default="23" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
</parameter>
- <parameter name="secure" unique="0" required="0">
+ <parameter name="port" unique="0" required="1" deprecated="1">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="secure" unique="0" required="0" deprecated="1">
+ <getopt mixed="-x, --ssh" />
+ <content type="boolean" />
+ <shortdesc lang="en">Use SSH connection</shortdesc>
+ </parameter>
+ <parameter name="ssh" unique="0" required="0" obsoletes="secure">
<getopt mixed="-x, --ssh" />
<content type="boolean" />
<shortdesc lang="en">Use SSH connection</shortdesc>
@@ -68,17 +98,27 @@
<content type="string" />
<shortdesc lang="en">SSH options to use</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_ibmblade.xml b/tests/data/metadata/fence_ibmblade.xml
index bbd575b..4efd1b3 100644
--- a/tests/data/metadata/fence_ibmblade.xml
+++ b/tests/data/metadata/fence_ibmblade.xml
@@ -23,7 +23,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -33,22 +38,37 @@
<content type="integer" default="161" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="0">
+ <parameter name="login" unique="0" required="0" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="1" deprecated="1">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
@@ -97,17 +117,27 @@
</content>
<shortdesc lang="en">Specifies SNMP version to use</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="0" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_idrac.xml b/tests/data/metadata/fence_idrac.xml
index 2ee556f..42be0bc 100644
--- a/tests/data/metadata/fence_idrac.xml
+++ b/tests/data/metadata/fence_idrac.xml
@@ -26,6 +26,11 @@
<content type="string" />
<shortdesc lang="en">Ciphersuite to use (same as ipmitool -C parameter)</shortdesc>
</parameter>
+ <parameter name="hexadecimal_kg" unique="0" required="0">
+ <getopt mixed="--hexadecimal-kg=[key]" />
+ <content type="string" />
+ <shortdesc lang="en">Hexadecimal-encoded Kg key for IPMIv2 authentication</shortdesc>
+ </parameter>
<parameter name="inet4_only" unique="0" required="0">
<getopt mixed="-4, --inet4-only" />
<content type="boolean" />
@@ -36,7 +41,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="0">
+ <parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="0" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -51,7 +61,7 @@
<content type="boolean" default="0" />
<shortdesc lang="en">Use Lanplus to improve security of connection</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="0">
+ <parameter name="login" unique="0" required="0" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
@@ -64,17 +74,32 @@
</content>
<shortdesc lang="en">Method to fence</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="0">
+ <parameter name="plug" unique="0" required="0" obsoletes="port">
+ <getopt mixed="-n, --plug=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="0" deprecated="1">
<getopt mixed="-n, --plug=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
@@ -89,17 +114,32 @@
</content>
<shortdesc lang="en">Privilege level on IPMI device</shortdesc>
</parameter>
+ <parameter name="target" unique="0" required="0">
+ <getopt mixed="--target=[targetaddress]" />
+ <content type="string" />
+ <shortdesc lang="en">Bridge IPMI requests to the remote target address</shortdesc>
+ </parameter>
+ <parameter name="username" unique="0" required="0" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
@@ -153,7 +193,12 @@
<content type="integer" default="1" />
<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
</parameter>
- <parameter name="sudo" unique="0" required="0">
+ <parameter name="sudo" unique="0" required="0" deprecated="1">
+ <getopt mixed="--use-sudo" />
+ <content type="boolean" />
+ <shortdesc lang="en">Use sudo (without password) when calling 3rd party software</shortdesc>
+ </parameter>
+ <parameter name="use_sudo" unique="0" required="0" obsoletes="sudo">
<getopt mixed="--use-sudo" />
<content type="boolean" />
<shortdesc lang="en">Use sudo (without password) when calling 3rd party software</shortdesc>
diff --git a/tests/data/metadata/fence_ifmib.xml b/tests/data/metadata/fence_ifmib.xml
index 642cff5..861882b 100644
--- a/tests/data/metadata/fence_ifmib.xml
+++ b/tests/data/metadata/fence_ifmib.xml
@@ -25,7 +25,12 @@ It was written with managed ethernet switches in mind, in order to fence iSCSI S
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -35,22 +40,37 @@ It was written with managed ethernet switches in mind, in order to fence iSCSI S
<content type="integer" default="161" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="0">
+ <parameter name="login" unique="0" required="0" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="1" deprecated="1">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
@@ -99,17 +119,27 @@ It was written with managed ethernet switches in mind, in order to fence iSCSI S
</content>
<shortdesc lang="en">Specifies SNMP version to use</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="0" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_ilo.xml b/tests/data/metadata/fence_ilo.xml
index 8398c06..2e68773 100644
--- a/tests/data/metadata/fence_ilo.xml
+++ b/tests/data/metadata/fence_ilo.xml
@@ -19,7 +19,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="0">
+ <parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="0" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -29,7 +34,7 @@
<content type="integer" default="443" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
@@ -39,22 +44,42 @@
<content type="boolean" />
<shortdesc lang="en">Disable TLS negotiation and force SSL3.0. This should only be used for devices that do not support TLS1.0 and up.</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="0">
+ <parameter name="plug" unique="0" required="0" obsoletes="port">
+ <getopt mixed="-n, --plug=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="0" deprecated="1">
<getopt mixed="-n, --plug=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
</parameter>
- <parameter name="ribcl" unique="0" required="0">
+ <parameter name="ribcl" unique="0" required="0" deprecated="1">
+ <getopt mixed="-r, --ribcl-version=[version]" />
+ <content type="string" />
+ <shortdesc lang="en">Force ribcl version to use</shortdesc>
+ </parameter>
+ <parameter name="ribcl_version" unique="0" required="0" obsoletes="ribcl">
<getopt mixed="-r, --ribcl-version=[version]" />
<content type="string" />
<shortdesc lang="en">Force ribcl version to use</shortdesc>
@@ -79,17 +104,27 @@
<content type="boolean" />
<shortdesc lang="en">Disable TLS negotiation and force TLS1.0. This should only be used for devices that do not support TLS1.1 and up.</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_ilo2.xml b/tests/data/metadata/fence_ilo2.xml
index 7079916..030cf85 100644
--- a/tests/data/metadata/fence_ilo2.xml
+++ b/tests/data/metadata/fence_ilo2.xml
@@ -19,7 +19,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="0">
+ <parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="0" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -29,7 +34,7 @@
<content type="integer" default="443" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
@@ -39,22 +44,42 @@
<content type="boolean" />
<shortdesc lang="en">Disable TLS negotiation and force SSL3.0. This should only be used for devices that do not support TLS1.0 and up.</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="0">
+ <parameter name="plug" unique="0" required="0" obsoletes="port">
+ <getopt mixed="-n, --plug=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="0" deprecated="1">
<getopt mixed="-n, --plug=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
</parameter>
- <parameter name="ribcl" unique="0" required="0">
+ <parameter name="ribcl" unique="0" required="0" deprecated="1">
+ <getopt mixed="-r, --ribcl-version=[version]" />
+ <content type="string" />
+ <shortdesc lang="en">Force ribcl version to use</shortdesc>
+ </parameter>
+ <parameter name="ribcl_version" unique="0" required="0" obsoletes="ribcl">
<getopt mixed="-r, --ribcl-version=[version]" />
<content type="string" />
<shortdesc lang="en">Force ribcl version to use</shortdesc>
@@ -79,17 +104,27 @@
<content type="boolean" />
<shortdesc lang="en">Disable TLS negotiation and force TLS1.0. This should only be used for devices that do not support TLS1.1 and up.</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_ilo3.xml b/tests/data/metadata/fence_ilo3.xml
index b2be749..54c29c1 100644
--- a/tests/data/metadata/fence_ilo3.xml
+++ b/tests/data/metadata/fence_ilo3.xml
@@ -26,6 +26,11 @@
<content type="string" />
<shortdesc lang="en">Ciphersuite to use (same as ipmitool -C parameter)</shortdesc>
</parameter>
+ <parameter name="hexadecimal_kg" unique="0" required="0">
+ <getopt mixed="--hexadecimal-kg=[key]" />
+ <content type="string" />
+ <shortdesc lang="en">Hexadecimal-encoded Kg key for IPMIv2 authentication</shortdesc>
+ </parameter>
<parameter name="inet4_only" unique="0" required="0">
<getopt mixed="-4, --inet4-only" />
<content type="boolean" />
@@ -36,7 +41,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="0">
+ <parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="0" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -51,7 +61,7 @@
<content type="boolean" default="1" />
<shortdesc lang="en">Use Lanplus to improve security of connection</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="0">
+ <parameter name="login" unique="0" required="0" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
@@ -64,17 +74,32 @@
</content>
<shortdesc lang="en">Method to fence</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="0">
+ <parameter name="plug" unique="0" required="0" obsoletes="port">
+ <getopt mixed="-n, --plug=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="0" deprecated="1">
<getopt mixed="-n, --plug=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
@@ -89,17 +114,32 @@
</content>
<shortdesc lang="en">Privilege level on IPMI device</shortdesc>
</parameter>
+ <parameter name="target" unique="0" required="0">
+ <getopt mixed="--target=[targetaddress]" />
+ <content type="string" />
+ <shortdesc lang="en">Bridge IPMI requests to the remote target address</shortdesc>
+ </parameter>
+ <parameter name="username" unique="0" required="0" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
@@ -153,7 +193,12 @@
<content type="integer" default="1" />
<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
</parameter>
- <parameter name="sudo" unique="0" required="0">
+ <parameter name="sudo" unique="0" required="0" deprecated="1">
+ <getopt mixed="--use-sudo" />
+ <content type="boolean" />
+ <shortdesc lang="en">Use sudo (without password) when calling 3rd party software</shortdesc>
+ </parameter>
+ <parameter name="use_sudo" unique="0" required="0" obsoletes="sudo">
<getopt mixed="--use-sudo" />
<content type="boolean" />
<shortdesc lang="en">Use sudo (without password) when calling 3rd party software</shortdesc>
diff --git a/tests/data/metadata/fence_ilo3_ssh.xml b/tests/data/metadata/fence_ilo3_ssh.xml
index 69f59b4..c64a6e2 100644
--- a/tests/data/metadata/fence_ilo3_ssh.xml
+++ b/tests/data/metadata/fence_ilo3_ssh.xml
@@ -10,7 +10,12 @@
<content type="string" default="reboot" />
<shortdesc lang="en">Fencing action</shortdesc>
</parameter>
- <parameter name="cmd_prompt" unique="0" required="0">
+ <parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ <getopt mixed="-c, --command-prompt=[prompt]" />
+ <content type="string" default="['MP>', 'hpiLO->']" />
+ <shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+ </parameter>
+ <parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
<getopt mixed="-c, --command-prompt=[prompt]" />
<content type="string" default="['MP>', 'hpiLO->']" />
<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
@@ -30,7 +35,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="0">
+ <parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="0" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -40,7 +50,7 @@
<content type="integer" default="23" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
@@ -53,22 +63,42 @@
</content>
<shortdesc lang="en">Method to fence</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="0">
+ <parameter name="plug" unique="0" required="0" obsoletes="port">
<getopt mixed="-n, --plug=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
</parameter>
- <parameter name="secure" unique="0" required="0">
+ <parameter name="port" unique="0" required="0" deprecated="1">
+ <getopt mixed="-n, --plug=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+ </parameter>
+ <parameter name="secure" unique="0" required="0" deprecated="1">
+ <getopt mixed="-x, --ssh" />
+ <content type="boolean" />
+ <shortdesc lang="en">Use SSH connection</shortdesc>
+ </parameter>
+ <parameter name="ssh" unique="0" required="0" obsoletes="secure">
<getopt mixed="-x, --ssh" />
<content type="boolean" />
<shortdesc lang="en">Use SSH connection</shortdesc>
@@ -78,17 +108,27 @@
<content type="string" />
<shortdesc lang="en">SSH options to use</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_ilo4.xml b/tests/data/metadata/fence_ilo4.xml
index 953ddc4..fae4796 100644
--- a/tests/data/metadata/fence_ilo4.xml
+++ b/tests/data/metadata/fence_ilo4.xml
@@ -26,6 +26,11 @@
<content type="string" />
<shortdesc lang="en">Ciphersuite to use (same as ipmitool -C parameter)</shortdesc>
</parameter>
+ <parameter name="hexadecimal_kg" unique="0" required="0">
+ <getopt mixed="--hexadecimal-kg=[key]" />
+ <content type="string" />
+ <shortdesc lang="en">Hexadecimal-encoded Kg key for IPMIv2 authentication</shortdesc>
+ </parameter>
<parameter name="inet4_only" unique="0" required="0">
<getopt mixed="-4, --inet4-only" />
<content type="boolean" />
@@ -36,7 +41,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="0">
+ <parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="0" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -51,7 +61,7 @@
<content type="boolean" default="1" />
<shortdesc lang="en">Use Lanplus to improve security of connection</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="0">
+ <parameter name="login" unique="0" required="0" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
@@ -64,17 +74,32 @@
</content>
<shortdesc lang="en">Method to fence</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="0">
+ <parameter name="plug" unique="0" required="0" obsoletes="port">
+ <getopt mixed="-n, --plug=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="0" deprecated="1">
<getopt mixed="-n, --plug=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
@@ -89,17 +114,32 @@
</content>
<shortdesc lang="en">Privilege level on IPMI device</shortdesc>
</parameter>
+ <parameter name="target" unique="0" required="0">
+ <getopt mixed="--target=[targetaddress]" />
+ <content type="string" />
+ <shortdesc lang="en">Bridge IPMI requests to the remote target address</shortdesc>
+ </parameter>
+ <parameter name="username" unique="0" required="0" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
@@ -153,7 +193,12 @@
<content type="integer" default="1" />
<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
</parameter>
- <parameter name="sudo" unique="0" required="0">
+ <parameter name="sudo" unique="0" required="0" deprecated="1">
+ <getopt mixed="--use-sudo" />
+ <content type="boolean" />
+ <shortdesc lang="en">Use sudo (without password) when calling 3rd party software</shortdesc>
+ </parameter>
+ <parameter name="use_sudo" unique="0" required="0" obsoletes="sudo">
<getopt mixed="--use-sudo" />
<content type="boolean" />
<shortdesc lang="en">Use sudo (without password) when calling 3rd party software</shortdesc>
diff --git a/tests/data/metadata/fence_ilo4_ssh.xml b/tests/data/metadata/fence_ilo4_ssh.xml
index 5bea7db..484b094 100644
--- a/tests/data/metadata/fence_ilo4_ssh.xml
+++ b/tests/data/metadata/fence_ilo4_ssh.xml
@@ -10,7 +10,12 @@
<content type="string" default="reboot" />
<shortdesc lang="en">Fencing action</shortdesc>
</parameter>
- <parameter name="cmd_prompt" unique="0" required="0">
+ <parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ <getopt mixed="-c, --command-prompt=[prompt]" />
+ <content type="string" default="['MP>', 'hpiLO->']" />
+ <shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+ </parameter>
+ <parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
<getopt mixed="-c, --command-prompt=[prompt]" />
<content type="string" default="['MP>', 'hpiLO->']" />
<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
@@ -30,7 +35,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="0">
+ <parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="0" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -40,7 +50,7 @@
<content type="integer" default="23" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
@@ -53,22 +63,42 @@
</content>
<shortdesc lang="en">Method to fence</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="0">
+ <parameter name="plug" unique="0" required="0" obsoletes="port">
<getopt mixed="-n, --plug=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
</parameter>
- <parameter name="secure" unique="0" required="0">
+ <parameter name="port" unique="0" required="0" deprecated="1">
+ <getopt mixed="-n, --plug=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+ </parameter>
+ <parameter name="secure" unique="0" required="0" deprecated="1">
+ <getopt mixed="-x, --ssh" />
+ <content type="boolean" />
+ <shortdesc lang="en">Use SSH connection</shortdesc>
+ </parameter>
+ <parameter name="ssh" unique="0" required="0" obsoletes="secure">
<getopt mixed="-x, --ssh" />
<content type="boolean" />
<shortdesc lang="en">Use SSH connection</shortdesc>
@@ -78,17 +108,27 @@
<content type="string" />
<shortdesc lang="en">SSH options to use</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_ilo_moonshot.xml b/tests/data/metadata/fence_ilo_moonshot.xml
index a3a9834..32c4a1f 100644
--- a/tests/data/metadata/fence_ilo_moonshot.xml
+++ b/tests/data/metadata/fence_ilo_moonshot.xml
@@ -8,7 +8,12 @@
<content type="string" default="reboot" />
<shortdesc lang="en">Fencing action</shortdesc>
</parameter>
- <parameter name="cmd_prompt" unique="0" required="0">
+ <parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ <getopt mixed="-c, --command-prompt=[prompt]" />
+ <content type="string" default="['MP>', 'hpiLO->']" />
+ <shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+ </parameter>
+ <parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
<getopt mixed="-c, --command-prompt=[prompt]" />
<content type="string" default="['MP>', 'hpiLO->']" />
<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
@@ -28,7 +33,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -38,27 +48,47 @@
<content type="integer" default="22" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
</parameter>
- <parameter name="secure" unique="0" required="0">
+ <parameter name="port" unique="0" required="1" deprecated="1">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="secure" unique="0" required="0" deprecated="1">
+ <getopt mixed="-x, --ssh" />
+ <content type="boolean" default="1" />
+ <shortdesc lang="en">Use SSH connection</shortdesc>
+ </parameter>
+ <parameter name="ssh" unique="0" required="0" obsoletes="secure">
<getopt mixed="-x, --ssh" />
<content type="boolean" default="1" />
<shortdesc lang="en">Use SSH connection</shortdesc>
@@ -68,17 +98,27 @@
<content type="string" />
<shortdesc lang="en">SSH options to use</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_ilo_mp.xml b/tests/data/metadata/fence_ilo_mp.xml
index cf14a02..1938812 100644
--- a/tests/data/metadata/fence_ilo_mp.xml
+++ b/tests/data/metadata/fence_ilo_mp.xml
@@ -8,7 +8,12 @@
<content type="string" default="reboot" />
<shortdesc lang="en">Fencing action</shortdesc>
</parameter>
- <parameter name="cmd_prompt" unique="0" required="0">
+ <parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ <getopt mixed="-c, --command-prompt=[prompt]" />
+ <content type="string" default="['MP>', 'hpiLO->']" />
+ <shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+ </parameter>
+ <parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
<getopt mixed="-c, --command-prompt=[prompt]" />
<content type="string" default="['MP>', 'hpiLO->']" />
<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
@@ -28,7 +33,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="0">
+ <parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="0" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -38,27 +48,47 @@
<content type="integer" default="23" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="0">
+ <parameter name="plug" unique="0" required="0" obsoletes="port">
<getopt mixed="-n, --plug=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
</parameter>
- <parameter name="secure" unique="0" required="0">
+ <parameter name="port" unique="0" required="0" deprecated="1">
+ <getopt mixed="-n, --plug=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+ </parameter>
+ <parameter name="secure" unique="0" required="0" deprecated="1">
+ <getopt mixed="-x, --ssh" />
+ <content type="boolean" />
+ <shortdesc lang="en">Use SSH connection</shortdesc>
+ </parameter>
+ <parameter name="ssh" unique="0" required="0" obsoletes="secure">
<getopt mixed="-x, --ssh" />
<content type="boolean" />
<shortdesc lang="en">Use SSH connection</shortdesc>
@@ -68,17 +98,27 @@
<content type="string" />
<shortdesc lang="en">SSH options to use</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_ilo_ssh.xml b/tests/data/metadata/fence_ilo_ssh.xml
index bcd93b2..90c4e85 100644
--- a/tests/data/metadata/fence_ilo_ssh.xml
+++ b/tests/data/metadata/fence_ilo_ssh.xml
@@ -10,7 +10,12 @@
<content type="string" default="reboot" />
<shortdesc lang="en">Fencing action</shortdesc>
</parameter>
- <parameter name="cmd_prompt" unique="0" required="0">
+ <parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ <getopt mixed="-c, --command-prompt=[prompt]" />
+ <content type="string" default="['MP>', 'hpiLO->']" />
+ <shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+ </parameter>
+ <parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
<getopt mixed="-c, --command-prompt=[prompt]" />
<content type="string" default="['MP>', 'hpiLO->']" />
<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
@@ -30,7 +35,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="0">
+ <parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="0" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -40,7 +50,7 @@
<content type="integer" default="23" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
@@ -53,22 +63,42 @@
</content>
<shortdesc lang="en">Method to fence</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="0">
+ <parameter name="plug" unique="0" required="0" obsoletes="port">
<getopt mixed="-n, --plug=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
</parameter>
- <parameter name="secure" unique="0" required="0">
+ <parameter name="port" unique="0" required="0" deprecated="1">
+ <getopt mixed="-n, --plug=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+ </parameter>
+ <parameter name="secure" unique="0" required="0" deprecated="1">
+ <getopt mixed="-x, --ssh" />
+ <content type="boolean" />
+ <shortdesc lang="en">Use SSH connection</shortdesc>
+ </parameter>
+ <parameter name="ssh" unique="0" required="0" obsoletes="secure">
<getopt mixed="-x, --ssh" />
<content type="boolean" />
<shortdesc lang="en">Use SSH connection</shortdesc>
@@ -78,17 +108,27 @@
<content type="string" />
<shortdesc lang="en">SSH options to use</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_imm.xml b/tests/data/metadata/fence_imm.xml
index 04113f0..b7d8479 100644
--- a/tests/data/metadata/fence_imm.xml
+++ b/tests/data/metadata/fence_imm.xml
@@ -26,6 +26,11 @@
<content type="string" />
<shortdesc lang="en">Ciphersuite to use (same as ipmitool -C parameter)</shortdesc>
</parameter>
+ <parameter name="hexadecimal_kg" unique="0" required="0">
+ <getopt mixed="--hexadecimal-kg=[key]" />
+ <content type="string" />
+ <shortdesc lang="en">Hexadecimal-encoded Kg key for IPMIv2 authentication</shortdesc>
+ </parameter>
<parameter name="inet4_only" unique="0" required="0">
<getopt mixed="-4, --inet4-only" />
<content type="boolean" />
@@ -36,7 +41,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="0">
+ <parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="0" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -51,7 +61,7 @@
<content type="boolean" default="0" />
<shortdesc lang="en">Use Lanplus to improve security of connection</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="0">
+ <parameter name="login" unique="0" required="0" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
@@ -64,17 +74,32 @@
</content>
<shortdesc lang="en">Method to fence</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="0">
+ <parameter name="plug" unique="0" required="0" obsoletes="port">
+ <getopt mixed="-n, --plug=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="0" deprecated="1">
<getopt mixed="-n, --plug=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
@@ -89,17 +114,32 @@
</content>
<shortdesc lang="en">Privilege level on IPMI device</shortdesc>
</parameter>
+ <parameter name="target" unique="0" required="0">
+ <getopt mixed="--target=[targetaddress]" />
+ <content type="string" />
+ <shortdesc lang="en">Bridge IPMI requests to the remote target address</shortdesc>
+ </parameter>
+ <parameter name="username" unique="0" required="0" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
@@ -153,7 +193,12 @@
<content type="integer" default="1" />
<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
</parameter>
- <parameter name="sudo" unique="0" required="0">
+ <parameter name="sudo" unique="0" required="0" deprecated="1">
+ <getopt mixed="--use-sudo" />
+ <content type="boolean" />
+ <shortdesc lang="en">Use sudo (without password) when calling 3rd party software</shortdesc>
+ </parameter>
+ <parameter name="use_sudo" unique="0" required="0" obsoletes="sudo">
<getopt mixed="--use-sudo" />
<content type="boolean" />
<shortdesc lang="en">Use sudo (without password) when calling 3rd party software</shortdesc>
diff --git a/tests/data/metadata/fence_intelmodular.xml b/tests/data/metadata/fence_intelmodular.xml
index 84eff9c..36b17e7 100644
--- a/tests/data/metadata/fence_intelmodular.xml
+++ b/tests/data/metadata/fence_intelmodular.xml
@@ -25,7 +25,12 @@ Note: Since firmware update version 2.7, SNMP v2 write support is removed, and r
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -35,22 +40,37 @@ Note: Since firmware update version 2.7, SNMP v2 write support is removed, and r
<content type="integer" default="161" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="0">
+ <parameter name="login" unique="0" required="0" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="1" deprecated="1">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
@@ -99,17 +119,27 @@ Note: Since firmware update version 2.7, SNMP v2 write support is removed, and r
</content>
<shortdesc lang="en">Specifies SNMP version to use</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="0" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_ipdu.xml b/tests/data/metadata/fence_ipdu.xml
index 2418fea..231b83e 100644
--- a/tests/data/metadata/fence_ipdu.xml
+++ b/tests/data/metadata/fence_ipdu.xml
@@ -23,7 +23,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -33,22 +38,37 @@
<content type="integer" default="161" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="0">
+ <parameter name="login" unique="0" required="0" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="1" deprecated="1">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
@@ -97,17 +117,27 @@
</content>
<shortdesc lang="en">Specifies SNMP version to use</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="0" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_ipmilan.xml b/tests/data/metadata/fence_ipmilan.xml
index e197d5d..5508f33 100644
--- a/tests/data/metadata/fence_ipmilan.xml
+++ b/tests/data/metadata/fence_ipmilan.xml
@@ -26,6 +26,11 @@
<content type="string" />
<shortdesc lang="en">Ciphersuite to use (same as ipmitool -C parameter)</shortdesc>
</parameter>
+ <parameter name="hexadecimal_kg" unique="0" required="0">
+ <getopt mixed="--hexadecimal-kg=[key]" />
+ <content type="string" />
+ <shortdesc lang="en">Hexadecimal-encoded Kg key for IPMIv2 authentication</shortdesc>
+ </parameter>
<parameter name="inet4_only" unique="0" required="0">
<getopt mixed="-4, --inet4-only" />
<content type="boolean" />
@@ -36,7 +41,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="0">
+ <parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="0" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -51,7 +61,7 @@
<content type="boolean" default="0" />
<shortdesc lang="en">Use Lanplus to improve security of connection</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="0">
+ <parameter name="login" unique="0" required="0" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
@@ -64,17 +74,32 @@
</content>
<shortdesc lang="en">Method to fence</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="0">
+ <parameter name="plug" unique="0" required="0" obsoletes="port">
+ <getopt mixed="-n, --plug=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="0" deprecated="1">
<getopt mixed="-n, --plug=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
@@ -89,17 +114,32 @@
</content>
<shortdesc lang="en">Privilege level on IPMI device</shortdesc>
</parameter>
+ <parameter name="target" unique="0" required="0">
+ <getopt mixed="--target=[targetaddress]" />
+ <content type="string" />
+ <shortdesc lang="en">Bridge IPMI requests to the remote target address</shortdesc>
+ </parameter>
+ <parameter name="username" unique="0" required="0" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
@@ -153,7 +193,12 @@
<content type="integer" default="1" />
<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
</parameter>
- <parameter name="sudo" unique="0" required="0">
+ <parameter name="sudo" unique="0" required="0" deprecated="1">
+ <getopt mixed="--use-sudo" />
+ <content type="boolean" />
+ <shortdesc lang="en">Use sudo (without password) when calling 3rd party software</shortdesc>
+ </parameter>
+ <parameter name="use_sudo" unique="0" required="0" obsoletes="sudo">
<getopt mixed="--use-sudo" />
<content type="boolean" />
<shortdesc lang="en">Use sudo (without password) when calling 3rd party software</shortdesc>
diff --git a/tests/data/metadata/fence_ironic.xml b/tests/data/metadata/fence_ironic.xml
index 759387c..a40ebe8 100644
--- a/tests/data/metadata/fence_ironic.xml
+++ b/tests/data/metadata/fence_ironic.xml
@@ -8,47 +8,82 @@
<content type="string" default="reboot" />
<shortdesc lang="en">Fencing action</shortdesc>
</parameter>
- <parameter name="auth-url" unique="0" required="1">
+ <parameter name="auth-url" unique="0" required="1" deprecated="1">
<getopt mixed="--auth-url=[authurl]" />
<content type="string" />
<shortdesc lang="en">Keystone Admin Auth URL</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="auth_url" unique="0" required="1" obsoletes="auth-url">
+ <getopt mixed="--auth-url=[authurl]" />
+ <content type="string" />
+ <shortdesc lang="en">Keystone Admin Auth URL</shortdesc>
+ </parameter>
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="1" deprecated="1">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
</parameter>
- <parameter name="tenant-name" unique="0" required="0">
+ <parameter name="tenant-name" unique="0" required="0" deprecated="1">
<getopt mixed="-t, --tenant-name=[tenant]" />
<content type="string" default="admin" />
<shortdesc lang="en">Keystone Admin Tenant</shortdesc>
</parameter>
+ <parameter name="tenant_name" unique="0" required="0" obsoletes="tenant-name">
+ <getopt mixed="-t, --tenant-name=[tenant]" />
+ <content type="string" default="admin" />
+ <shortdesc lang="en">Keystone Admin Tenant</shortdesc>
+ </parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
@@ -78,11 +113,15 @@
<content type="second" default="5" />
<shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
</parameter>
- <parameter name="openstack-path" unique="0" required="0">
+ <parameter name="openstack-path" unique="0" required="0" deprecated="1">
<getopt mixed="--openstack-path=[path]" />
<content type="string" default="/usr/bin/openstack" />
<shortdesc lang="en">Path to the OpenStack binary</shortdesc>
</parameter>
+ <parameter name="openstack_path" unique="0" required="0" obsoletes="openstack-path">
+ <getopt mixed="--openstack-path=[path]" />
+ <shortdesc lang="en">Path to the OpenStack binary</shortdesc>
+ </parameter>
<parameter name="power_timeout" unique="0" required="0">
<getopt mixed="--power-timeout=[seconds]" />
<content type="second" default="20" />
diff --git a/tests/data/metadata/fence_kdump.xml b/tests/data/metadata/fence_kdump.xml
index bb11fa7..89a414b 100644
--- a/tests/data/metadata/fence_kdump.xml
+++ b/tests/data/metadata/fence_kdump.xml
@@ -31,7 +31,7 @@
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
diff --git a/tests/data/metadata/fence_ldom.xml b/tests/data/metadata/fence_ldom.xml
index 71e4c84..7b5fe23 100644
--- a/tests/data/metadata/fence_ldom.xml
+++ b/tests/data/metadata/fence_ldom.xml
@@ -10,7 +10,12 @@ Very useful parameter is -c (or cmd_prompt in stdin mode). This must be set to s
<content type="string" default="reboot" />
<shortdesc lang="en">Fencing action</shortdesc>
</parameter>
- <parameter name="cmd_prompt" unique="0" required="0">
+ <parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ <getopt mixed="-c, --command-prompt=[prompt]" />
+ <content type="string" default="['\\ $']" />
+ <shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+ </parameter>
+ <parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
<getopt mixed="-c, --command-prompt=[prompt]" />
<content type="string" default="['\\ $']" />
<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
@@ -30,7 +35,12 @@ Very useful parameter is -c (or cmd_prompt in stdin mode). This must be set to s
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -40,27 +50,47 @@ Very useful parameter is -c (or cmd_prompt in stdin mode). This must be set to s
<content type="integer" default="22" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
</parameter>
- <parameter name="secure" unique="0" required="0">
+ <parameter name="port" unique="0" required="1" deprecated="1">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="secure" unique="0" required="0" deprecated="1">
+ <getopt mixed="-x, --ssh" />
+ <content type="boolean" default="1" />
+ <shortdesc lang="en">Use SSH connection</shortdesc>
+ </parameter>
+ <parameter name="ssh" unique="0" required="0" obsoletes="secure">
<getopt mixed="-x, --ssh" />
<content type="boolean" default="1" />
<shortdesc lang="en">Use SSH connection</shortdesc>
@@ -70,17 +100,27 @@ Very useful parameter is -c (or cmd_prompt in stdin mode). This must be set to s
<content type="string" />
<shortdesc lang="en">SSH options to use</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_lpar.xml b/tests/data/metadata/fence_lpar.xml
index a3d7572..2c3e7cf 100644
--- a/tests/data/metadata/fence_lpar.xml
+++ b/tests/data/metadata/fence_lpar.xml
@@ -8,7 +8,12 @@
<content type="string" default="reboot" />
<shortdesc lang="en">Fencing action</shortdesc>
</parameter>
- <parameter name="cmd_prompt" unique="0" required="0">
+ <parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ <getopt mixed="-c, --command-prompt=[prompt]" />
+ <content type="string" default="[':~>', ']\\$', '\\$ ']" />
+ <shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+ </parameter>
+ <parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
<getopt mixed="-c, --command-prompt=[prompt]" />
<content type="string" default="[':~>', ']\\$', '\\$ ']" />
<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
@@ -37,7 +42,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -47,7 +57,7 @@
<content type="integer" default="22" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
@@ -57,22 +67,42 @@
<content type="string" />
<shortdesc lang="en">Managed system name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
</parameter>
- <parameter name="secure" unique="0" required="0">
+ <parameter name="port" unique="0" required="1" deprecated="1">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="secure" unique="0" required="0" deprecated="1">
+ <getopt mixed="-x, --ssh" />
+ <content type="boolean" default="1" />
+ <shortdesc lang="en">Use SSH connection</shortdesc>
+ </parameter>
+ <parameter name="ssh" unique="0" required="0" obsoletes="secure">
<getopt mixed="-x, --ssh" />
<content type="boolean" default="1" />
<shortdesc lang="en">Use SSH connection</shortdesc>
@@ -82,17 +112,27 @@
<content type="string" />
<shortdesc lang="en">SSH options to use</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_mpath.xml b/tests/data/metadata/fence_mpath.xml
index 010868c..ab922ec 100644
--- a/tests/data/metadata/fence_mpath.xml
+++ b/tests/data/metadata/fence_mpath.xml
@@ -22,14 +22,19 @@ The fence_mpath agent works by having a unique key for each node that has to be
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
@@ -82,7 +87,12 @@ The fence_mpath agent works by having a unique key for each node that has to be
<content type="integer" default="1" />
<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
</parameter>
- <parameter name="sudo" unique="0" required="0">
+ <parameter name="sudo" unique="0" required="0" deprecated="1">
+ <getopt mixed="--use-sudo" />
+ <content type="boolean" />
+ <shortdesc lang="en">Use sudo (without password) when calling 3rd party software</shortdesc>
+ </parameter>
+ <parameter name="use_sudo" unique="0" required="0" obsoletes="sudo">
<getopt mixed="--use-sudo" />
<content type="boolean" />
<shortdesc lang="en">Use sudo (without password) when calling 3rd party software</shortdesc>
diff --git a/tests/data/metadata/fence_netio.xml b/tests/data/metadata/fence_netio.xml
index 3378f91..952b304 100644
--- a/tests/data/metadata/fence_netio.xml
+++ b/tests/data/metadata/fence_netio.xml
@@ -18,7 +18,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -28,37 +33,62 @@
<content type="integer" default="1234" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
</parameter>
+ <parameter name="port" unique="0" required="1" deprecated="1">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_ovh.xml b/tests/data/metadata/fence_ovh.xml
index 7f379da..0813071 100644
--- a/tests/data/metadata/fence_ovh.xml
+++ b/tests/data/metadata/fence_ovh.xml
@@ -13,37 +13,62 @@
<content type="string" />
<shortdesc lang="en">Reboot email</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="1" deprecated="1">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_powerman.xml b/tests/data/metadata/fence_powerman.xml
index 220d7d4..09b96dd 100644
--- a/tests/data/metadata/fence_powerman.xml
+++ b/tests/data/metadata/fence_powerman.xml
@@ -18,7 +18,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="0">
+ <parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="0" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -28,7 +33,12 @@
<content type="integer" default="10101" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="0">
+ <parameter name="plug" unique="0" required="0" obsoletes="port">
+ <getopt mixed="-n, --plug=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="0" deprecated="1">
<getopt mixed="-n, --plug=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
@@ -36,14 +46,19 @@
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_pve.xml b/tests/data/metadata/fence_pve.xml
index 4cb82ce..454be01 100644
--- a/tests/data/metadata/fence_pve.xml
+++ b/tests/data/metadata/fence_pve.xml
@@ -18,7 +18,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP Address or Hostname of a node within the Proxmox cluster.</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP Address or Hostname of a node within the Proxmox cluster.</shortdesc>
@@ -28,27 +33,52 @@
<content type="integer" default="8006" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" default="root at pam" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Id of the virtual machine.</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="1" deprecated="1">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Id of the virtual machine.</shortdesc>
</parameter>
- <parameter name="node_name" unique="0" required="0">
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" default="root at pam" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
+ <parameter name="node_name" unique="0" required="0" deprecated="1">
+ <getopt mixed="-N, --nodename" />
+ <content type="string" />
+ <shortdesc lang="en">Node on which machine is located. (Optional, will be automatically determined)</shortdesc>
+ </parameter>
+ <parameter name="nodename" unique="0" required="0" obsoletes="node_name">
<getopt mixed="-N, --nodename" />
<content type="string" />
<shortdesc lang="en">Node on which machine is located. (Optional, will be automatically determined)</shortdesc>
@@ -56,14 +86,19 @@
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_raritan.xml b/tests/data/metadata/fence_raritan.xml
index 1db4267..bff3fa1 100644
--- a/tests/data/metadata/fence_raritan.xml
+++ b/tests/data/metadata/fence_raritan.xml
@@ -18,7 +18,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -28,37 +33,62 @@
<content type="integer" default="23" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
</parameter>
+ <parameter name="port" unique="0" required="1" deprecated="1">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_rcd_serial.xml b/tests/data/metadata/fence_rcd_serial.xml
index 04e566f..b511fdb 100644
--- a/tests/data/metadata/fence_rcd_serial.xml
+++ b/tests/data/metadata/fence_rcd_serial.xml
@@ -24,14 +24,19 @@
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_rhevm.xml b/tests/data/metadata/fence_rhevm.xml
index 431f760..e005a6b 100644
--- a/tests/data/metadata/fence_rhevm.xml
+++ b/tests/data/metadata/fence_rhevm.xml
@@ -18,7 +18,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -28,7 +33,7 @@
<content type="integer" default="80" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
@@ -38,17 +43,32 @@
<content type="boolean" />
<shortdesc lang="en">Disable TLS negotiation and force SSL3.0. This should only be used for devices that do not support TLS1.0 and up.</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="1" deprecated="1">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
@@ -73,17 +93,36 @@
<content type="boolean" />
<shortdesc lang="en">Reuse cookies for authentication</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
+ <parameter name="api_path" unique="0" required="0">
+ <getopt mixed="--api-path=[path]" />
+ <shortdesc lang="en">The path part of the API URL</shortdesc>
+ </parameter>
+ <parameter name="disable_http_filter" unique="0" required="0">
+ <getopt mixed="--disable-http-filter" />
+ <content type="boolean" />
+ <shortdesc lang="en">Set HTTP Filter header to false</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_rsa.xml b/tests/data/metadata/fence_rsa.xml
index 01c5b16..e2aef80 100644
--- a/tests/data/metadata/fence_rsa.xml
+++ b/tests/data/metadata/fence_rsa.xml
@@ -8,7 +8,12 @@
<content type="string" default="reboot" />
<shortdesc lang="en">Fencing action</shortdesc>
</parameter>
- <parameter name="cmd_prompt" unique="0" required="0">
+ <parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ <getopt mixed="-c, --command-prompt=[prompt]" />
+ <content type="string" default="['>']" />
+ <shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+ </parameter>
+ <parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
<getopt mixed="-c, --command-prompt=[prompt]" />
<content type="string" default="['>']" />
<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
@@ -28,7 +33,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="0">
+ <parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="0" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -38,27 +48,47 @@
<content type="integer" default="23" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="0">
+ <parameter name="plug" unique="0" required="0" obsoletes="port">
<getopt mixed="-n, --plug=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
</parameter>
- <parameter name="secure" unique="0" required="0">
+ <parameter name="port" unique="0" required="0" deprecated="1">
+ <getopt mixed="-n, --plug=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+ </parameter>
+ <parameter name="secure" unique="0" required="0" deprecated="1">
+ <getopt mixed="-x, --ssh" />
+ <content type="boolean" />
+ <shortdesc lang="en">Use SSH connection</shortdesc>
+ </parameter>
+ <parameter name="ssh" unique="0" required="0" obsoletes="secure">
<getopt mixed="-x, --ssh" />
<content type="boolean" />
<shortdesc lang="en">Use SSH connection</shortdesc>
@@ -68,17 +98,27 @@
<content type="string" default="-F /dev/null" />
<shortdesc lang="en">SSH options to use</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_rsb.xml b/tests/data/metadata/fence_rsb.xml
index b20bb55..7e54a55 100644
--- a/tests/data/metadata/fence_rsb.xml
+++ b/tests/data/metadata/fence_rsb.xml
@@ -8,7 +8,12 @@
<content type="string" default="reboot" />
<shortdesc lang="en">Fencing action</shortdesc>
</parameter>
- <parameter name="cmd_prompt" unique="0" required="0">
+ <parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ <getopt mixed="-c, --command-prompt=[prompt]" />
+ <content type="string" default="['to quit:']" />
+ <shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+ </parameter>
+ <parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
<getopt mixed="-c, --command-prompt=[prompt]" />
<content type="string" default="['to quit:']" />
<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
@@ -28,7 +33,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="0">
+ <parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="0" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -38,27 +48,47 @@
<content type="integer" default="3172" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="0">
+ <parameter name="plug" unique="0" required="0" obsoletes="port">
<getopt mixed="-n, --plug=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
</parameter>
- <parameter name="secure" unique="0" required="0">
+ <parameter name="port" unique="0" required="0" deprecated="1">
+ <getopt mixed="-n, --plug=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+ </parameter>
+ <parameter name="secure" unique="0" required="0" deprecated="1">
+ <getopt mixed="-x, --ssh" />
+ <content type="boolean" />
+ <shortdesc lang="en">Use SSH connection</shortdesc>
+ </parameter>
+ <parameter name="ssh" unique="0" required="0" obsoletes="secure">
<getopt mixed="-x, --ssh" />
<content type="boolean" />
<shortdesc lang="en">Use SSH connection</shortdesc>
@@ -68,17 +98,27 @@
<content type="string" />
<shortdesc lang="en">SSH options to use</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_sanbox2.xml b/tests/data/metadata/fence_sanbox2.xml
index a714f69..aecc151 100644
--- a/tests/data/metadata/fence_sanbox2.xml
+++ b/tests/data/metadata/fence_sanbox2.xml
@@ -8,7 +8,12 @@
<content type="string" default="off" />
<shortdesc lang="en">Fencing action</shortdesc>
</parameter>
- <parameter name="cmd_prompt" unique="0" required="0">
+ <parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ <getopt mixed="-c, --command-prompt=[prompt]" />
+ <content type="string" default="[' #> ']" />
+ <shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+ </parameter>
+ <parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
<getopt mixed="-c, --command-prompt=[prompt]" />
<content type="string" default="[' #> ']" />
<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
@@ -23,7 +28,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -33,37 +43,62 @@
<content type="integer" default="23" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
</parameter>
+ <parameter name="port" unique="0" required="1" deprecated="1">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_sbd.xml b/tests/data/metadata/fence_sbd.xml
index 3d06c2a..61b0b90 100644
--- a/tests/data/metadata/fence_sbd.xml
+++ b/tests/data/metadata/fence_sbd.xml
@@ -21,7 +21,12 @@
</content>
<shortdesc lang="en">Method to fence</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="1" deprecated="1">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
@@ -29,14 +34,19 @@
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_scsi.xml b/tests/data/metadata/fence_scsi.xml
index c4ccc97..6d4e236 100644
--- a/tests/data/metadata/fence_scsi.xml
+++ b/tests/data/metadata/fence_scsi.xml
@@ -37,14 +37,19 @@ The fence_scsi agent works by having each node in the cluster register a unique
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
@@ -89,7 +94,7 @@ The fence_scsi agent works by having each node in the cluster register a unique
<content type="integer" default="1" />
<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
</parameter>
- <parameter name="corosync-cmap_path" unique="0" required="0">
+ <parameter name="corosync_cmap_path" unique="0" required="0">
<getopt mixed="--corosync-cmap-path=[path]" />
<shortdesc lang="en">Path to corosync-cmapctl binary</shortdesc>
</parameter>
diff --git a/tests/data/metadata/fence_tripplite_snmp.xml b/tests/data/metadata/fence_tripplite_snmp.xml
index f6b486c..61f9a03 100644
--- a/tests/data/metadata/fence_tripplite_snmp.xml
+++ b/tests/data/metadata/fence_tripplite_snmp.xml
@@ -24,7 +24,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -34,22 +39,37 @@
<content type="integer" default="161" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="0">
+ <parameter name="login" unique="0" required="0" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="1" deprecated="1">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
@@ -98,17 +118,27 @@
</content>
<shortdesc lang="en">Specifies SNMP version to use</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="0" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_vbox.xml b/tests/data/metadata/fence_vbox.xml
index 5b86193..caf62e9 100644
--- a/tests/data/metadata/fence_vbox.xml
+++ b/tests/data/metadata/fence_vbox.xml
@@ -10,7 +10,12 @@ By default, vbox needs to log in as a user that is a member of the vboxusers gro
<content type="string" default="reboot" />
<shortdesc lang="en">Fencing action</shortdesc>
</parameter>
- <parameter name="cmd_prompt" unique="0" required="0">
+ <parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ <getopt mixed="-c, --command-prompt=[prompt]" />
+ <content type="string" default="['\\[EXPECT\\]#\\ ']" />
+ <shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+ </parameter>
+ <parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
<getopt mixed="-c, --command-prompt=[prompt]" />
<content type="string" default="['\\[EXPECT\\]#\\ ']" />
<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
@@ -30,7 +35,12 @@ By default, vbox needs to log in as a user that is a member of the vboxusers gro
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -40,27 +50,47 @@ By default, vbox needs to log in as a user that is a member of the vboxusers gro
<content type="integer" default="22" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="1" deprecated="1">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
</parameter>
- <parameter name="secure" unique="0" required="0">
+ <parameter name="secure" unique="0" required="0" deprecated="1">
+ <getopt mixed="-x, --ssh" />
+ <content type="boolean" default="1" />
+ <shortdesc lang="en">Use SSH connection</shortdesc>
+ </parameter>
+ <parameter name="ssh" unique="0" required="0" obsoletes="secure">
<getopt mixed="-x, --ssh" />
<content type="boolean" default="1" />
<shortdesc lang="en">Use SSH connection</shortdesc>
@@ -70,17 +100,27 @@ By default, vbox needs to log in as a user that is a member of the vboxusers gro
<content type="string" default="-t '/bin/bash -c "PS1=\\[EXPECT\\]#\ /bin/bash --noprofile --norc"'" />
<shortdesc lang="en">SSH options to use</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
@@ -105,6 +145,15 @@ By default, vbox needs to log in as a user that is a member of the vboxusers gro
<content type="second" default="0" />
<shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
</parameter>
+ <parameter name="host_os" unique="0" required="0">
+ <getopt mixed="--host-os=[os]" />
+ <content type="select" default="linux" >
+ <option value="linux" />
+ <option value="macos" />
+ <option value="windows" />
+ </content>
+ <shortdesc lang="en">Operating system of the host</shortdesc>
+ </parameter>
<parameter name="login_timeout" unique="0" required="0">
<getopt mixed="--login-timeout=[seconds]" />
<content type="second" default="5" />
@@ -130,12 +179,21 @@ By default, vbox needs to log in as a user that is a member of the vboxusers gro
<content type="second" default="3" />
<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
</parameter>
+ <parameter name="vboxmanage_path" unique="0" required="0">
+ <getopt mixed="--vboxmanage-path=[path]" />
+ <shortdesc lang="en">Path to VBoxManage on the host</shortdesc>
+ </parameter>
<parameter name="retry_on" unique="0" required="0">
<getopt mixed="--retry-on=[attempts]" />
<content type="integer" default="1" />
<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
</parameter>
- <parameter name="sudo" unique="0" required="0">
+ <parameter name="sudo" unique="0" required="0" deprecated="1">
+ <getopt mixed="--use-sudo" />
+ <content type="boolean" />
+ <shortdesc lang="en">Use sudo (without password) when calling 3rd party software</shortdesc>
+ </parameter>
+ <parameter name="use_sudo" unique="0" required="0" obsoletes="sudo">
<getopt mixed="--use-sudo" />
<content type="boolean" />
<shortdesc lang="en">Use sudo (without password) when calling 3rd party software</shortdesc>
diff --git a/tests/data/metadata/fence_virsh.xml b/tests/data/metadata/fence_virsh.xml
index 92b8038..f4925ee 100644
--- a/tests/data/metadata/fence_virsh.xml
+++ b/tests/data/metadata/fence_virsh.xml
@@ -10,7 +10,12 @@ By default, virsh needs root account to do properly work. So you must allow ssh
<content type="string" default="reboot" />
<shortdesc lang="en">Fencing action</shortdesc>
</parameter>
- <parameter name="cmd_prompt" unique="0" required="0">
+ <parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ <getopt mixed="-c, --command-prompt=[prompt]" />
+ <content type="string" default="['\\[EXPECT\\]#\\ ']" />
+ <shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+ </parameter>
+ <parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
<getopt mixed="-c, --command-prompt=[prompt]" />
<content type="string" default="['\\[EXPECT\\]#\\ ']" />
<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
@@ -30,7 +35,12 @@ By default, virsh needs root account to do properly work. So you must allow ssh
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -40,27 +50,47 @@ By default, virsh needs root account to do properly work. So you must allow ssh
<content type="integer" default="22" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="1" deprecated="1">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
</parameter>
- <parameter name="secure" unique="0" required="0">
+ <parameter name="secure" unique="0" required="0" deprecated="1">
+ <getopt mixed="-x, --ssh" />
+ <content type="boolean" default="1" />
+ <shortdesc lang="en">Use SSH connection</shortdesc>
+ </parameter>
+ <parameter name="ssh" unique="0" required="0" obsoletes="secure">
<getopt mixed="-x, --ssh" />
<content type="boolean" default="1" />
<shortdesc lang="en">Use SSH connection</shortdesc>
@@ -70,17 +100,27 @@ By default, virsh needs root account to do properly work. So you must allow ssh
<content type="string" default="-t '/bin/bash -c "PS1=\\[EXPECT\\]#\ /bin/bash --noprofile --norc"'" />
<shortdesc lang="en">SSH options to use</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
@@ -135,7 +175,12 @@ By default, virsh needs root account to do properly work. So you must allow ssh
<content type="integer" default="1" />
<shortdesc lang="en">Count of attempts to retry power on</shortdesc>
</parameter>
- <parameter name="sudo" unique="0" required="0">
+ <parameter name="sudo" unique="0" required="0" deprecated="1">
+ <getopt mixed="--use-sudo" />
+ <content type="boolean" />
+ <shortdesc lang="en">Use sudo (without password) when calling 3rd party software</shortdesc>
+ </parameter>
+ <parameter name="use_sudo" unique="0" required="0" obsoletes="sudo">
<getopt mixed="--use-sudo" />
<content type="boolean" />
<shortdesc lang="en">Use sudo (without password) when calling 3rd party software</shortdesc>
diff --git a/tests/data/metadata/fence_vmware.xml b/tests/data/metadata/fence_vmware.xml
index 5791ab5..a010b4d 100644
--- a/tests/data/metadata/fence_vmware.xml
+++ b/tests/data/metadata/fence_vmware.xml
@@ -36,7 +36,12 @@ After you have successfully installed VI Perl Toolkit or VIX API, you should be
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="0">
+ <parameter name="ip" unique="0" required="0" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="0" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -46,27 +51,47 @@ After you have successfully installed VI Perl Toolkit or VIX API, you should be
<content type="integer" default="22" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="0">
+ <parameter name="plug" unique="0" required="0" obsoletes="port">
+ <getopt mixed="-n, --plug=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="0" deprecated="1">
<getopt mixed="-n, --plug=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device (together with --port-as-ip)</shortdesc>
</parameter>
- <parameter name="secure" unique="0" required="0">
+ <parameter name="secure" unique="0" required="0" deprecated="1">
+ <getopt mixed="-x, --ssh" />
+ <content type="boolean" default="1" />
+ <shortdesc lang="en">Use SSH connection</shortdesc>
+ </parameter>
+ <parameter name="ssh" unique="0" required="0" obsoletes="secure">
<getopt mixed="-x, --ssh" />
<content type="boolean" default="1" />
<shortdesc lang="en">Use SSH connection</shortdesc>
@@ -76,6 +101,11 @@ After you have successfully installed VI Perl Toolkit or VIX API, you should be
<content type="string" />
<shortdesc lang="en">SSH options to use</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="vmware_type" unique="0" required="0">
<getopt mixed="-d, --vmware_type=[type]" />
<content type="string" default="esx" />
@@ -89,14 +119,19 @@ After you have successfully installed VI Perl Toolkit or VIX API, you should be
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_rhevm.xml b/tests/data/metadata/fence_vmware_rest.xml
similarity index 70%
copy from tests/data/metadata/fence_rhevm.xml
copy to tests/data/metadata/fence_vmware_rest.xml
index 431f760..20a7cce 100644
--- a/tests/data/metadata/fence_rhevm.xml
+++ b/tests/data/metadata/fence_vmware_rest.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" ?>
-<resource-agent name="fence_rhevm" shortdesc="Fence agent for RHEV-M REST API" >
-<longdesc>fence_rhevm is an I/O Fencing agent which can be used with RHEV-M REST API to fence virtual machines.</longdesc>
-<vendor-url>http://www.redhat.com</vendor-url>
+<resource-agent name="fence_vmware_rest" shortdesc="Fence agent for VMware REST API" >
+<longdesc>fence_vmware_rest is an I/O Fencing agent which can be used with VMware API to fence virtual machines.</longdesc>
+<vendor-url>https://www.vmware.com</vendor-url>
<parameters>
<parameter name="action" unique="0" required="1">
<getopt mixed="-o, --action=[action]" />
@@ -18,7 +18,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -28,7 +33,7 @@
<content type="integer" default="80" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
@@ -38,17 +43,32 @@
<content type="boolean" />
<shortdesc lang="en">Disable TLS negotiation and force SSL3.0. This should only be used for devices that do not support TLS1.0 and up.</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="1" deprecated="1">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
@@ -68,22 +88,31 @@
<content type="boolean" />
<shortdesc lang="en">Use SSL connection with verifying certificate</shortdesc>
</parameter>
- <parameter name="use_cookies" unique="0" required="0">
- <getopt mixed="--use-cookies" />
- <content type="boolean" />
- <shortdesc lang="en">Reuse cookies for authentication</shortdesc>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
+ <parameter name="api_path" unique="0" required="0">
+ <getopt mixed="--api-path=[path]" />
+ <shortdesc lang="en">The path part of the API URL</shortdesc>
</parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
@@ -125,7 +154,7 @@
</parameter>
<parameter name="shell_timeout" unique="0" required="0">
<getopt mixed="--shell-timeout=[seconds]" />
- <content type="second" default="3" />
+ <content type="second" default="5" />
<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
</parameter>
<parameter name="retry_on" unique="0" required="0">
diff --git a/tests/data/metadata/fence_vmware_soap.xml b/tests/data/metadata/fence_vmware_soap.xml
index c4f549d..43b7a52 100644
--- a/tests/data/metadata/fence_vmware_soap.xml
+++ b/tests/data/metadata/fence_vmware_soap.xml
@@ -20,7 +20,12 @@ Name of virtual machine (-n / port) has to be used in inventory path format (e.g
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -30,7 +35,7 @@ Name of virtual machine (-n / port) has to be used in inventory path format (e.g
<content type="integer" default="80" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
@@ -40,17 +45,32 @@ Name of virtual machine (-n / port) has to be used in inventory path format (e.g
<content type="boolean" />
<shortdesc lang="en">Disable TLS negotiation and force SSL3.0. This should only be used for devices that do not support TLS1.0 and up.</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="1" deprecated="1">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
@@ -70,17 +90,27 @@ Name of virtual machine (-n / port) has to be used in inventory path format (e.g
<content type="boolean" />
<shortdesc lang="en">Use SSL connection with verifying certificate</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_rhevm.xml b/tests/data/metadata/fence_vmware_vcloud.xml
similarity index 70%
copy from tests/data/metadata/fence_rhevm.xml
copy to tests/data/metadata/fence_vmware_vcloud.xml
index 431f760..60f49c4 100644
--- a/tests/data/metadata/fence_rhevm.xml
+++ b/tests/data/metadata/fence_vmware_vcloud.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" ?>
-<resource-agent name="fence_rhevm" shortdesc="Fence agent for RHEV-M REST API" >
-<longdesc>fence_rhevm is an I/O Fencing agent which can be used with RHEV-M REST API to fence virtual machines.</longdesc>
-<vendor-url>http://www.redhat.com</vendor-url>
+<resource-agent name="fence_vmware_vcloud" shortdesc="Fence agent for VMware vCloud Director API" >
+<longdesc>fence_vmware_vcloud is an I/O Fencing agent which can be used with VMware vCloud Director API to fence virtual machines.</longdesc>
+<vendor-url>https://www.vmware.com</vendor-url>
<parameters>
<parameter name="action" unique="0" required="1">
<getopt mixed="-o, --action=[action]" />
@@ -18,7 +18,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -28,7 +33,7 @@
<content type="integer" default="80" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
@@ -38,17 +43,32 @@
<content type="boolean" />
<shortdesc lang="en">Disable TLS negotiation and force SSL3.0. This should only be used for devices that do not support TLS1.0 and up.</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="1" deprecated="1">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
@@ -68,22 +88,31 @@
<content type="boolean" />
<shortdesc lang="en">Use SSL connection with verifying certificate</shortdesc>
</parameter>
- <parameter name="use_cookies" unique="0" required="0">
- <getopt mixed="--use-cookies" />
- <content type="boolean" />
- <shortdesc lang="en">Reuse cookies for authentication</shortdesc>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
+ <parameter name="api_path" unique="0" required="0">
+ <getopt mixed="--api-path=[path]" />
+ <shortdesc lang="en">The path part of the API URL</shortdesc>
</parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
@@ -125,7 +154,7 @@
</parameter>
<parameter name="shell_timeout" unique="0" required="0">
<getopt mixed="--shell-timeout=[seconds]" />
- <content type="second" default="3" />
+ <content type="second" default="5" />
<shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
</parameter>
<parameter name="retry_on" unique="0" required="0">
diff --git a/tests/data/metadata/fence_wti.xml b/tests/data/metadata/fence_wti.xml
index 664f6d5..bba8ab9 100644
--- a/tests/data/metadata/fence_wti.xml
+++ b/tests/data/metadata/fence_wti.xml
@@ -8,7 +8,12 @@
<content type="string" default="reboot" />
<shortdesc lang="en">Fencing action</shortdesc>
</parameter>
- <parameter name="cmd_prompt" unique="0" required="0">
+ <parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
+ <getopt mixed="-c, --command-prompt=[prompt]" />
+ <content type="string" default="['RSM>', 'MPC>', 'IPS>', 'TPS>', 'NBB>', 'NPS>', 'VMR>']" />
+ <shortdesc lang="en">Force Python regex for command prompt</shortdesc>
+ </parameter>
+ <parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
<getopt mixed="-c, --command-prompt=[prompt]" />
<content type="string" default="['RSM>', 'MPC>', 'IPS>', 'TPS>', 'NBB>', 'NPS>', 'VMR>']" />
<shortdesc lang="en">Force Python regex for command prompt</shortdesc>
@@ -28,7 +33,12 @@
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -38,27 +48,47 @@
<content type="integer" default="23" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="0">
+ <parameter name="login" unique="0" required="0" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
</parameter>
- <parameter name="secure" unique="0" required="0">
+ <parameter name="port" unique="0" required="1" deprecated="1">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="secure" unique="0" required="0" deprecated="1">
+ <getopt mixed="-x, --ssh" />
+ <content type="boolean" />
+ <shortdesc lang="en">Use SSH connection</shortdesc>
+ </parameter>
+ <parameter name="ssh" unique="0" required="0" obsoletes="secure">
<getopt mixed="-x, --ssh" />
<content type="boolean" />
<shortdesc lang="en">Use SSH connection</shortdesc>
@@ -68,17 +98,27 @@
<content type="string" />
<shortdesc lang="en">SSH options to use</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="0" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_xenapi.xml b/tests/data/metadata/fence_xenapi.xml
index 7623673..55bc8ce 100644
--- a/tests/data/metadata/fence_xenapi.xml
+++ b/tests/data/metadata/fence_xenapi.xml
@@ -8,22 +8,37 @@
<content type="string" default="reboot" />
<shortdesc lang="en">Fencing action</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="0">
+ <parameter name="login" unique="0" required="0" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="1" deprecated="1">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
@@ -33,17 +48,27 @@
<content type="string" />
<shortdesc lang="en">URL to connect to XenServer on</shortdesc>
</parameter>
+ <parameter name="username" unique="0" required="0" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
diff --git a/tests/data/metadata/fence_zvmip.xml b/tests/data/metadata/fence_zvmip.xml
index 4391d45..71ba84c 100644
--- a/tests/data/metadata/fence_zvmip.xml
+++ b/tests/data/metadata/fence_zvmip.xml
@@ -11,9 +11,10 @@ Column 1 Column 66 Column 131
| | |
V V V
-XXXXXXXX ALL IMAGE_OPERATIONS
+XXXXXXXX ALL IMAGE_CHARACTERISTICS
-Where XXXXXXX is the name of the virtual machine used in the authuser field of the request.
+Where XXXXXXX is the name of the virtual machine used in the authuser field of the request. This virtual machine also has to be authorized
+to access the system's directory manager.
</longdesc>
<vendor-url>http://www.ibm.com</vendor-url>
<parameters>
@@ -32,7 +33,12 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
<content type="boolean" />
<shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
</parameter>
- <parameter name="ipaddr" unique="0" required="1">
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
<getopt mixed="-a, --ip=[ip]" />
<content type="string" />
<shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
@@ -42,7 +48,7 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
<content type="integer" default="44444" />
<shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
</parameter>
- <parameter name="login" unique="0" required="1">
+ <parameter name="login" unique="0" required="1" deprecated="1">
<getopt mixed="-l, --username=[name]" />
<content type="string" />
<shortdesc lang="en">Login name</shortdesc>
@@ -55,32 +61,57 @@ Where XXXXXXX is the name of the virtual machine used in the authuser field of t
</content>
<shortdesc lang="en">Method to fence</shortdesc>
</parameter>
- <parameter name="passwd" unique="0" required="0">
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
<getopt mixed="-p, --password=[password]" />
<content type="string" />
<shortdesc lang="en">Login password or passphrase</shortdesc>
</parameter>
- <parameter name="passwd_script" unique="0" required="0">
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
<getopt mixed="-S, --password-script=[script]" />
<content type="string" />
<shortdesc lang="en">Script to run to retrieve password</shortdesc>
</parameter>
- <parameter name="port" unique="0" required="1">
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
<getopt mixed="-n, --plug=[id]" />
<content type="string" />
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
</parameter>
+ <parameter name="port" unique="0" required="1" deprecated="1">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="username" unique="0" required="1" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
- <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug logging to syslog.</shortdesc>
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
</parameter>
<parameter name="verbose" unique="0" required="0">
<getopt mixed="-v, --verbose" />
<content type="boolean" />
<shortdesc lang="en">Verbose mode</shortdesc>
</parameter>
- <parameter name="debug" unique="0" required="0">
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
<getopt mixed="-D, --debug-file=[debugfile]" />
<content type="string" />
<shortdesc lang="en">Write debug information to given file</shortdesc>
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-ha/fence-agents.git
More information about the Debian-HA-Commits
mailing list