• R/O
  • SSH

pm_logconv-cs: Commit

Pacemaker 対応ログメッセージ変換機能。

Heartbeat-2.1.4 用 hb-logconv(*) のPacemaker 1.0.x + Corosync スタック対応版。
(*) http://sourceforge.jp/projects/linux-ha/releases/?package_id=10282


Commit MetaInfo

Revision27a51b3e76ea6cc46265502967c8c0324b398efb (tree)
Time2012-02-09 09:14:02
AuthorYoshihiko SATO <satoyoshi@inte...>
CommiterYoshihiko SATO

Log Message

First release for Corosync stack.

Change Summary

Incremental Difference

diff -r 37a129a4a6e9 -r 27a51b3e76ea Makefile.am
--- a/Makefile.am Fri Jun 25 17:26:20 2010 +0900
+++ b/Makefile.am Thu Feb 09 09:14:02 2012 +0900
@@ -1,16 +1,34 @@
1+logconv_NAME = pm_logconv
2+logconv_SCRIPTS = $(logconv_NAME).py
3+logconv_CONFIG = $(logconv_NAME).conf
4+
15 MAINTAINERCLEANFILES = Makefile.in
2-logconvdir = @HA_NOARCHDATAHBDIR@/pm-logconv
3-logconv_SCRIPTS = pm_logconv.py
4-logconv_CFSAMPLE = pm_logconv.cf.sample
5-
6+logconvdir = @HA_NOARCHDATAHBDIR@/$(logconv_NAME)
67 logconvcfdir = @CONFIG_DIR@
7-logconv_CONFIG = pm_logconv.cf
88
99 SHAREDIR = $(logconvdir)
10-EXTRA_DIST = $(logconv_CONFIG)
10+SPEC = $(logconv_NAME).spec
11+TARFILE = $(PACKAGE_NAME)-$(VERSION).tar.gz
12+EXTRA_DIST = $(logconv_SCRIPTS) $(logconv_CONFIG) $(SPEC)
1113
1214 install-data-hook:
1315 @$(NORMAL_INSTALL)
14- $(INSTALL_DATA) "$(logconv_CONFIG)" "$(DESTDIR)$(logconvdir)/$(logconv_CFSAMPLE)"
1516 test -z "$(logconvcfdir)" || $(mkdir_p) "$(DESTDIR)$(logconvcfdir)"
1617 $(INSTALL_DATA) "$(logconv_CONFIG)" "$(DESTDIR)$(logconvcfdir)"
18+
19+$(TARFILE):
20+ $(MAKE) dist
21+
22+RPM_ROOT = $(shell pwd)
23+RPMBUILDOPTS = --define "_sourcedir $(RPM_ROOT)" --define "_specdir $(RPM_ROOT)"
24+
25+srpm: clean
26+ rm -f $(TARFILE)
27+ $(MAKE) $(SPEC) $(TARFILE)
28+ rpmbuild $(RPMBUILDOPTS) --nodeps -bs --rmsource $(SPEC)
29+
30+rpm: clean
31+ rm -f $(TARFILE)
32+ $(MAKE) $(SPEC) $(TARFILE)
33+ rpmbuild $(RPMBUILDOPTS) -ba --rmsource $(SPEC)
34+
diff -r 37a129a4a6e9 -r 27a51b3e76ea Makefile.in
--- a/Makefile.in Fri Jun 25 17:26:20 2010 +0900
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,435 +0,0 @@
1-# Makefile.in generated by automake 1.9.6 from Makefile.am.
2-# @configure_input@
3-
4-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5-# 2003, 2004, 2005 Free Software Foundation, Inc.
6-# This Makefile.in is free software; the Free Software Foundation
7-# gives unlimited permission to copy and/or distribute it,
8-# with or without modifications, as long as this notice is preserved.
9-
10-# This program is distributed in the hope that it will be useful,
11-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
12-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13-# PARTICULAR PURPOSE.
14-
15-@SET_MAKE@
16-
17-srcdir = @srcdir@
18-top_srcdir = @top_srcdir@
19-VPATH = @srcdir@
20-pkgdatadir = $(datadir)/@PACKAGE@
21-pkglibdir = $(libdir)/@PACKAGE@
22-pkgincludedir = $(includedir)/@PACKAGE@
23-top_builddir = .
24-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25-INSTALL = @INSTALL@
26-install_sh_DATA = $(install_sh) -c -m 644
27-install_sh_PROGRAM = $(install_sh) -c
28-install_sh_SCRIPT = $(install_sh) -c
29-INSTALL_HEADER = $(INSTALL_DATA)
30-transform = $(program_transform_name)
31-NORMAL_INSTALL = :
32-PRE_INSTALL = :
33-POST_INSTALL = :
34-NORMAL_UNINSTALL = :
35-PRE_UNINSTALL = :
36-POST_UNINSTALL = :
37-subdir = .
38-DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \
39- $(srcdir)/Makefile.in $(top_srcdir)/configure install-sh \
40- missing
41-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42-am__aclocal_m4_deps = $(top_srcdir)/configure.in
43-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
44- $(ACLOCAL_M4)
45-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
46- configure.lineno configure.status.lineno
47-mkinstalldirs = $(install_sh) -d
48-CONFIG_CLEAN_FILES =
49-am__installdirs = "$(DESTDIR)$(logconvdir)"
50-logconvSCRIPT_INSTALL = $(INSTALL_SCRIPT)
51-SCRIPTS = $(logconv_SCRIPTS)
52-SOURCES =
53-DIST_SOURCES =
54-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
55-distdir = $(PACKAGE)-$(VERSION)
56-top_distdir = $(distdir)
57-am__remove_distdir = \
58- { test ! -d $(distdir) \
59- || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
60- && rm -fr $(distdir); }; }
61-DIST_ARCHIVES = $(distdir).tar.gz
62-GZIP_ENV = --best
63-distuninstallcheck_listfiles = find . -type f -print
64-distcleancheck_listfiles = find . -type f -print
65-ACLOCAL = @ACLOCAL@
66-AMTAR = @AMTAR@
67-AUTOCONF = @AUTOCONF@
68-AUTOHEADER = @AUTOHEADER@
69-AUTOMAKE = @AUTOMAKE@
70-AWK = @AWK@
71-CONFIG_DIR = @CONFIG_DIR@
72-CYGPATH_W = @CYGPATH_W@
73-DEFS = @DEFS@
74-ECHO_C = @ECHO_C@
75-ECHO_N = @ECHO_N@
76-ECHO_T = @ECHO_T@
77-HA_NOARCHDATAHBDIR = @HA_NOARCHDATAHBDIR@
78-HBMONI_DIR = @HBMONI_DIR@
79-INSTALL_DATA = @INSTALL_DATA@
80-INSTALL_PROGRAM = @INSTALL_PROGRAM@
81-INSTALL_SCRIPT = @INSTALL_SCRIPT@
82-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
83-LIBOBJS = @LIBOBJS@
84-LIBS = @LIBS@
85-LN_S = @LN_S@
86-LTLIBOBJS = @LTLIBOBJS@
87-MAINT = @MAINT@
88-MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
89-MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
90-MAKEINFO = @MAKEINFO@
91-PACKAGE = @PACKAGE@
92-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
93-PACKAGE_NAME = @PACKAGE_NAME@
94-PACKAGE_STRING = @PACKAGE_STRING@
95-PACKAGE_TARNAME = @PACKAGE_TARNAME@
96-PACKAGE_VERSION = @PACKAGE_VERSION@
97-PATH_SEPARATOR = @PATH_SEPARATOR@
98-PYTHON = @PYTHON@
99-PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
100-PYTHON_PLATFORM = @PYTHON_PLATFORM@
101-PYTHON_PREFIX = @PYTHON_PREFIX@
102-PYTHON_VERSION = @PYTHON_VERSION@
103-SET_MAKE = @SET_MAKE@
104-SHELL = @SHELL@
105-STRIP = @STRIP@
106-VERSION = @VERSION@
107-ac_ct_STRIP = @ac_ct_STRIP@
108-am__leading_dot = @am__leading_dot@
109-am__tar = @am__tar@
110-am__untar = @am__untar@
111-bindir = @bindir@
112-build_alias = @build_alias@
113-datadir = @datadir@
114-exec_prefix = @exec_prefix@
115-host_alias = @host_alias@
116-includedir = @includedir@
117-infodir = @infodir@
118-install_sh = @install_sh@
119-libdir = @libdir@
120-libexecdir = @libexecdir@
121-localstatedir = @localstatedir@
122-mandir = @mandir@
123-mkdir_p = @mkdir_p@
124-oldincludedir = @oldincludedir@
125-pkgpyexecdir = @pkgpyexecdir@
126-pkgpythondir = @pkgpythondir@
127-prefix = @prefix@
128-program_transform_name = @program_transform_name@
129-pyexecdir = @pyexecdir@
130-pythondir = @pythondir@
131-sbindir = @sbindir@
132-sharedstatedir = @sharedstatedir@
133-sysconfdir = @sysconfdir@
134-target_alias = @target_alias@
135-MAINTAINERCLEANFILES = Makefile.in
136-logconvdir = @HA_NOARCHDATAHBDIR@/pm-logconv
137-logconv_SCRIPTS = pm_logconv.py
138-logconv_CFSAMPLE = pm_logconv.cf.sample
139-logconvcfdir = @CONFIG_DIR@
140-logconv_CONFIG = pm_logconv.cf
141-SHAREDIR = $(logconvdir)
142-EXTRA_DIST = $(logconv_CONFIG)
143-all: all-am
144-
145-.SUFFIXES:
146-am--refresh:
147- @:
148-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
149- @for dep in $?; do \
150- case '$(am__configure_deps)' in \
151- *$$dep*) \
152- echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
153- cd $(srcdir) && $(AUTOMAKE) --foreign \
154- && exit 0; \
155- exit 1;; \
156- esac; \
157- done; \
158- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
159- cd $(top_srcdir) && \
160- $(AUTOMAKE) --foreign Makefile
161-.PRECIOUS: Makefile
162-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
163- @case '$?' in \
164- *config.status*) \
165- echo ' $(SHELL) ./config.status'; \
166- $(SHELL) ./config.status;; \
167- *) \
168- echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
169- cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
170- esac;
171-
172-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
173- $(SHELL) ./config.status --recheck
174-
175-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
176- cd $(srcdir) && $(AUTOCONF)
177-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
178- cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
179-install-logconvSCRIPTS: $(logconv_SCRIPTS)
180- @$(NORMAL_INSTALL)
181- test -z "$(logconvdir)" || $(mkdir_p) "$(DESTDIR)$(logconvdir)"
182- @list='$(logconv_SCRIPTS)'; for p in $$list; do \
183- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
184- if test -f $$d$$p; then \
185- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
186- echo " $(logconvSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(logconvdir)/$$f'"; \
187- $(logconvSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(logconvdir)/$$f"; \
188- else :; fi; \
189- done
190-
191-uninstall-logconvSCRIPTS:
192- @$(NORMAL_UNINSTALL)
193- @list='$(logconv_SCRIPTS)'; for p in $$list; do \
194- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
195- echo " rm -f '$(DESTDIR)$(logconvdir)/$$f'"; \
196- rm -f "$(DESTDIR)$(logconvdir)/$$f"; \
197- done
198-uninstall-info-am:
199-tags: TAGS
200-TAGS:
201-
202-ctags: CTAGS
203-CTAGS:
204-
205-
206-distdir: $(DISTFILES)
207- $(am__remove_distdir)
208- mkdir $(distdir)
209- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
210- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
211- list='$(DISTFILES)'; for file in $$list; do \
212- case $$file in \
213- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
214- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
215- esac; \
216- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
217- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
218- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
219- dir="/$$dir"; \
220- $(mkdir_p) "$(distdir)$$dir"; \
221- else \
222- dir=''; \
223- fi; \
224- if test -d $$d/$$file; then \
225- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
226- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
227- fi; \
228- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
229- else \
230- test -f $(distdir)/$$file \
231- || cp -p $$d/$$file $(distdir)/$$file \
232- || exit 1; \
233- fi; \
234- done
235- -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
236- ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
237- ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
238- ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
239- || chmod -R a+r $(distdir)
240-dist-gzip: distdir
241- tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
242- $(am__remove_distdir)
243-
244-dist-bzip2: distdir
245- tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
246- $(am__remove_distdir)
247-
248-dist-tarZ: distdir
249- tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
250- $(am__remove_distdir)
251-
252-dist-shar: distdir
253- shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
254- $(am__remove_distdir)
255-
256-dist-zip: distdir
257- -rm -f $(distdir).zip
258- zip -rq $(distdir).zip $(distdir)
259- $(am__remove_distdir)
260-
261-dist dist-all: distdir
262- tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
263- $(am__remove_distdir)
264-
265-# This target untars the dist file and tries a VPATH configuration. Then
266-# it guarantees that the distribution is self-contained by making another
267-# tarfile.
268-distcheck: dist
269- case '$(DIST_ARCHIVES)' in \
270- *.tar.gz*) \
271- GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
272- *.tar.bz2*) \
273- bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
274- *.tar.Z*) \
275- uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
276- *.shar.gz*) \
277- GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
278- *.zip*) \
279- unzip $(distdir).zip ;;\
280- esac
281- chmod -R a-w $(distdir); chmod a+w $(distdir)
282- mkdir $(distdir)/_build
283- mkdir $(distdir)/_inst
284- chmod a-w $(distdir)
285- dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
286- && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
287- && cd $(distdir)/_build \
288- && ../configure --srcdir=.. --prefix="$$dc_install_base" \
289- $(DISTCHECK_CONFIGURE_FLAGS) \
290- && $(MAKE) $(AM_MAKEFLAGS) \
291- && $(MAKE) $(AM_MAKEFLAGS) dvi \
292- && $(MAKE) $(AM_MAKEFLAGS) check \
293- && $(MAKE) $(AM_MAKEFLAGS) install \
294- && $(MAKE) $(AM_MAKEFLAGS) installcheck \
295- && $(MAKE) $(AM_MAKEFLAGS) uninstall \
296- && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
297- distuninstallcheck \
298- && chmod -R a-w "$$dc_install_base" \
299- && ({ \
300- (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
301- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
302- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
303- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
304- distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
305- } || { rm -rf "$$dc_destdir"; exit 1; }) \
306- && rm -rf "$$dc_destdir" \
307- && $(MAKE) $(AM_MAKEFLAGS) dist \
308- && rm -rf $(DIST_ARCHIVES) \
309- && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
310- $(am__remove_distdir)
311- @(echo "$(distdir) archives ready for distribution: "; \
312- list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
313- sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
314-distuninstallcheck:
315- @cd $(distuninstallcheck_dir) \
316- && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
317- || { echo "ERROR: files left after uninstall:" ; \
318- if test -n "$(DESTDIR)"; then \
319- echo " (check DESTDIR support)"; \
320- fi ; \
321- $(distuninstallcheck_listfiles) ; \
322- exit 1; } >&2
323-distcleancheck: distclean
324- @if test '$(srcdir)' = . ; then \
325- echo "ERROR: distcleancheck can only run from a VPATH build" ; \
326- exit 1 ; \
327- fi
328- @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
329- || { echo "ERROR: files left in build directory after distclean:" ; \
330- $(distcleancheck_listfiles) ; \
331- exit 1; } >&2
332-check-am: all-am
333-check: check-am
334-all-am: Makefile $(SCRIPTS)
335-installdirs:
336- for dir in "$(DESTDIR)$(logconvdir)"; do \
337- test -z "$$dir" || $(mkdir_p) "$$dir"; \
338- done
339-install: install-am
340-install-exec: install-exec-am
341-install-data: install-data-am
342-uninstall: uninstall-am
343-
344-install-am: all-am
345- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
346-
347-installcheck: installcheck-am
348-install-strip:
349- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
350- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
351- `test -z '$(STRIP)' || \
352- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
353-mostlyclean-generic:
354-
355-clean-generic:
356-
357-distclean-generic:
358- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
359-
360-maintainer-clean-generic:
361- @echo "This command is intended for maintainers to use"
362- @echo "it deletes files that may require special tools to rebuild."
363- -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
364-clean: clean-am
365-
366-clean-am: clean-generic mostlyclean-am
367-
368-distclean: distclean-am
369- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
370- -rm -f Makefile
371-distclean-am: clean-am distclean-generic
372-
373-dvi: dvi-am
374-
375-dvi-am:
376-
377-html: html-am
378-
379-info: info-am
380-
381-info-am:
382-
383-install-data-am: install-logconvSCRIPTS
384- @$(NORMAL_INSTALL)
385- $(MAKE) $(AM_MAKEFLAGS) install-data-hook
386-
387-install-exec-am:
388-
389-install-info: install-info-am
390-
391-install-man:
392-
393-installcheck-am:
394-
395-maintainer-clean: maintainer-clean-am
396- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
397- -rm -rf $(top_srcdir)/autom4te.cache
398- -rm -f Makefile
399-maintainer-clean-am: distclean-am maintainer-clean-generic
400-
401-mostlyclean: mostlyclean-am
402-
403-mostlyclean-am: mostlyclean-generic
404-
405-pdf: pdf-am
406-
407-pdf-am:
408-
409-ps: ps-am
410-
411-ps-am:
412-
413-uninstall-am: uninstall-info-am uninstall-logconvSCRIPTS
414-
415-.PHONY: all all-am am--refresh check check-am clean clean-generic dist \
416- dist-all dist-bzip2 dist-gzip dist-shar dist-tarZ dist-zip \
417- distcheck distclean distclean-generic distcleancheck distdir \
418- distuninstallcheck dvi dvi-am html html-am info info-am \
419- install install-am install-data install-data-am \
420- install-data-hook install-exec install-exec-am install-info \
421- install-info-am install-logconvSCRIPTS install-man \
422- install-strip installcheck installcheck-am installdirs \
423- maintainer-clean maintainer-clean-generic mostlyclean \
424- mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
425- uninstall-info-am uninstall-logconvSCRIPTS
426-
427-
428-install-data-hook:
429- @$(NORMAL_INSTALL)
430- $(INSTALL_DATA) "$(logconv_CONFIG)" "$(DESTDIR)$(logconvdir)/$(logconv_CFSAMPLE)"
431- test -z "$(logconvcfdir)" || $(mkdir_p) "$(DESTDIR)$(logconvcfdir)"
432- $(INSTALL_DATA) "$(logconv_CONFIG)" "$(DESTDIR)$(logconvcfdir)"
433-# Tell versions [3.59,3.63) of GNU make to not export all variables.
434-# Otherwise a system limit (for SysV at least) may be exceeded.
435-.NOEXPORT:
diff -r 37a129a4a6e9 -r 27a51b3e76ea aclocal.m4
--- a/aclocal.m4 Fri Jun 25 17:26:20 2010 +0900
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,784 +0,0 @@
1-# generated automatically by aclocal 1.9.6 -*- Autoconf -*-
2-
3-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
4-# 2005 Free Software Foundation, Inc.
5-# This file is free software; the Free Software Foundation
6-# gives unlimited permission to copy and/or distribute it,
7-# with or without modifications, as long as this notice is preserved.
8-
9-# This program is distributed in the hope that it will be useful,
10-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
11-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
12-# PARTICULAR PURPOSE.
13-
14-# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
15-#
16-# This file is free software; the Free Software Foundation
17-# gives unlimited permission to copy and/or distribute it,
18-# with or without modifications, as long as this notice is preserved.
19-
20-# AM_AUTOMAKE_VERSION(VERSION)
21-# ----------------------------
22-# Automake X.Y traces this macro to ensure aclocal.m4 has been
23-# generated from the m4 files accompanying Automake X.Y.
24-AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
25-
26-# AM_SET_CURRENT_AUTOMAKE_VERSION
27-# -------------------------------
28-# Call AM_AUTOMAKE_VERSION so it can be traced.
29-# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
30-AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
31- [AM_AUTOMAKE_VERSION([1.9.6])])
32-
33-# AM_AUX_DIR_EXPAND -*- Autoconf -*-
34-
35-# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
36-#
37-# This file is free software; the Free Software Foundation
38-# gives unlimited permission to copy and/or distribute it,
39-# with or without modifications, as long as this notice is preserved.
40-
41-# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
42-# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
43-# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
44-#
45-# Of course, Automake must honor this variable whenever it calls a
46-# tool from the auxiliary directory. The problem is that $srcdir (and
47-# therefore $ac_aux_dir as well) can be either absolute or relative,
48-# depending on how configure is run. This is pretty annoying, since
49-# it makes $ac_aux_dir quite unusable in subdirectories: in the top
50-# source directory, any form will work fine, but in subdirectories a
51-# relative path needs to be adjusted first.
52-#
53-# $ac_aux_dir/missing
54-# fails when called from a subdirectory if $ac_aux_dir is relative
55-# $top_srcdir/$ac_aux_dir/missing
56-# fails if $ac_aux_dir is absolute,
57-# fails when called from a subdirectory in a VPATH build with
58-# a relative $ac_aux_dir
59-#
60-# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
61-# are both prefixed by $srcdir. In an in-source build this is usually
62-# harmless because $srcdir is `.', but things will broke when you
63-# start a VPATH build or use an absolute $srcdir.
64-#
65-# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
66-# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
67-# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
68-# and then we would define $MISSING as
69-# MISSING="\${SHELL} $am_aux_dir/missing"
70-# This will work as long as MISSING is not called from configure, because
71-# unfortunately $(top_srcdir) has no meaning in configure.
72-# However there are other variables, like CC, which are often used in
73-# configure, and could therefore not use this "fixed" $ac_aux_dir.
74-#
75-# Another solution, used here, is to always expand $ac_aux_dir to an
76-# absolute PATH. The drawback is that using absolute paths prevent a
77-# configured tree to be moved without reconfiguration.
78-
79-AC_DEFUN([AM_AUX_DIR_EXPAND],
80-[dnl Rely on autoconf to set up CDPATH properly.
81-AC_PREREQ([2.50])dnl
82-# expand $ac_aux_dir to an absolute path
83-am_aux_dir=`cd $ac_aux_dir && pwd`
84-])
85-
86-# AM_CONDITIONAL -*- Autoconf -*-
87-
88-# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
89-# Free Software Foundation, Inc.
90-#
91-# This file is free software; the Free Software Foundation
92-# gives unlimited permission to copy and/or distribute it,
93-# with or without modifications, as long as this notice is preserved.
94-
95-# serial 7
96-
97-# AM_CONDITIONAL(NAME, SHELL-CONDITION)
98-# -------------------------------------
99-# Define a conditional.
100-AC_DEFUN([AM_CONDITIONAL],
101-[AC_PREREQ(2.52)dnl
102- ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
103- [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
104-AC_SUBST([$1_TRUE])
105-AC_SUBST([$1_FALSE])
106-if $2; then
107- $1_TRUE=
108- $1_FALSE='#'
109-else
110- $1_TRUE='#'
111- $1_FALSE=
112-fi
113-AC_CONFIG_COMMANDS_PRE(
114-[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
115- AC_MSG_ERROR([[conditional "$1" was never defined.
116-Usually this means the macro was only invoked conditionally.]])
117-fi])])
118-
119-# Do all the work for Automake. -*- Autoconf -*-
120-
121-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
122-# Free Software Foundation, Inc.
123-#
124-# This file is free software; the Free Software Foundation
125-# gives unlimited permission to copy and/or distribute it,
126-# with or without modifications, as long as this notice is preserved.
127-
128-# serial 12
129-
130-# This macro actually does too much. Some checks are only needed if
131-# your package does certain things. But this isn't really a big deal.
132-
133-# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
134-# AM_INIT_AUTOMAKE([OPTIONS])
135-# -----------------------------------------------
136-# The call with PACKAGE and VERSION arguments is the old style
137-# call (pre autoconf-2.50), which is being phased out. PACKAGE
138-# and VERSION should now be passed to AC_INIT and removed from
139-# the call to AM_INIT_AUTOMAKE.
140-# We support both call styles for the transition. After
141-# the next Automake release, Autoconf can make the AC_INIT
142-# arguments mandatory, and then we can depend on a new Autoconf
143-# release and drop the old call support.
144-AC_DEFUN([AM_INIT_AUTOMAKE],
145-[AC_PREREQ([2.58])dnl
146-dnl Autoconf wants to disallow AM_ names. We explicitly allow
147-dnl the ones we care about.
148-m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
149-AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
150-AC_REQUIRE([AC_PROG_INSTALL])dnl
151-# test to see if srcdir already configured
152-if test "`cd $srcdir && pwd`" != "`pwd`" &&
153- test -f $srcdir/config.status; then
154- AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
155-fi
156-
157-# test whether we have cygpath
158-if test -z "$CYGPATH_W"; then
159- if (cygpath --version) >/dev/null 2>/dev/null; then
160- CYGPATH_W='cygpath -w'
161- else
162- CYGPATH_W=echo
163- fi
164-fi
165-AC_SUBST([CYGPATH_W])
166-
167-# Define the identity of the package.
168-dnl Distinguish between old-style and new-style calls.
169-m4_ifval([$2],
170-[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
171- AC_SUBST([PACKAGE], [$1])dnl
172- AC_SUBST([VERSION], [$2])],
173-[_AM_SET_OPTIONS([$1])dnl
174- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
175- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
176-
177-_AM_IF_OPTION([no-define],,
178-[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
179- AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
180-
181-# Some tools Automake needs.
182-AC_REQUIRE([AM_SANITY_CHECK])dnl
183-AC_REQUIRE([AC_ARG_PROGRAM])dnl
184-AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
185-AM_MISSING_PROG(AUTOCONF, autoconf)
186-AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
187-AM_MISSING_PROG(AUTOHEADER, autoheader)
188-AM_MISSING_PROG(MAKEINFO, makeinfo)
189-AM_PROG_INSTALL_SH
190-AM_PROG_INSTALL_STRIP
191-AC_REQUIRE([AM_PROG_MKDIR_P])dnl
192-# We need awk for the "check" target. The system "awk" is bad on
193-# some platforms.
194-AC_REQUIRE([AC_PROG_AWK])dnl
195-AC_REQUIRE([AC_PROG_MAKE_SET])dnl
196-AC_REQUIRE([AM_SET_LEADING_DOT])dnl
197-_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
198- [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
199- [_AM_PROG_TAR([v7])])])
200-_AM_IF_OPTION([no-dependencies],,
201-[AC_PROVIDE_IFELSE([AC_PROG_CC],
202- [_AM_DEPENDENCIES(CC)],
203- [define([AC_PROG_CC],
204- defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
205-AC_PROVIDE_IFELSE([AC_PROG_CXX],
206- [_AM_DEPENDENCIES(CXX)],
207- [define([AC_PROG_CXX],
208- defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
209-])
210-])
211-
212-
213-# When config.status generates a header, we must update the stamp-h file.
214-# This file resides in the same directory as the config header
215-# that is generated. The stamp files are numbered to have different names.
216-
217-# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
218-# loop where config.status creates the headers, so we can generate
219-# our stamp files there.
220-AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
221-[# Compute $1's index in $config_headers.
222-_am_stamp_count=1
223-for _am_header in $config_headers :; do
224- case $_am_header in
225- $1 | $1:* )
226- break ;;
227- * )
228- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
229- esac
230-done
231-echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
232-
233-# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
234-#
235-# This file is free software; the Free Software Foundation
236-# gives unlimited permission to copy and/or distribute it,
237-# with or without modifications, as long as this notice is preserved.
238-
239-# AM_PROG_INSTALL_SH
240-# ------------------
241-# Define $install_sh.
242-AC_DEFUN([AM_PROG_INSTALL_SH],
243-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
244-install_sh=${install_sh-"$am_aux_dir/install-sh"}
245-AC_SUBST(install_sh)])
246-
247-# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
248-#
249-# This file is free software; the Free Software Foundation
250-# gives unlimited permission to copy and/or distribute it,
251-# with or without modifications, as long as this notice is preserved.
252-
253-# serial 2
254-
255-# Check whether the underlying file-system supports filenames
256-# with a leading dot. For instance MS-DOS doesn't.
257-AC_DEFUN([AM_SET_LEADING_DOT],
258-[rm -rf .tst 2>/dev/null
259-mkdir .tst 2>/dev/null
260-if test -d .tst; then
261- am__leading_dot=.
262-else
263- am__leading_dot=_
264-fi
265-rmdir .tst 2>/dev/null
266-AC_SUBST([am__leading_dot])])
267-
268-# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
269-# From Jim Meyering
270-
271-# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005
272-# Free Software Foundation, Inc.
273-#
274-# This file is free software; the Free Software Foundation
275-# gives unlimited permission to copy and/or distribute it,
276-# with or without modifications, as long as this notice is preserved.
277-
278-# serial 4
279-
280-AC_DEFUN([AM_MAINTAINER_MODE],
281-[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
282- dnl maintainer-mode is disabled by default
283- AC_ARG_ENABLE(maintainer-mode,
284-[ --enable-maintainer-mode enable make rules and dependencies not useful
285- (and sometimes confusing) to the casual installer],
286- USE_MAINTAINER_MODE=$enableval,
287- USE_MAINTAINER_MODE=no)
288- AC_MSG_RESULT([$USE_MAINTAINER_MODE])
289- AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes])
290- MAINT=$MAINTAINER_MODE_TRUE
291- AC_SUBST(MAINT)dnl
292-]
293-)
294-
295-AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
296-
297-# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
298-
299-# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
300-# Free Software Foundation, Inc.
301-#
302-# This file is free software; the Free Software Foundation
303-# gives unlimited permission to copy and/or distribute it,
304-# with or without modifications, as long as this notice is preserved.
305-
306-# serial 4
307-
308-# AM_MISSING_PROG(NAME, PROGRAM)
309-# ------------------------------
310-AC_DEFUN([AM_MISSING_PROG],
311-[AC_REQUIRE([AM_MISSING_HAS_RUN])
312-$1=${$1-"${am_missing_run}$2"}
313-AC_SUBST($1)])
314-
315-
316-# AM_MISSING_HAS_RUN
317-# ------------------
318-# Define MISSING if not defined so far and test if it supports --run.
319-# If it does, set am_missing_run to use it, otherwise, to nothing.
320-AC_DEFUN([AM_MISSING_HAS_RUN],
321-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
322-test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
323-# Use eval to expand $SHELL
324-if eval "$MISSING --run true"; then
325- am_missing_run="$MISSING --run "
326-else
327- am_missing_run=
328- AC_MSG_WARN([`missing' script is too old or missing])
329-fi
330-])
331-
332-# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
333-#
334-# This file is free software; the Free Software Foundation
335-# gives unlimited permission to copy and/or distribute it,
336-# with or without modifications, as long as this notice is preserved.
337-
338-# AM_PROG_MKDIR_P
339-# ---------------
340-# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
341-#
342-# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
343-# created by `make install' are always world readable, even if the
344-# installer happens to have an overly restrictive umask (e.g. 077).
345-# This was a mistake. There are at least two reasons why we must not
346-# use `-m 0755':
347-# - it causes special bits like SGID to be ignored,
348-# - it may be too restrictive (some setups expect 775 directories).
349-#
350-# Do not use -m 0755 and let people choose whatever they expect by
351-# setting umask.
352-#
353-# We cannot accept any implementation of `mkdir' that recognizes `-p'.
354-# Some implementations (such as Solaris 8's) are not thread-safe: if a
355-# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
356-# concurrently, both version can detect that a/ is missing, but only
357-# one can create it and the other will error out. Consequently we
358-# restrict ourselves to GNU make (using the --version option ensures
359-# this.)
360-AC_DEFUN([AM_PROG_MKDIR_P],
361-[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
362- # We used to keeping the `.' as first argument, in order to
363- # allow $(mkdir_p) to be used without argument. As in
364- # $(mkdir_p) $(somedir)
365- # where $(somedir) is conditionally defined. However this is wrong
366- # for two reasons:
367- # 1. if the package is installed by a user who cannot write `.'
368- # make install will fail,
369- # 2. the above comment should most certainly read
370- # $(mkdir_p) $(DESTDIR)$(somedir)
371- # so it does not work when $(somedir) is undefined and
372- # $(DESTDIR) is not.
373- # To support the latter case, we have to write
374- # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
375- # so the `.' trick is pointless.
376- mkdir_p='mkdir -p --'
377-else
378- # On NextStep and OpenStep, the `mkdir' command does not
379- # recognize any option. It will interpret all options as
380- # directories to create, and then abort because `.' already
381- # exists.
382- for d in ./-p ./--version;
383- do
384- test -d $d && rmdir $d
385- done
386- # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
387- if test -f "$ac_aux_dir/mkinstalldirs"; then
388- mkdir_p='$(mkinstalldirs)'
389- else
390- mkdir_p='$(install_sh) -d'
391- fi
392-fi
393-AC_SUBST([mkdir_p])])
394-
395-# Helper functions for option handling. -*- Autoconf -*-
396-
397-# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
398-#
399-# This file is free software; the Free Software Foundation
400-# gives unlimited permission to copy and/or distribute it,
401-# with or without modifications, as long as this notice is preserved.
402-
403-# serial 3
404-
405-# _AM_MANGLE_OPTION(NAME)
406-# -----------------------
407-AC_DEFUN([_AM_MANGLE_OPTION],
408-[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
409-
410-# _AM_SET_OPTION(NAME)
411-# ------------------------------
412-# Set option NAME. Presently that only means defining a flag for this option.
413-AC_DEFUN([_AM_SET_OPTION],
414-[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
415-
416-# _AM_SET_OPTIONS(OPTIONS)
417-# ----------------------------------
418-# OPTIONS is a space-separated list of Automake options.
419-AC_DEFUN([_AM_SET_OPTIONS],
420-[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
421-
422-# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
423-# -------------------------------------------
424-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
425-AC_DEFUN([_AM_IF_OPTION],
426-[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
427-
428-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
429-# Free Software Foundation, Inc.
430-#
431-# This file is free software; the Free Software Foundation
432-# gives unlimited permission to copy and/or distribute it,
433-# with or without modifications, as long as this notice is preserved.
434-
435-# AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
436-# ---------------------------------------------------------------------------
437-# Adds support for distributing Python modules and packages. To
438-# install modules, copy them to $(pythondir), using the python_PYTHON
439-# automake variable. To install a package with the same name as the
440-# automake package, install to $(pkgpythondir), or use the
441-# pkgpython_PYTHON automake variable.
442-#
443-# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as
444-# locations to install python extension modules (shared libraries).
445-# Another macro is required to find the appropriate flags to compile
446-# extension modules.
447-#
448-# If your package is configured with a different prefix to python,
449-# users will have to add the install directory to the PYTHONPATH
450-# environment variable, or create a .pth file (see the python
451-# documentation for details).
452-#
453-# If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will
454-# cause an error if the version of python installed on the system
455-# doesn't meet the requirement. MINIMUM-VERSION should consist of
456-# numbers and dots only.
457-AC_DEFUN([AM_PATH_PYTHON],
458- [
459- dnl Find a Python interpreter. Python versions prior to 1.5 are not
460- dnl supported because the default installation locations changed from
461- dnl $prefix/lib/site-python in 1.4 to $prefix/lib/python1.5/site-packages
462- dnl in 1.5.
463- m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
464- [python python2 python2.5 python2.4 python2.3 python2.2 dnl
465-python2.1 python2.0 python1.6 python1.5])
466-
467- m4_if([$1],[],[
468- dnl No version check is needed.
469- # Find any Python interpreter.
470- if test -z "$PYTHON"; then
471- AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :)
472- fi
473- am_display_PYTHON=python
474- ], [
475- dnl A version check is needed.
476- if test -n "$PYTHON"; then
477- # If the user set $PYTHON, use it and don't search something else.
478- AC_MSG_CHECKING([whether $PYTHON version >= $1])
479- AM_PYTHON_CHECK_VERSION([$PYTHON], [$1],
480- [AC_MSG_RESULT(yes)],
481- [AC_MSG_ERROR(too old)])
482- am_display_PYTHON=$PYTHON
483- else
484- # Otherwise, try each interpreter until we find one that satisfies
485- # VERSION.
486- AC_CACHE_CHECK([for a Python interpreter with version >= $1],
487- [am_cv_pathless_PYTHON],[
488- for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do
489- test "$am_cv_pathless_PYTHON" = none && break
490- AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break])
491- done])
492- # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
493- if test "$am_cv_pathless_PYTHON" = none; then
494- PYTHON=:
495- else
496- AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON])
497- fi
498- am_display_PYTHON=$am_cv_pathless_PYTHON
499- fi
500- ])
501-
502- if test "$PYTHON" = :; then
503- dnl Run any user-specified action, or abort.
504- m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])])
505- else
506-
507- dnl Query Python for its version number. Getting [:3] seems to be
508- dnl the best way to do this; it's what "site.py" does in the standard
509- dnl library.
510-
511- AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
512- [am_cv_python_version=`$PYTHON -c "import sys; print sys.version[[:3]]"`])
513- AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
514-
515- dnl Use the values of $prefix and $exec_prefix for the corresponding
516- dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made
517- dnl distinct variables so they can be overridden if need be. However,
518- dnl general consensus is that you shouldn't need this ability.
519-
520- AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
521- AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
522-
523- dnl At times (like when building shared libraries) you may want
524- dnl to know which OS platform Python thinks this is.
525-
526- AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
527- [am_cv_python_platform=`$PYTHON -c "import sys; print sys.platform"`])
528- AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
529-
530-
531- dnl Set up 4 directories:
532-
533- dnl pythondir -- where to install python scripts. This is the
534- dnl site-packages directory, not the python standard library
535- dnl directory like in previous automake betas. This behavior
536- dnl is more consistent with lispdir.m4 for example.
537- dnl Query distutils for this directory. distutils does not exist in
538- dnl Python 1.5, so we fall back to the hardcoded directory if it
539- dnl doesn't work.
540- AC_CACHE_CHECK([for $am_display_PYTHON script directory],
541- [am_cv_python_pythondir],
542- [am_cv_python_pythondir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(0,0,prefix='$PYTHON_PREFIX')" 2>/dev/null ||
543- echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`])
544- AC_SUBST([pythondir], [$am_cv_python_pythondir])
545-
546- dnl pkgpythondir -- $PACKAGE directory under pythondir. Was
547- dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is
548- dnl more consistent with the rest of automake.
549-
550- AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
551-
552- dnl pyexecdir -- directory for installing python extension modules
553- dnl (shared libraries)
554- dnl Query distutils for this directory. distutils does not exist in
555- dnl Python 1.5, so we fall back to the hardcoded directory if it
556- dnl doesn't work.
557- AC_CACHE_CHECK([for $am_display_PYTHON extension module directory],
558- [am_cv_python_pyexecdir],
559- [am_cv_python_pyexecdir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(1,0,prefix='$PYTHON_EXEC_PREFIX')" 2>/dev/null ||
560- echo "${PYTHON_EXEC_PREFIX}/lib/python${PYTHON_VERSION}/site-packages"`])
561- AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
562-
563- dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE)
564-
565- AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
566-
567- dnl Run any user-specified action.
568- $2
569- fi
570-
571-])
572-
573-
574-# AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
575-# ---------------------------------------------------------------------------
576-# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION.
577-# Run ACTION-IF-FALSE otherwise.
578-# This test uses sys.hexversion instead of the string equivalent (first
579-# word of sys.version), in order to cope with versions such as 2.2c1.
580-# hexversion has been introduced in Python 1.5.2; it's probably not
581-# worth to support older versions (1.5.1 was released on October 31, 1998).
582-AC_DEFUN([AM_PYTHON_CHECK_VERSION],
583- [prog="import sys, string
584-# split strings by '.' and convert to numeric. Append some zeros
585-# because we need at least 4 digits for the hex conversion.
586-minver = map(int, string.split('$2', '.')) + [[0, 0, 0]]
587-minverhex = 0
588-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[[i]]
589-sys.exit(sys.hexversion < minverhex)"
590- AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])
591-
592-# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
593-#
594-# This file is free software; the Free Software Foundation
595-# gives unlimited permission to copy and/or distribute it,
596-# with or without modifications, as long as this notice is preserved.
597-
598-# AM_RUN_LOG(COMMAND)
599-# -------------------
600-# Run COMMAND, save the exit status in ac_status, and log it.
601-# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
602-AC_DEFUN([AM_RUN_LOG],
603-[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
604- ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
605- ac_status=$?
606- echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
607- (exit $ac_status); }])
608-
609-# Check to make sure that the build environment is sane. -*- Autoconf -*-
610-
611-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
612-# Free Software Foundation, Inc.
613-#
614-# This file is free software; the Free Software Foundation
615-# gives unlimited permission to copy and/or distribute it,
616-# with or without modifications, as long as this notice is preserved.
617-
618-# serial 4
619-
620-# AM_SANITY_CHECK
621-# ---------------
622-AC_DEFUN([AM_SANITY_CHECK],
623-[AC_MSG_CHECKING([whether build environment is sane])
624-# Just in case
625-sleep 1
626-echo timestamp > conftest.file
627-# Do `set' in a subshell so we don't clobber the current shell's
628-# arguments. Must try -L first in case configure is actually a
629-# symlink; some systems play weird games with the mod time of symlinks
630-# (eg FreeBSD returns the mod time of the symlink's containing
631-# directory).
632-if (
633- set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
634- if test "$[*]" = "X"; then
635- # -L didn't work.
636- set X `ls -t $srcdir/configure conftest.file`
637- fi
638- rm -f conftest.file
639- if test "$[*]" != "X $srcdir/configure conftest.file" \
640- && test "$[*]" != "X conftest.file $srcdir/configure"; then
641-
642- # If neither matched, then we have a broken ls. This can happen
643- # if, for instance, CONFIG_SHELL is bash and it inherits a
644- # broken ls alias from the environment. This has actually
645- # happened. Such a system could not be considered "sane".
646- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
647-alias in your environment])
648- fi
649-
650- test "$[2]" = conftest.file
651- )
652-then
653- # Ok.
654- :
655-else
656- AC_MSG_ERROR([newly created file is older than distributed files!
657-Check your system clock])
658-fi
659-AC_MSG_RESULT(yes)])
660-
661-# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
662-#
663-# This file is free software; the Free Software Foundation
664-# gives unlimited permission to copy and/or distribute it,
665-# with or without modifications, as long as this notice is preserved.
666-
667-# AM_PROG_INSTALL_STRIP
668-# ---------------------
669-# One issue with vendor `install' (even GNU) is that you can't
670-# specify the program used to strip binaries. This is especially
671-# annoying in cross-compiling environments, where the build's strip
672-# is unlikely to handle the host's binaries.
673-# Fortunately install-sh will honor a STRIPPROG variable, so we
674-# always use install-sh in `make install-strip', and initialize
675-# STRIPPROG with the value of the STRIP variable (set by the user).
676-AC_DEFUN([AM_PROG_INSTALL_STRIP],
677-[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
678-# Installed binaries are usually stripped using `strip' when the user
679-# run `make install-strip'. However `strip' might not be the right
680-# tool to use in cross-compilation environments, therefore Automake
681-# will honor the `STRIP' environment variable to overrule this program.
682-dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
683-if test "$cross_compiling" != no; then
684- AC_CHECK_TOOL([STRIP], [strip], :)
685-fi
686-INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
687-AC_SUBST([INSTALL_STRIP_PROGRAM])])
688-
689-# Check how to create a tarball. -*- Autoconf -*-
690-
691-# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
692-#
693-# This file is free software; the Free Software Foundation
694-# gives unlimited permission to copy and/or distribute it,
695-# with or without modifications, as long as this notice is preserved.
696-
697-# serial 2
698-
699-# _AM_PROG_TAR(FORMAT)
700-# --------------------
701-# Check how to create a tarball in format FORMAT.
702-# FORMAT should be one of `v7', `ustar', or `pax'.
703-#
704-# Substitute a variable $(am__tar) that is a command
705-# writing to stdout a FORMAT-tarball containing the directory
706-# $tardir.
707-# tardir=directory && $(am__tar) > result.tar
708-#
709-# Substitute a variable $(am__untar) that extract such
710-# a tarball read from stdin.
711-# $(am__untar) < result.tar
712-AC_DEFUN([_AM_PROG_TAR],
713-[# Always define AMTAR for backward compatibility.
714-AM_MISSING_PROG([AMTAR], [tar])
715-m4_if([$1], [v7],
716- [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
717- [m4_case([$1], [ustar],, [pax],,
718- [m4_fatal([Unknown tar format])])
719-AC_MSG_CHECKING([how to create a $1 tar archive])
720-# Loop over all known methods to create a tar archive until one works.
721-_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
722-_am_tools=${am_cv_prog_tar_$1-$_am_tools}
723-# Do not fold the above two line into one, because Tru64 sh and
724-# Solaris sh will not grok spaces in the rhs of `-'.
725-for _am_tool in $_am_tools
726-do
727- case $_am_tool in
728- gnutar)
729- for _am_tar in tar gnutar gtar;
730- do
731- AM_RUN_LOG([$_am_tar --version]) && break
732- done
733- am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
734- am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
735- am__untar="$_am_tar -xf -"
736- ;;
737- plaintar)
738- # Must skip GNU tar: if it does not support --format= it doesn't create
739- # ustar tarball either.
740- (tar --version) >/dev/null 2>&1 && continue
741- am__tar='tar chf - "$$tardir"'
742- am__tar_='tar chf - "$tardir"'
743- am__untar='tar xf -'
744- ;;
745- pax)
746- am__tar='pax -L -x $1 -w "$$tardir"'
747- am__tar_='pax -L -x $1 -w "$tardir"'
748- am__untar='pax -r'
749- ;;
750- cpio)
751- am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
752- am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
753- am__untar='cpio -i -H $1 -d'
754- ;;
755- none)
756- am__tar=false
757- am__tar_=false
758- am__untar=false
759- ;;
760- esac
761-
762- # If the value was cached, stop now. We just wanted to have am__tar
763- # and am__untar set.
764- test -n "${am_cv_prog_tar_$1}" && break
765-
766- # tar/untar a dummy directory, and stop if the command works
767- rm -rf conftest.dir
768- mkdir conftest.dir
769- echo GrepMe > conftest.dir/file
770- AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
771- rm -rf conftest.dir
772- if test -s conftest.tar; then
773- AM_RUN_LOG([$am__untar <conftest.tar])
774- grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
775- fi
776-done
777-rm -rf conftest.dir
778-
779-AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
780-AC_MSG_RESULT([$am_cv_prog_tar_$1])])
781-AC_SUBST([am__tar])
782-AC_SUBST([am__untar])
783-]) # _AM_PROG_TAR
784-
diff -r 37a129a4a6e9 -r 27a51b3e76ea autogen.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/autogen.sh Thu Feb 09 09:14:02 2012 +0900
@@ -0,0 +1,11 @@
1+#!/bin/sh
2+# Run this to generate all the initial makefiles, etc.
3+
4+echo Building configuration system...
5+autoreconf -i
6+if [ $? -ne 0 ]; then
7+ exit 1
8+fi
9+rm -rf autom4te.cache
10+echo Now run ./configure
11+
diff -r 37a129a4a6e9 -r 27a51b3e76ea configure
--- a/configure Fri Jun 25 17:26:20 2010 +0900
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2927 +0,0 @@
1-#! /bin/sh
2-# Guess values for system-dependent variables and create Makefiles.
3-# Generated by GNU Autoconf 2.59 for pm-logconv 1.00.
4-#
5-# Copyright (C) 2003 Free Software Foundation, Inc.
6-# This configure script is free software; the Free Software Foundation
7-# gives unlimited permission to copy, distribute and modify it.
8-## --------------------- ##
9-## M4sh Initialization. ##
10-## --------------------- ##
11-
12-# Be Bourne compatible
13-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
14- emulate sh
15- NULLCMD=:
16- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
17- # is contrary to our usage. Disable this feature.
18- alias -g '${1+"$@"}'='"$@"'
19-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
20- set -o posix
21-fi
22-DUALCASE=1; export DUALCASE # for MKS sh
23-
24-# Support unset when possible.
25-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
26- as_unset=unset
27-else
28- as_unset=false
29-fi
30-
31-
32-# Work around bugs in pre-3.0 UWIN ksh.
33-$as_unset ENV MAIL MAILPATH
34-PS1='$ '
35-PS2='> '
36-PS4='+ '
37-
38-# NLS nuisances.
39-for as_var in \
40- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
41- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
42- LC_TELEPHONE LC_TIME
43-do
44- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
45- eval $as_var=C; export $as_var
46- else
47- $as_unset $as_var
48- fi
49-done
50-
51-# Required to use basename.
52-if expr a : '\(a\)' >/dev/null 2>&1; then
53- as_expr=expr
54-else
55- as_expr=false
56-fi
57-
58-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
59- as_basename=basename
60-else
61- as_basename=false
62-fi
63-
64-
65-# Name of the executable.
66-as_me=`$as_basename "$0" ||
67-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
68- X"$0" : 'X\(//\)$' \| \
69- X"$0" : 'X\(/\)$' \| \
70- . : '\(.\)' 2>/dev/null ||
71-echo X/"$0" |
72- sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
73- /^X\/\(\/\/\)$/{ s//\1/; q; }
74- /^X\/\(\/\).*/{ s//\1/; q; }
75- s/.*/./; q'`
76-
77-
78-# PATH needs CR, and LINENO needs CR and PATH.
79-# Avoid depending upon Character Ranges.
80-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
81-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
82-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
83-as_cr_digits='0123456789'
84-as_cr_alnum=$as_cr_Letters$as_cr_digits
85-
86-# The user is always right.
87-if test "${PATH_SEPARATOR+set}" != set; then
88- echo "#! /bin/sh" >conf$$.sh
89- echo "exit 0" >>conf$$.sh
90- chmod +x conf$$.sh
91- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
92- PATH_SEPARATOR=';'
93- else
94- PATH_SEPARATOR=:
95- fi
96- rm -f conf$$.sh
97-fi
98-
99-
100- as_lineno_1=$LINENO
101- as_lineno_2=$LINENO
102- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
103- test "x$as_lineno_1" != "x$as_lineno_2" &&
104- test "x$as_lineno_3" = "x$as_lineno_2" || {
105- # Find who we are. Look in the path if we contain no path at all
106- # relative or not.
107- case $0 in
108- *[\\/]* ) as_myself=$0 ;;
109- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
110-for as_dir in $PATH
111-do
112- IFS=$as_save_IFS
113- test -z "$as_dir" && as_dir=.
114- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
115-done
116-
117- ;;
118- esac
119- # We did not find ourselves, most probably we were run as `sh COMMAND'
120- # in which case we are not to be found in the path.
121- if test "x$as_myself" = x; then
122- as_myself=$0
123- fi
124- if test ! -f "$as_myself"; then
125- { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
126- { (exit 1); exit 1; }; }
127- fi
128- case $CONFIG_SHELL in
129- '')
130- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
131-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
132-do
133- IFS=$as_save_IFS
134- test -z "$as_dir" && as_dir=.
135- for as_base in sh bash ksh sh5; do
136- case $as_dir in
137- /*)
138- if ("$as_dir/$as_base" -c '
139- as_lineno_1=$LINENO
140- as_lineno_2=$LINENO
141- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
142- test "x$as_lineno_1" != "x$as_lineno_2" &&
143- test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
144- $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
145- $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
146- CONFIG_SHELL=$as_dir/$as_base
147- export CONFIG_SHELL
148- exec "$CONFIG_SHELL" "$0" ${1+"$@"}
149- fi;;
150- esac
151- done
152-done
153-;;
154- esac
155-
156- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
157- # uniformly replaced by the line number. The first 'sed' inserts a
158- # line-number line before each line; the second 'sed' does the real
159- # work. The second script uses 'N' to pair each line-number line
160- # with the numbered line, and appends trailing '-' during
161- # substitution so that $LINENO is not a special case at line end.
162- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
163- # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
164- sed '=' <$as_myself |
165- sed '
166- N
167- s,$,-,
168- : loop
169- s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
170- t loop
171- s,-$,,
172- s,^['$as_cr_digits']*\n,,
173- ' >$as_me.lineno &&
174- chmod +x $as_me.lineno ||
175- { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
176- { (exit 1); exit 1; }; }
177-
178- # Don't try to exec as it changes $[0], causing all sort of problems
179- # (the dirname of $[0] is not the place where we might find the
180- # original and so on. Autoconf is especially sensible to this).
181- . ./$as_me.lineno
182- # Exit status is that of the last command.
183- exit
184-}
185-
186-
187-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
188- *c*,-n*) ECHO_N= ECHO_C='
189-' ECHO_T=' ' ;;
190- *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
191- *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
192-esac
193-
194-if expr a : '\(a\)' >/dev/null 2>&1; then
195- as_expr=expr
196-else
197- as_expr=false
198-fi
199-
200-rm -f conf$$ conf$$.exe conf$$.file
201-echo >conf$$.file
202-if ln -s conf$$.file conf$$ 2>/dev/null; then
203- # We could just check for DJGPP; but this test a) works b) is more generic
204- # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
205- if test -f conf$$.exe; then
206- # Don't use ln at all; we don't have any links
207- as_ln_s='cp -p'
208- else
209- as_ln_s='ln -s'
210- fi
211-elif ln conf$$.file conf$$ 2>/dev/null; then
212- as_ln_s=ln
213-else
214- as_ln_s='cp -p'
215-fi
216-rm -f conf$$ conf$$.exe conf$$.file
217-
218-if mkdir -p . 2>/dev/null; then
219- as_mkdir_p=:
220-else
221- test -d ./-p && rmdir ./-p
222- as_mkdir_p=false
223-fi
224-
225-as_executable_p="test -f"
226-
227-# Sed expression to map a string onto a valid CPP name.
228-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
229-
230-# Sed expression to map a string onto a valid variable name.
231-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
232-
233-
234-# IFS
235-# We need space, tab and new line, in precisely that order.
236-as_nl='
237-'
238-IFS=" $as_nl"
239-
240-# CDPATH.
241-$as_unset CDPATH
242-
243-
244-# Name of the host.
245-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
246-# so uname gets run too.
247-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
248-
249-exec 6>&1
250-
251-#
252-# Initializations.
253-#
254-ac_default_prefix=/usr/local
255-ac_config_libobj_dir=.
256-cross_compiling=no
257-subdirs=
258-MFLAGS=
259-MAKEFLAGS=
260-SHELL=${CONFIG_SHELL-/bin/sh}
261-
262-# Maximum number of lines to put in a shell here document.
263-# This variable seems obsolete. It should probably be removed, and
264-# only ac_max_sed_lines should be used.
265-: ${ac_max_here_lines=38}
266-
267-# Identity of this package.
268-PACKAGE_NAME='pm-logconv'
269-PACKAGE_TARNAME='pm-logconv'
270-PACKAGE_VERSION='1.00'
271-PACKAGE_STRING='pm-logconv 1.00'
272-PACKAGE_BUGREPORT=''
273-
274-ac_default_prefix=/usr
275-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT PYTHON PYTHON_VERSION PYTHON_PREFIX PYTHON_EXEC_PREFIX PYTHON_PLATFORM pythondir pkgpythondir pyexecdir pkgpyexecdir CONFIG_DIR HBMONI_DIR HA_NOARCHDATAHBDIR LN_S LIBOBJS LTLIBOBJS'
276-ac_subst_files=''
277-
278-# Initialize some variables set by options.
279-ac_init_help=
280-ac_init_version=false
281-# The variables have the same names as the options, with
282-# dashes changed to underlines.
283-cache_file=/dev/null
284-exec_prefix=NONE
285-no_create=
286-no_recursion=
287-prefix=NONE
288-program_prefix=NONE
289-program_suffix=NONE
290-program_transform_name=s,x,x,
291-silent=
292-site=
293-srcdir=
294-verbose=
295-x_includes=NONE
296-x_libraries=NONE
297-
298-# Installation directory options.
299-# These are left unexpanded so users can "make install exec_prefix=/foo"
300-# and all the variables that are supposed to be based on exec_prefix
301-# by default will actually change.
302-# Use braces instead of parens because sh, perl, etc. also accept them.
303-bindir='${exec_prefix}/bin'
304-sbindir='${exec_prefix}/sbin'
305-libexecdir='${exec_prefix}/libexec'
306-datadir='${prefix}/share'
307-sysconfdir='${prefix}/etc'
308-sharedstatedir='${prefix}/com'
309-localstatedir='${prefix}/var'
310-libdir='${exec_prefix}/lib'
311-includedir='${prefix}/include'
312-oldincludedir='/usr/include'
313-infodir='${prefix}/info'
314-mandir='${prefix}/man'
315-
316-ac_prev=
317-for ac_option
318-do
319- # If the previous option needs an argument, assign it.
320- if test -n "$ac_prev"; then
321- eval "$ac_prev=\$ac_option"
322- ac_prev=
323- continue
324- fi
325-
326- ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
327-
328- # Accept the important Cygnus configure options, so we can diagnose typos.
329-
330- case $ac_option in
331-
332- -bindir | --bindir | --bindi | --bind | --bin | --bi)
333- ac_prev=bindir ;;
334- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
335- bindir=$ac_optarg ;;
336-
337- -build | --build | --buil | --bui | --bu)
338- ac_prev=build_alias ;;
339- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
340- build_alias=$ac_optarg ;;
341-
342- -cache-file | --cache-file | --cache-fil | --cache-fi \
343- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
344- ac_prev=cache_file ;;
345- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
346- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
347- cache_file=$ac_optarg ;;
348-
349- --config-cache | -C)
350- cache_file=config.cache ;;
351-
352- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
353- ac_prev=datadir ;;
354- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
355- | --da=*)
356- datadir=$ac_optarg ;;
357-
358- -disable-* | --disable-*)
359- ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
360- # Reject names that are not valid shell variable names.
361- expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
362- { echo "$as_me: error: invalid feature name: $ac_feature" >&2
363- { (exit 1); exit 1; }; }
364- ac_feature=`echo $ac_feature | sed 's/-/_/g'`
365- eval "enable_$ac_feature=no" ;;
366-
367- -enable-* | --enable-*)
368- ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
369- # Reject names that are not valid shell variable names.
370- expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
371- { echo "$as_me: error: invalid feature name: $ac_feature" >&2
372- { (exit 1); exit 1; }; }
373- ac_feature=`echo $ac_feature | sed 's/-/_/g'`
374- case $ac_option in
375- *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
376- *) ac_optarg=yes ;;
377- esac
378- eval "enable_$ac_feature='$ac_optarg'" ;;
379-
380- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
381- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
382- | --exec | --exe | --ex)
383- ac_prev=exec_prefix ;;
384- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
385- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
386- | --exec=* | --exe=* | --ex=*)
387- exec_prefix=$ac_optarg ;;
388-
389- -gas | --gas | --ga | --g)
390- # Obsolete; use --with-gas.
391- with_gas=yes ;;
392-
393- -help | --help | --hel | --he | -h)
394- ac_init_help=long ;;
395- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
396- ac_init_help=recursive ;;
397- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
398- ac_init_help=short ;;
399-
400- -host | --host | --hos | --ho)
401- ac_prev=host_alias ;;
402- -host=* | --host=* | --hos=* | --ho=*)
403- host_alias=$ac_optarg ;;
404-
405- -includedir | --includedir | --includedi | --included | --include \
406- | --includ | --inclu | --incl | --inc)
407- ac_prev=includedir ;;
408- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
409- | --includ=* | --inclu=* | --incl=* | --inc=*)
410- includedir=$ac_optarg ;;
411-
412- -infodir | --infodir | --infodi | --infod | --info | --inf)
413- ac_prev=infodir ;;
414- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
415- infodir=$ac_optarg ;;
416-
417- -libdir | --libdir | --libdi | --libd)
418- ac_prev=libdir ;;
419- -libdir=* | --libdir=* | --libdi=* | --libd=*)
420- libdir=$ac_optarg ;;
421-
422- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
423- | --libexe | --libex | --libe)
424- ac_prev=libexecdir ;;
425- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
426- | --libexe=* | --libex=* | --libe=*)
427- libexecdir=$ac_optarg ;;
428-
429- -localstatedir | --localstatedir | --localstatedi | --localstated \
430- | --localstate | --localstat | --localsta | --localst \
431- | --locals | --local | --loca | --loc | --lo)
432- ac_prev=localstatedir ;;
433- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
434- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
435- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
436- localstatedir=$ac_optarg ;;
437-
438- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
439- ac_prev=mandir ;;
440- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
441- mandir=$ac_optarg ;;
442-
443- -nfp | --nfp | --nf)
444- # Obsolete; use --without-fp.
445- with_fp=no ;;
446-
447- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
448- | --no-cr | --no-c | -n)
449- no_create=yes ;;
450-
451- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
452- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
453- no_recursion=yes ;;
454-
455- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
456- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
457- | --oldin | --oldi | --old | --ol | --o)
458- ac_prev=oldincludedir ;;
459- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
460- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
461- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
462- oldincludedir=$ac_optarg ;;
463-
464- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
465- ac_prev=prefix ;;
466- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
467- prefix=$ac_optarg ;;
468-
469- -program-prefix | --program-prefix | --program-prefi | --program-pref \
470- | --program-pre | --program-pr | --program-p)
471- ac_prev=program_prefix ;;
472- -program-prefix=* | --program-prefix=* | --program-prefi=* \
473- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
474- program_prefix=$ac_optarg ;;
475-
476- -program-suffix | --program-suffix | --program-suffi | --program-suff \
477- | --program-suf | --program-su | --program-s)
478- ac_prev=program_suffix ;;
479- -program-suffix=* | --program-suffix=* | --program-suffi=* \
480- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
481- program_suffix=$ac_optarg ;;
482-
483- -program-transform-name | --program-transform-name \
484- | --program-transform-nam | --program-transform-na \
485- | --program-transform-n | --program-transform- \
486- | --program-transform | --program-transfor \
487- | --program-transfo | --program-transf \
488- | --program-trans | --program-tran \
489- | --progr-tra | --program-tr | --program-t)
490- ac_prev=program_transform_name ;;
491- -program-transform-name=* | --program-transform-name=* \
492- | --program-transform-nam=* | --program-transform-na=* \
493- | --program-transform-n=* | --program-transform-=* \
494- | --program-transform=* | --program-transfor=* \
495- | --program-transfo=* | --program-transf=* \
496- | --program-trans=* | --program-tran=* \
497- | --progr-tra=* | --program-tr=* | --program-t=*)
498- program_transform_name=$ac_optarg ;;
499-
500- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
501- | -silent | --silent | --silen | --sile | --sil)
502- silent=yes ;;
503-
504- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
505- ac_prev=sbindir ;;
506- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
507- | --sbi=* | --sb=*)
508- sbindir=$ac_optarg ;;
509-
510- -sharedstatedir | --sharedstatedir | --sharedstatedi \
511- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
512- | --sharedst | --shareds | --shared | --share | --shar \
513- | --sha | --sh)
514- ac_prev=sharedstatedir ;;
515- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
516- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
517- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
518- | --sha=* | --sh=*)
519- sharedstatedir=$ac_optarg ;;
520-
521- -site | --site | --sit)
522- ac_prev=site ;;
523- -site=* | --site=* | --sit=*)
524- site=$ac_optarg ;;
525-
526- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
527- ac_prev=srcdir ;;
528- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
529- srcdir=$ac_optarg ;;
530-
531- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
532- | --syscon | --sysco | --sysc | --sys | --sy)
533- ac_prev=sysconfdir ;;
534- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
535- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
536- sysconfdir=$ac_optarg ;;
537-
538- -target | --target | --targe | --targ | --tar | --ta | --t)
539- ac_prev=target_alias ;;
540- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
541- target_alias=$ac_optarg ;;
542-
543- -v | -verbose | --verbose | --verbos | --verbo | --verb)
544- verbose=yes ;;
545-
546- -version | --version | --versio | --versi | --vers | -V)
547- ac_init_version=: ;;
548-
549- -with-* | --with-*)
550- ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
551- # Reject names that are not valid shell variable names.
552- expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
553- { echo "$as_me: error: invalid package name: $ac_package" >&2
554- { (exit 1); exit 1; }; }
555- ac_package=`echo $ac_package| sed 's/-/_/g'`
556- case $ac_option in
557- *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
558- *) ac_optarg=yes ;;
559- esac
560- eval "with_$ac_package='$ac_optarg'" ;;
561-
562- -without-* | --without-*)
563- ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
564- # Reject names that are not valid shell variable names.
565- expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
566- { echo "$as_me: error: invalid package name: $ac_package" >&2
567- { (exit 1); exit 1; }; }
568- ac_package=`echo $ac_package | sed 's/-/_/g'`
569- eval "with_$ac_package=no" ;;
570-
571- --x)
572- # Obsolete; use --with-x.
573- with_x=yes ;;
574-
575- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
576- | --x-incl | --x-inc | --x-in | --x-i)
577- ac_prev=x_includes ;;
578- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
579- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
580- x_includes=$ac_optarg ;;
581-
582- -x-libraries | --x-libraries | --x-librarie | --x-librari \
583- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
584- ac_prev=x_libraries ;;
585- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
586- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
587- x_libraries=$ac_optarg ;;
588-
589- -*) { echo "$as_me: error: unrecognized option: $ac_option
590-Try \`$0 --help' for more information." >&2
591- { (exit 1); exit 1; }; }
592- ;;
593-
594- *=*)
595- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
596- # Reject names that are not valid shell variable names.
597- expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
598- { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
599- { (exit 1); exit 1; }; }
600- ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
601- eval "$ac_envvar='$ac_optarg'"
602- export $ac_envvar ;;
603-
604- *)
605- # FIXME: should be removed in autoconf 3.0.
606- echo "$as_me: WARNING: you should use --build, --host, --target" >&2
607- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
608- echo "$as_me: WARNING: invalid host type: $ac_option" >&2
609- : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
610- ;;
611-
612- esac
613-done
614-
615-if test -n "$ac_prev"; then
616- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
617- { echo "$as_me: error: missing argument to $ac_option" >&2
618- { (exit 1); exit 1; }; }
619-fi
620-
621-# Be sure to have absolute paths.
622-for ac_var in exec_prefix prefix
623-do
624- eval ac_val=$`echo $ac_var`
625- case $ac_val in
626- [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
627- *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
628- { (exit 1); exit 1; }; };;
629- esac
630-done
631-
632-# Be sure to have absolute paths.
633-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
634- localstatedir libdir includedir oldincludedir infodir mandir
635-do
636- eval ac_val=$`echo $ac_var`
637- case $ac_val in
638- [\\/$]* | ?:[\\/]* ) ;;
639- *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
640- { (exit 1); exit 1; }; };;
641- esac
642-done
643-
644-# There might be people who depend on the old broken behavior: `$host'
645-# used to hold the argument of --host etc.
646-# FIXME: To remove some day.
647-build=$build_alias
648-host=$host_alias
649-target=$target_alias
650-
651-# FIXME: To remove some day.
652-if test "x$host_alias" != x; then
653- if test "x$build_alias" = x; then
654- cross_compiling=maybe
655- echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
656- If a cross compiler is detected then cross compile mode will be used." >&2
657- elif test "x$build_alias" != "x$host_alias"; then
658- cross_compiling=yes
659- fi
660-fi
661-
662-ac_tool_prefix=
663-test -n "$host_alias" && ac_tool_prefix=$host_alias-
664-
665-test "$silent" = yes && exec 6>/dev/null
666-
667-
668-# Find the source files, if location was not specified.
669-if test -z "$srcdir"; then
670- ac_srcdir_defaulted=yes
671- # Try the directory containing this script, then its parent.
672- ac_confdir=`(dirname "$0") 2>/dev/null ||
673-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
674- X"$0" : 'X\(//\)[^/]' \| \
675- X"$0" : 'X\(//\)$' \| \
676- X"$0" : 'X\(/\)' \| \
677- . : '\(.\)' 2>/dev/null ||
678-echo X"$0" |
679- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
680- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
681- /^X\(\/\/\)$/{ s//\1/; q; }
682- /^X\(\/\).*/{ s//\1/; q; }
683- s/.*/./; q'`
684- srcdir=$ac_confdir
685- if test ! -r $srcdir/$ac_unique_file; then
686- srcdir=..
687- fi
688-else
689- ac_srcdir_defaulted=no
690-fi
691-if test ! -r $srcdir/$ac_unique_file; then
692- if test "$ac_srcdir_defaulted" = yes; then
693- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
694- { (exit 1); exit 1; }; }
695- else
696- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
697- { (exit 1); exit 1; }; }
698- fi
699-fi
700-(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
701- { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
702- { (exit 1); exit 1; }; }
703-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
704-ac_env_build_alias_set=${build_alias+set}
705-ac_env_build_alias_value=$build_alias
706-ac_cv_env_build_alias_set=${build_alias+set}
707-ac_cv_env_build_alias_value=$build_alias
708-ac_env_host_alias_set=${host_alias+set}
709-ac_env_host_alias_value=$host_alias
710-ac_cv_env_host_alias_set=${host_alias+set}
711-ac_cv_env_host_alias_value=$host_alias
712-ac_env_target_alias_set=${target_alias+set}
713-ac_env_target_alias_value=$target_alias
714-ac_cv_env_target_alias_set=${target_alias+set}
715-ac_cv_env_target_alias_value=$target_alias
716-
717-#
718-# Report the --help message.
719-#
720-if test "$ac_init_help" = "long"; then
721- # Omit some internal or obsolete options to make the list less imposing.
722- # This message is too long to be a string in the A/UX 3.1 sh.
723- cat <<_ACEOF
724-\`configure' configures pm-logconv 1.00 to adapt to many kinds of systems.
725-
726-Usage: $0 [OPTION]... [VAR=VALUE]...
727-
728-To assign environment variables (e.g., CC, CFLAGS...), specify them as
729-VAR=VALUE. See below for descriptions of some of the useful variables.
730-
731-Defaults for the options are specified in brackets.
732-
733-Configuration:
734- -h, --help display this help and exit
735- --help=short display options specific to this package
736- --help=recursive display the short help of all the included packages
737- -V, --version display version information and exit
738- -q, --quiet, --silent do not print \`checking...' messages
739- --cache-file=FILE cache test results in FILE [disabled]
740- -C, --config-cache alias for \`--cache-file=config.cache'
741- -n, --no-create do not create output files
742- --srcdir=DIR find the sources in DIR [configure dir or \`..']
743-
744-_ACEOF
745-
746- cat <<_ACEOF
747-Installation directories:
748- --prefix=PREFIX install architecture-independent files in PREFIX
749- [$ac_default_prefix]
750- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
751- [PREFIX]
752-
753-By default, \`make install' will install all the files in
754-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
755-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
756-for instance \`--prefix=\$HOME'.
757-
758-For better control, use the options below.
759-
760-Fine tuning of the installation directories:
761- --bindir=DIR user executables [EPREFIX/bin]
762- --sbindir=DIR system admin executables [EPREFIX/sbin]
763- --libexecdir=DIR program executables [EPREFIX/libexec]
764- --datadir=DIR read-only architecture-independent data [PREFIX/share]
765- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
766- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
767- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
768- --libdir=DIR object code libraries [EPREFIX/lib]
769- --includedir=DIR C header files [PREFIX/include]
770- --oldincludedir=DIR C header files for non-gcc [/usr/include]
771- --infodir=DIR info documentation [PREFIX/info]
772- --mandir=DIR man documentation [PREFIX/man]
773-_ACEOF
774-
775- cat <<\_ACEOF
776-
777-Program names:
778- --program-prefix=PREFIX prepend PREFIX to installed program names
779- --program-suffix=SUFFIX append SUFFIX to installed program names
780- --program-transform-name=PROGRAM run sed PROGRAM on installed program names
781-_ACEOF
782-fi
783-
784-if test -n "$ac_init_help"; then
785- case $ac_init_help in
786- short | recursive ) echo "Configuration of pm-logconv 1.00:";;
787- esac
788- cat <<\_ACEOF
789-
790-Optional Features:
791- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
792- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
793- --enable-maintainer-mode enable make rules and dependencies not useful
794- (and sometimes confusing) to the casual installer
795-
796-_ACEOF
797-fi
798-
799-if test "$ac_init_help" = "recursive"; then
800- # If there are subdirs, report their specific --help.
801- ac_popdir=`pwd`
802- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
803- test -d $ac_dir || continue
804- ac_builddir=.
805-
806-if test "$ac_dir" != .; then
807- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
808- # A "../" for each directory in $ac_dir_suffix.
809- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
810-else
811- ac_dir_suffix= ac_top_builddir=
812-fi
813-
814-case $srcdir in
815- .) # No --srcdir option. We are building in place.
816- ac_srcdir=.
817- if test -z "$ac_top_builddir"; then
818- ac_top_srcdir=.
819- else
820- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
821- fi ;;
822- [\\/]* | ?:[\\/]* ) # Absolute path.
823- ac_srcdir=$srcdir$ac_dir_suffix;
824- ac_top_srcdir=$srcdir ;;
825- *) # Relative path.
826- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
827- ac_top_srcdir=$ac_top_builddir$srcdir ;;
828-esac
829-
830-# Do not use `cd foo && pwd` to compute absolute paths, because
831-# the directories may not exist.
832-case `pwd` in
833-.) ac_abs_builddir="$ac_dir";;
834-*)
835- case "$ac_dir" in
836- .) ac_abs_builddir=`pwd`;;
837- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
838- *) ac_abs_builddir=`pwd`/"$ac_dir";;
839- esac;;
840-esac
841-case $ac_abs_builddir in
842-.) ac_abs_top_builddir=${ac_top_builddir}.;;
843-*)
844- case ${ac_top_builddir}. in
845- .) ac_abs_top_builddir=$ac_abs_builddir;;
846- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
847- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
848- esac;;
849-esac
850-case $ac_abs_builddir in
851-.) ac_abs_srcdir=$ac_srcdir;;
852-*)
853- case $ac_srcdir in
854- .) ac_abs_srcdir=$ac_abs_builddir;;
855- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
856- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
857- esac;;
858-esac
859-case $ac_abs_builddir in
860-.) ac_abs_top_srcdir=$ac_top_srcdir;;
861-*)
862- case $ac_top_srcdir in
863- .) ac_abs_top_srcdir=$ac_abs_builddir;;
864- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
865- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
866- esac;;
867-esac
868-
869- cd $ac_dir
870- # Check for guested configure; otherwise get Cygnus style configure.
871- if test -f $ac_srcdir/configure.gnu; then
872- echo
873- $SHELL $ac_srcdir/configure.gnu --help=recursive
874- elif test -f $ac_srcdir/configure; then
875- echo
876- $SHELL $ac_srcdir/configure --help=recursive
877- elif test -f $ac_srcdir/configure.ac ||
878- test -f $ac_srcdir/configure.in; then
879- echo
880- $ac_configure --help
881- else
882- echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
883- fi
884- cd $ac_popdir
885- done
886-fi
887-
888-test -n "$ac_init_help" && exit 0
889-if $ac_init_version; then
890- cat <<\_ACEOF
891-pm-logconv configure 1.00
892-generated by GNU Autoconf 2.59
893-
894-Copyright (C) 2003 Free Software Foundation, Inc.
895-This configure script is free software; the Free Software Foundation
896-gives unlimited permission to copy, distribute and modify it.
897-_ACEOF
898- exit 0
899-fi
900-exec 5>config.log
901-cat >&5 <<_ACEOF
902-This file contains any messages produced by compilers while
903-running configure, to aid debugging if configure makes a mistake.
904-
905-It was created by pm-logconv $as_me 1.00, which was
906-generated by GNU Autoconf 2.59. Invocation command line was
907-
908- $ $0 $@
909-
910-_ACEOF
911-{
912-cat <<_ASUNAME
913-## --------- ##
914-## Platform. ##
915-## --------- ##
916-
917-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
918-uname -m = `(uname -m) 2>/dev/null || echo unknown`
919-uname -r = `(uname -r) 2>/dev/null || echo unknown`
920-uname -s = `(uname -s) 2>/dev/null || echo unknown`
921-uname -v = `(uname -v) 2>/dev/null || echo unknown`
922-
923-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
924-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
925-
926-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
927-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
928-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
929-hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
930-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
931-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
932-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
933-
934-_ASUNAME
935-
936-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
937-for as_dir in $PATH
938-do
939- IFS=$as_save_IFS
940- test -z "$as_dir" && as_dir=.
941- echo "PATH: $as_dir"
942-done
943-
944-} >&5
945-
946-cat >&5 <<_ACEOF
947-
948-
949-## ----------- ##
950-## Core tests. ##
951-## ----------- ##
952-
953-_ACEOF
954-
955-
956-# Keep a trace of the command line.
957-# Strip out --no-create and --no-recursion so they do not pile up.
958-# Strip out --silent because we don't want to record it for future runs.
959-# Also quote any args containing shell meta-characters.
960-# Make two passes to allow for proper duplicate-argument suppression.
961-ac_configure_args=
962-ac_configure_args0=
963-ac_configure_args1=
964-ac_sep=
965-ac_must_keep_next=false
966-for ac_pass in 1 2
967-do
968- for ac_arg
969- do
970- case $ac_arg in
971- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
972- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
973- | -silent | --silent | --silen | --sile | --sil)
974- continue ;;
975- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
976- ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
977- esac
978- case $ac_pass in
979- 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
980- 2)
981- ac_configure_args1="$ac_configure_args1 '$ac_arg'"
982- if test $ac_must_keep_next = true; then
983- ac_must_keep_next=false # Got value, back to normal.
984- else
985- case $ac_arg in
986- *=* | --config-cache | -C | -disable-* | --disable-* \
987- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
988- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
989- | -with-* | --with-* | -without-* | --without-* | --x)
990- case "$ac_configure_args0 " in
991- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
992- esac
993- ;;
994- -* ) ac_must_keep_next=true ;;
995- esac
996- fi
997- ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
998- # Get rid of the leading space.
999- ac_sep=" "
1000- ;;
1001- esac
1002- done
1003-done
1004-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
1005-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
1006-
1007-# When interrupted or exit'd, cleanup temporary files, and complete
1008-# config.log. We remove comments because anyway the quotes in there
1009-# would cause problems or look ugly.
1010-# WARNING: Be sure not to use single quotes in there, as some shells,
1011-# such as our DU 5.0 friend, will then `close' the trap.
1012-trap 'exit_status=$?
1013- # Save into config.log some information that might help in debugging.
1014- {
1015- echo
1016-
1017- cat <<\_ASBOX
1018-## ---------------- ##
1019-## Cache variables. ##
1020-## ---------------- ##
1021-_ASBOX
1022- echo
1023- # The following way of writing the cache mishandles newlines in values,
1024-{
1025- (set) 2>&1 |
1026- case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
1027- *ac_space=\ *)
1028- sed -n \
1029- "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
1030- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
1031- ;;
1032- *)
1033- sed -n \
1034- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
1035- ;;
1036- esac;
1037-}
1038- echo
1039-
1040- cat <<\_ASBOX
1041-## ----------------- ##
1042-## Output variables. ##
1043-## ----------------- ##
1044-_ASBOX
1045- echo
1046- for ac_var in $ac_subst_vars
1047- do
1048- eval ac_val=$`echo $ac_var`
1049- echo "$ac_var='"'"'$ac_val'"'"'"
1050- done | sort
1051- echo
1052-
1053- if test -n "$ac_subst_files"; then
1054- cat <<\_ASBOX
1055-## ------------- ##
1056-## Output files. ##
1057-## ------------- ##
1058-_ASBOX
1059- echo
1060- for ac_var in $ac_subst_files
1061- do
1062- eval ac_val=$`echo $ac_var`
1063- echo "$ac_var='"'"'$ac_val'"'"'"
1064- done | sort
1065- echo
1066- fi
1067-
1068- if test -s confdefs.h; then
1069- cat <<\_ASBOX
1070-## ----------- ##
1071-## confdefs.h. ##
1072-## ----------- ##
1073-_ASBOX
1074- echo
1075- sed "/^$/d" confdefs.h | sort
1076- echo
1077- fi
1078- test "$ac_signal" != 0 &&
1079- echo "$as_me: caught signal $ac_signal"
1080- echo "$as_me: exit $exit_status"
1081- } >&5
1082- rm -f core *.core &&
1083- rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
1084- exit $exit_status
1085- ' 0
1086-for ac_signal in 1 2 13 15; do
1087- trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
1088-done
1089-ac_signal=0
1090-
1091-# confdefs.h avoids OS command line length limits that DEFS can exceed.
1092-rm -rf conftest* confdefs.h
1093-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
1094-echo >confdefs.h
1095-
1096-# Predefined preprocessor variables.
1097-
1098-cat >>confdefs.h <<_ACEOF
1099-#define PACKAGE_NAME "$PACKAGE_NAME"
1100-_ACEOF
1101-
1102-
1103-cat >>confdefs.h <<_ACEOF
1104-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
1105-_ACEOF
1106-
1107-
1108-cat >>confdefs.h <<_ACEOF
1109-#define PACKAGE_VERSION "$PACKAGE_VERSION"
1110-_ACEOF
1111-
1112-
1113-cat >>confdefs.h <<_ACEOF
1114-#define PACKAGE_STRING "$PACKAGE_STRING"
1115-_ACEOF
1116-
1117-
1118-cat >>confdefs.h <<_ACEOF
1119-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
1120-_ACEOF
1121-
1122-
1123-# Let the site file select an alternate cache file if it wants to.
1124-# Prefer explicitly selected file to automatically selected ones.
1125-if test -z "$CONFIG_SITE"; then
1126- if test "x$prefix" != xNONE; then
1127- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
1128- else
1129- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
1130- fi
1131-fi
1132-for ac_site_file in $CONFIG_SITE; do
1133- if test -r "$ac_site_file"; then
1134- { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
1135-echo "$as_me: loading site script $ac_site_file" >&6;}
1136- sed 's/^/| /' "$ac_site_file" >&5
1137- . "$ac_site_file"
1138- fi
1139-done
1140-
1141-if test -r "$cache_file"; then
1142- # Some versions of bash will fail to source /dev/null (special
1143- # files actually), so we avoid doing that.
1144- if test -f "$cache_file"; then
1145- { echo "$as_me:$LINENO: loading cache $cache_file" >&5
1146-echo "$as_me: loading cache $cache_file" >&6;}
1147- case $cache_file in
1148- [\\/]* | ?:[\\/]* ) . $cache_file;;
1149- *) . ./$cache_file;;
1150- esac
1151- fi
1152-else
1153- { echo "$as_me:$LINENO: creating cache $cache_file" >&5
1154-echo "$as_me: creating cache $cache_file" >&6;}
1155- >$cache_file
1156-fi
1157-
1158-# Check that the precious variables saved in the cache have kept the same
1159-# value.
1160-ac_cache_corrupted=false
1161-for ac_var in `(set) 2>&1 |
1162- sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
1163- eval ac_old_set=\$ac_cv_env_${ac_var}_set
1164- eval ac_new_set=\$ac_env_${ac_var}_set
1165- eval ac_old_val="\$ac_cv_env_${ac_var}_value"
1166- eval ac_new_val="\$ac_env_${ac_var}_value"
1167- case $ac_old_set,$ac_new_set in
1168- set,)
1169- { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
1170-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
1171- ac_cache_corrupted=: ;;
1172- ,set)
1173- { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
1174-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
1175- ac_cache_corrupted=: ;;
1176- ,);;
1177- *)
1178- if test "x$ac_old_val" != "x$ac_new_val"; then
1179- { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
1180-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
1181- { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
1182-echo "$as_me: former value: $ac_old_val" >&2;}
1183- { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
1184-echo "$as_me: current value: $ac_new_val" >&2;}
1185- ac_cache_corrupted=:
1186- fi;;
1187- esac
1188- # Pass precious variables to config.status.
1189- if test "$ac_new_set" = set; then
1190- case $ac_new_val in
1191- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
1192- ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
1193- *) ac_arg=$ac_var=$ac_new_val ;;
1194- esac
1195- case " $ac_configure_args " in
1196- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
1197- *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
1198- esac
1199- fi
1200-done
1201-if $ac_cache_corrupted; then
1202- { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
1203-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
1204- { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
1205-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
1206- { (exit 1); exit 1; }; }
1207-fi
1208-
1209-ac_ext=c
1210-ac_cpp='$CPP $CPPFLAGS'
1211-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
1212-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
1213-ac_compiler_gnu=$ac_cv_c_compiler_gnu
1214-
1215-
1216-
1217-
1218-
1219-
1220-
1221-
1222-
1223-
1224-
1225-
1226-
1227-
1228-
1229-
1230-
1231-
1232-
1233-
1234-
1235-
1236-
1237-
1238-
1239-
1240-
1241-am__api_version="1.9"
1242-ac_aux_dir=
1243-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
1244- if test -f $ac_dir/install-sh; then
1245- ac_aux_dir=$ac_dir
1246- ac_install_sh="$ac_aux_dir/install-sh -c"
1247- break
1248- elif test -f $ac_dir/install.sh; then
1249- ac_aux_dir=$ac_dir
1250- ac_install_sh="$ac_aux_dir/install.sh -c"
1251- break
1252- elif test -f $ac_dir/shtool; then
1253- ac_aux_dir=$ac_dir
1254- ac_install_sh="$ac_aux_dir/shtool install -c"
1255- break
1256- fi
1257-done
1258-if test -z "$ac_aux_dir"; then
1259- { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
1260-echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
1261- { (exit 1); exit 1; }; }
1262-fi
1263-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
1264-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
1265-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
1266-
1267-# Find a good install program. We prefer a C program (faster),
1268-# so one script is as good as another. But avoid the broken or
1269-# incompatible versions:
1270-# SysV /etc/install, /usr/sbin/install
1271-# SunOS /usr/etc/install
1272-# IRIX /sbin/install
1273-# AIX /bin/install
1274-# AmigaOS /C/install, which installs bootblocks on floppy discs
1275-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
1276-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
1277-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
1278-# OS/2's system install, which has a completely different semantic
1279-# ./install, which can be erroneously created by make from ./install.sh.
1280-echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
1281-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
1282-if test -z "$INSTALL"; then
1283-if test "${ac_cv_path_install+set}" = set; then
1284- echo $ECHO_N "(cached) $ECHO_C" >&6
1285-else
1286- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1287-for as_dir in $PATH
1288-do
1289- IFS=$as_save_IFS
1290- test -z "$as_dir" && as_dir=.
1291- # Account for people who put trailing slashes in PATH elements.
1292-case $as_dir/ in
1293- ./ | .// | /cC/* | \
1294- /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
1295- ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
1296- /usr/ucb/* ) ;;
1297- *)
1298- # OSF1 and SCO ODT 3.0 have their own names for install.
1299- # Don't use installbsd from OSF since it installs stuff as root
1300- # by default.
1301- for ac_prog in ginstall scoinst install; do
1302- for ac_exec_ext in '' $ac_executable_extensions; do
1303- if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
1304- if test $ac_prog = install &&
1305- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
1306- # AIX install. It has an incompatible calling convention.
1307- :
1308- elif test $ac_prog = install &&
1309- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
1310- # program-specific install script used by HP pwplus--don't use.
1311- :
1312- else
1313- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
1314- break 3
1315- fi
1316- fi
1317- done
1318- done
1319- ;;
1320-esac
1321-done
1322-
1323-
1324-fi
1325- if test "${ac_cv_path_install+set}" = set; then
1326- INSTALL=$ac_cv_path_install
1327- else
1328- # As a last resort, use the slow shell script. We don't cache a
1329- # path for INSTALL within a source directory, because that will
1330- # break other packages using the cache if that directory is
1331- # removed, or if the path is relative.
1332- INSTALL=$ac_install_sh
1333- fi
1334-fi
1335-echo "$as_me:$LINENO: result: $INSTALL" >&5
1336-echo "${ECHO_T}$INSTALL" >&6
1337-
1338-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
1339-# It thinks the first close brace ends the variable substitution.
1340-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
1341-
1342-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
1343-
1344-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
1345-
1346-echo "$as_me:$LINENO: checking whether build environment is sane" >&5
1347-echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
1348-# Just in case
1349-sleep 1
1350-echo timestamp > conftest.file
1351-# Do `set' in a subshell so we don't clobber the current shell's
1352-# arguments. Must try -L first in case configure is actually a
1353-# symlink; some systems play weird games with the mod time of symlinks
1354-# (eg FreeBSD returns the mod time of the symlink's containing
1355-# directory).
1356-if (
1357- set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
1358- if test "$*" = "X"; then
1359- # -L didn't work.
1360- set X `ls -t $srcdir/configure conftest.file`
1361- fi
1362- rm -f conftest.file
1363- if test "$*" != "X $srcdir/configure conftest.file" \
1364- && test "$*" != "X conftest.file $srcdir/configure"; then
1365-
1366- # If neither matched, then we have a broken ls. This can happen
1367- # if, for instance, CONFIG_SHELL is bash and it inherits a
1368- # broken ls alias from the environment. This has actually
1369- # happened. Such a system could not be considered "sane".
1370- { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken
1371-alias in your environment" >&5
1372-echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken
1373-alias in your environment" >&2;}
1374- { (exit 1); exit 1; }; }
1375- fi
1376-
1377- test "$2" = conftest.file
1378- )
1379-then
1380- # Ok.
1381- :
1382-else
1383- { { echo "$as_me:$LINENO: error: newly created file is older than distributed files!
1384-Check your system clock" >&5
1385-echo "$as_me: error: newly created file is older than distributed files!
1386-Check your system clock" >&2;}
1387- { (exit 1); exit 1; }; }
1388-fi
1389-echo "$as_me:$LINENO: result: yes" >&5
1390-echo "${ECHO_T}yes" >&6
1391-test "$program_prefix" != NONE &&
1392- program_transform_name="s,^,$program_prefix,;$program_transform_name"
1393-# Use a double $ so make ignores it.
1394-test "$program_suffix" != NONE &&
1395- program_transform_name="s,\$,$program_suffix,;$program_transform_name"
1396-# Double any \ or $. echo might interpret backslashes.
1397-# By default was `s,x,x', remove it if useless.
1398-cat <<\_ACEOF >conftest.sed
1399-s/[\\$]/&&/g;s/;s,x,x,$//
1400-_ACEOF
1401-program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
1402-rm conftest.sed
1403-
1404-# expand $ac_aux_dir to an absolute path
1405-am_aux_dir=`cd $ac_aux_dir && pwd`
1406-
1407-test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
1408-# Use eval to expand $SHELL
1409-if eval "$MISSING --run true"; then
1410- am_missing_run="$MISSING --run "
1411-else
1412- am_missing_run=
1413- { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
1414-echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
1415-fi
1416-
1417-if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
1418- # We used to keeping the `.' as first argument, in order to
1419- # allow $(mkdir_p) to be used without argument. As in
1420- # $(mkdir_p) $(somedir)
1421- # where $(somedir) is conditionally defined. However this is wrong
1422- # for two reasons:
1423- # 1. if the package is installed by a user who cannot write `.'
1424- # make install will fail,
1425- # 2. the above comment should most certainly read
1426- # $(mkdir_p) $(DESTDIR)$(somedir)
1427- # so it does not work when $(somedir) is undefined and
1428- # $(DESTDIR) is not.
1429- # To support the latter case, we have to write
1430- # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
1431- # so the `.' trick is pointless.
1432- mkdir_p='mkdir -p --'
1433-else
1434- # On NextStep and OpenStep, the `mkdir' command does not
1435- # recognize any option. It will interpret all options as
1436- # directories to create, and then abort because `.' already
1437- # exists.
1438- for d in ./-p ./--version;
1439- do
1440- test -d $d && rmdir $d
1441- done
1442- # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
1443- if test -f "$ac_aux_dir/mkinstalldirs"; then
1444- mkdir_p='$(mkinstalldirs)'
1445- else
1446- mkdir_p='$(install_sh) -d'
1447- fi
1448-fi
1449-
1450-for ac_prog in gawk mawk nawk awk
1451-do
1452- # Extract the first word of "$ac_prog", so it can be a program name with args.
1453-set dummy $ac_prog; ac_word=$2
1454-echo "$as_me:$LINENO: checking for $ac_word" >&5
1455-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
1456-if test "${ac_cv_prog_AWK+set}" = set; then
1457- echo $ECHO_N "(cached) $ECHO_C" >&6
1458-else
1459- if test -n "$AWK"; then
1460- ac_cv_prog_AWK="$AWK" # Let the user override the test.
1461-else
1462-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1463-for as_dir in $PATH
1464-do
1465- IFS=$as_save_IFS
1466- test -z "$as_dir" && as_dir=.
1467- for ac_exec_ext in '' $ac_executable_extensions; do
1468- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
1469- ac_cv_prog_AWK="$ac_prog"
1470- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
1471- break 2
1472- fi
1473-done
1474-done
1475-
1476-fi
1477-fi
1478-AWK=$ac_cv_prog_AWK
1479-if test -n "$AWK"; then
1480- echo "$as_me:$LINENO: result: $AWK" >&5
1481-echo "${ECHO_T}$AWK" >&6
1482-else
1483- echo "$as_me:$LINENO: result: no" >&5
1484-echo "${ECHO_T}no" >&6
1485-fi
1486-
1487- test -n "$AWK" && break
1488-done
1489-
1490-echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
1491-echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
1492-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'`
1493-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
1494- echo $ECHO_N "(cached) $ECHO_C" >&6
1495-else
1496- cat >conftest.make <<\_ACEOF
1497-all:
1498- @echo 'ac_maketemp="$(MAKE)"'
1499-_ACEOF
1500-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
1501-eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
1502-if test -n "$ac_maketemp"; then
1503- eval ac_cv_prog_make_${ac_make}_set=yes
1504-else
1505- eval ac_cv_prog_make_${ac_make}_set=no
1506-fi
1507-rm -f conftest.make
1508-fi
1509-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
1510- echo "$as_me:$LINENO: result: yes" >&5
1511-echo "${ECHO_T}yes" >&6
1512- SET_MAKE=
1513-else
1514- echo "$as_me:$LINENO: result: no" >&5
1515-echo "${ECHO_T}no" >&6
1516- SET_MAKE="MAKE=${MAKE-make}"
1517-fi
1518-
1519-rm -rf .tst 2>/dev/null
1520-mkdir .tst 2>/dev/null
1521-if test -d .tst; then
1522- am__leading_dot=.
1523-else
1524- am__leading_dot=_
1525-fi
1526-rmdir .tst 2>/dev/null
1527-
1528-# test to see if srcdir already configured
1529-if test "`cd $srcdir && pwd`" != "`pwd`" &&
1530- test -f $srcdir/config.status; then
1531- { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
1532-echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
1533- { (exit 1); exit 1; }; }
1534-fi
1535-
1536-# test whether we have cygpath
1537-if test -z "$CYGPATH_W"; then
1538- if (cygpath --version) >/dev/null 2>/dev/null; then
1539- CYGPATH_W='cygpath -w'
1540- else
1541- CYGPATH_W=echo
1542- fi
1543-fi
1544-
1545-
1546-# Define the identity of the package.
1547- PACKAGE=pm-logconv
1548- VERSION=1.00
1549-
1550-
1551-cat >>confdefs.h <<_ACEOF
1552-#define PACKAGE "$PACKAGE"
1553-_ACEOF
1554-
1555-
1556-cat >>confdefs.h <<_ACEOF
1557-#define VERSION "$VERSION"
1558-_ACEOF
1559-
1560-# Some tools Automake needs.
1561-
1562-ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
1563-
1564-
1565-AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
1566-
1567-
1568-AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
1569-
1570-
1571-AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
1572-
1573-
1574-MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
1575-
1576-install_sh=${install_sh-"$am_aux_dir/install-sh"}
1577-
1578-# Installed binaries are usually stripped using `strip' when the user
1579-# run `make install-strip'. However `strip' might not be the right
1580-# tool to use in cross-compilation environments, therefore Automake
1581-# will honor the `STRIP' environment variable to overrule this program.
1582-if test "$cross_compiling" != no; then
1583- if test -n "$ac_tool_prefix"; then
1584- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
1585-set dummy ${ac_tool_prefix}strip; ac_word=$2
1586-echo "$as_me:$LINENO: checking for $ac_word" >&5
1587-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
1588-if test "${ac_cv_prog_STRIP+set}" = set; then
1589- echo $ECHO_N "(cached) $ECHO_C" >&6
1590-else
1591- if test -n "$STRIP"; then
1592- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
1593-else
1594-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1595-for as_dir in $PATH
1596-do
1597- IFS=$as_save_IFS
1598- test -z "$as_dir" && as_dir=.
1599- for ac_exec_ext in '' $ac_executable_extensions; do
1600- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
1601- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
1602- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
1603- break 2
1604- fi
1605-done
1606-done
1607-
1608-fi
1609-fi
1610-STRIP=$ac_cv_prog_STRIP
1611-if test -n "$STRIP"; then
1612- echo "$as_me:$LINENO: result: $STRIP" >&5
1613-echo "${ECHO_T}$STRIP" >&6
1614-else
1615- echo "$as_me:$LINENO: result: no" >&5
1616-echo "${ECHO_T}no" >&6
1617-fi
1618-
1619-fi
1620-if test -z "$ac_cv_prog_STRIP"; then
1621- ac_ct_STRIP=$STRIP
1622- # Extract the first word of "strip", so it can be a program name with args.
1623-set dummy strip; ac_word=$2
1624-echo "$as_me:$LINENO: checking for $ac_word" >&5
1625-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
1626-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
1627- echo $ECHO_N "(cached) $ECHO_C" >&6
1628-else
1629- if test -n "$ac_ct_STRIP"; then
1630- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
1631-else
1632-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1633-for as_dir in $PATH
1634-do
1635- IFS=$as_save_IFS
1636- test -z "$as_dir" && as_dir=.
1637- for ac_exec_ext in '' $ac_executable_extensions; do
1638- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
1639- ac_cv_prog_ac_ct_STRIP="strip"
1640- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
1641- break 2
1642- fi
1643-done
1644-done
1645-
1646- test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
1647-fi
1648-fi
1649-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
1650-if test -n "$ac_ct_STRIP"; then
1651- echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
1652-echo "${ECHO_T}$ac_ct_STRIP" >&6
1653-else
1654- echo "$as_me:$LINENO: result: no" >&5
1655-echo "${ECHO_T}no" >&6
1656-fi
1657-
1658- STRIP=$ac_ct_STRIP
1659-else
1660- STRIP="$ac_cv_prog_STRIP"
1661-fi
1662-
1663-fi
1664-INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
1665-
1666-# We need awk for the "check" target. The system "awk" is bad on
1667-# some platforms.
1668-# Always define AMTAR for backward compatibility.
1669-
1670-AMTAR=${AMTAR-"${am_missing_run}tar"}
1671-
1672-am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
1673-
1674-
1675-
1676-
1677-
1678-
1679-HB_PKG="pacemaker"
1680-echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
1681-echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
1682- # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
1683-if test "${enable_maintainer_mode+set}" = set; then
1684- enableval="$enable_maintainer_mode"
1685- USE_MAINTAINER_MODE=$enableval
1686-else
1687- USE_MAINTAINER_MODE=no
1688-fi;
1689- echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
1690-echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6
1691-
1692-
1693-if test $USE_MAINTAINER_MODE = yes; then
1694- MAINTAINER_MODE_TRUE=
1695- MAINTAINER_MODE_FALSE='#'
1696-else
1697- MAINTAINER_MODE_TRUE='#'
1698- MAINTAINER_MODE_FALSE=
1699-fi
1700-
1701- MAINT=$MAINTAINER_MODE_TRUE
1702-
1703-
1704-
1705-
1706-
1707-
1708-
1709- if test -n "$PYTHON"; then
1710- # If the user set $PYTHON, use it and don't search something else.
1711- echo "$as_me:$LINENO: checking whether $PYTHON version >= 2.4" >&5
1712-echo $ECHO_N "checking whether $PYTHON version >= 2.4... $ECHO_C" >&6
1713- prog="import sys, string
1714-# split strings by '.' and convert to numeric. Append some zeros
1715-# because we need at least 4 digits for the hex conversion.
1716-minver = map(int, string.split('2.4', '.')) + [0, 0, 0]
1717-minverhex = 0
1718-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i]
1719-sys.exit(sys.hexversion < minverhex)"
1720- if { echo "$as_me:$LINENO: $PYTHON -c "$prog"" >&5
1721- ($PYTHON -c "$prog") >&5 2>&5
1722- ac_status=$?
1723- echo "$as_me:$LINENO: \$? = $ac_status" >&5
1724- (exit $ac_status); }; then
1725- echo "$as_me:$LINENO: result: yes" >&5
1726-echo "${ECHO_T}yes" >&6
1727-else
1728- { { echo "$as_me:$LINENO: error: too old" >&5
1729-echo "$as_me: error: too old" >&2;}
1730- { (exit 1); exit 1; }; }
1731-fi
1732-
1733- am_display_PYTHON=$PYTHON
1734- else
1735- # Otherwise, try each interpreter until we find one that satisfies
1736- # VERSION.
1737- echo "$as_me:$LINENO: checking for a Python interpreter with version >= 2.4" >&5
1738-echo $ECHO_N "checking for a Python interpreter with version >= 2.4... $ECHO_C" >&6
1739-if test "${am_cv_pathless_PYTHON+set}" = set; then
1740- echo $ECHO_N "(cached) $ECHO_C" >&6
1741-else
1742-
1743- for am_cv_pathless_PYTHON in python python2 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5 none; do
1744- test "$am_cv_pathless_PYTHON" = none && break
1745- prog="import sys, string
1746-# split strings by '.' and convert to numeric. Append some zeros
1747-# because we need at least 4 digits for the hex conversion.
1748-minver = map(int, string.split('2.4', '.')) + [0, 0, 0]
1749-minverhex = 0
1750-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i]
1751-sys.exit(sys.hexversion < minverhex)"
1752- if { echo "$as_me:$LINENO: $am_cv_pathless_PYTHON -c "$prog"" >&5
1753- ($am_cv_pathless_PYTHON -c "$prog") >&5 2>&5
1754- ac_status=$?
1755- echo "$as_me:$LINENO: \$? = $ac_status" >&5
1756- (exit $ac_status); }; then
1757- break
1758-fi
1759-
1760- done
1761-fi
1762-echo "$as_me:$LINENO: result: $am_cv_pathless_PYTHON" >&5
1763-echo "${ECHO_T}$am_cv_pathless_PYTHON" >&6
1764- # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
1765- if test "$am_cv_pathless_PYTHON" = none; then
1766- PYTHON=:
1767- else
1768- # Extract the first word of "$am_cv_pathless_PYTHON", so it can be a program name with args.
1769-set dummy $am_cv_pathless_PYTHON; ac_word=$2
1770-echo "$as_me:$LINENO: checking for $ac_word" >&5
1771-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
1772-if test "${ac_cv_path_PYTHON+set}" = set; then
1773- echo $ECHO_N "(cached) $ECHO_C" >&6
1774-else
1775- case $PYTHON in
1776- [\\/]* | ?:[\\/]*)
1777- ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
1778- ;;
1779- *)
1780- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1781-for as_dir in $PATH
1782-do
1783- IFS=$as_save_IFS
1784- test -z "$as_dir" && as_dir=.
1785- for ac_exec_ext in '' $ac_executable_extensions; do
1786- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
1787- ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
1788- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
1789- break 2
1790- fi
1791-done
1792-done
1793-
1794- ;;
1795-esac
1796-fi
1797-PYTHON=$ac_cv_path_PYTHON
1798-
1799-if test -n "$PYTHON"; then
1800- echo "$as_me:$LINENO: result: $PYTHON" >&5
1801-echo "${ECHO_T}$PYTHON" >&6
1802-else
1803- echo "$as_me:$LINENO: result: no" >&5
1804-echo "${ECHO_T}no" >&6
1805-fi
1806-
1807- fi
1808- am_display_PYTHON=$am_cv_pathless_PYTHON
1809- fi
1810-
1811-
1812- if test "$PYTHON" = :; then
1813- :
1814- else
1815-
1816-
1817- echo "$as_me:$LINENO: checking for $am_display_PYTHON version" >&5
1818-echo $ECHO_N "checking for $am_display_PYTHON version... $ECHO_C" >&6
1819-if test "${am_cv_python_version+set}" = set; then
1820- echo $ECHO_N "(cached) $ECHO_C" >&6
1821-else
1822- am_cv_python_version=`$PYTHON -c "import sys; print sys.version[:3]"`
1823-fi
1824-echo "$as_me:$LINENO: result: $am_cv_python_version" >&5
1825-echo "${ECHO_T}$am_cv_python_version" >&6
1826- PYTHON_VERSION=$am_cv_python_version
1827-
1828-
1829-
1830- PYTHON_PREFIX='${prefix}'
1831-
1832- PYTHON_EXEC_PREFIX='${exec_prefix}'
1833-
1834-
1835-
1836- echo "$as_me:$LINENO: checking for $am_display_PYTHON platform" >&5
1837-echo $ECHO_N "checking for $am_display_PYTHON platform... $ECHO_C" >&6
1838-if test "${am_cv_python_platform+set}" = set; then
1839- echo $ECHO_N "(cached) $ECHO_C" >&6
1840-else
1841- am_cv_python_platform=`$PYTHON -c "import sys; print sys.platform"`
1842-fi
1843-echo "$as_me:$LINENO: result: $am_cv_python_platform" >&5
1844-echo "${ECHO_T}$am_cv_python_platform" >&6
1845- PYTHON_PLATFORM=$am_cv_python_platform
1846-
1847-
1848-
1849-
1850- echo "$as_me:$LINENO: checking for $am_display_PYTHON script directory" >&5
1851-echo $ECHO_N "checking for $am_display_PYTHON script directory... $ECHO_C" >&6
1852-if test "${am_cv_python_pythondir+set}" = set; then
1853- echo $ECHO_N "(cached) $ECHO_C" >&6
1854-else
1855- am_cv_python_pythondir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(0,0,prefix='$PYTHON_PREFIX')" 2>/dev/null ||
1856- echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
1857-fi
1858-echo "$as_me:$LINENO: result: $am_cv_python_pythondir" >&5
1859-echo "${ECHO_T}$am_cv_python_pythondir" >&6
1860- pythondir=$am_cv_python_pythondir
1861-
1862-
1863-
1864- pkgpythondir=\${pythondir}/$PACKAGE
1865-
1866-
1867- echo "$as_me:$LINENO: checking for $am_display_PYTHON extension module directory" >&5
1868-echo $ECHO_N "checking for $am_display_PYTHON extension module directory... $ECHO_C" >&6
1869-if test "${am_cv_python_pyexecdir+set}" = set; then
1870- echo $ECHO_N "(cached) $ECHO_C" >&6
1871-else
1872- am_cv_python_pyexecdir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(1,0,prefix='$PYTHON_EXEC_PREFIX')" 2>/dev/null ||
1873- echo "${PYTHON_EXEC_PREFIX}/lib/python${PYTHON_VERSION}/site-packages"`
1874-fi
1875-echo "$as_me:$LINENO: result: $am_cv_python_pyexecdir" >&5
1876-echo "${ECHO_T}$am_cv_python_pyexecdir" >&6
1877- pyexecdir=$am_cv_python_pyexecdir
1878-
1879-
1880-
1881- pkgpyexecdir=\${pyexecdir}/$PACKAGE
1882-
1883-
1884-
1885- fi
1886-
1887-
1888-for ac_prog in python
1889-do
1890- # Extract the first word of "$ac_prog", so it can be a program name with args.
1891-set dummy $ac_prog; ac_word=$2
1892-echo "$as_me:$LINENO: checking for $ac_word" >&5
1893-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
1894-if test "${ac_cv_path_PYTHON+set}" = set; then
1895- echo $ECHO_N "(cached) $ECHO_C" >&6
1896-else
1897- case $PYTHON in
1898- [\\/]* | ?:[\\/]*)
1899- ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
1900- ;;
1901- *)
1902- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1903-for as_dir in $PATH
1904-do
1905- IFS=$as_save_IFS
1906- test -z "$as_dir" && as_dir=.
1907- for ac_exec_ext in '' $ac_executable_extensions; do
1908- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
1909- ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
1910- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
1911- break 2
1912- fi
1913-done
1914-done
1915-
1916- ;;
1917-esac
1918-fi
1919-PYTHON=$ac_cv_path_PYTHON
1920-
1921-if test -n "$PYTHON"; then
1922- echo "$as_me:$LINENO: result: $PYTHON" >&5
1923-echo "${ECHO_T}$PYTHON" >&6
1924-else
1925- echo "$as_me:$LINENO: result: no" >&5
1926-echo "${ECHO_T}no" >&6
1927-fi
1928-
1929- test -n "$PYTHON" && break
1930-done
1931-
1932-echo "$as_me:$LINENO: checking where is python installed" >&5
1933-echo $ECHO_N "checking where is python installed... $ECHO_C" >&6
1934-if test "x${PYTHON}" = x; then
1935- PYTHON="/usr/bin/env python";
1936-fi
1937-echo "$as_me:$LINENO: result: using $PYTHON" >&5
1938-echo "${ECHO_T}using $PYTHON" >&6;
1939-
1940-prefix_orig="$prefix"
1941-prefix=`eval echo "$prefix"`
1942-case $prefix in
1943- NONE) prefix=/usr;;
1944-esac
1945-var(){
1946- case $1 in
1947- *'${'*) res=`eval echo "$1"`;;
1948- *) res="$1";;
1949- esac
1950- case "$res" in
1951- ""|NONE) echo "$2";;
1952- *) echo "$res";;
1953- esac
1954-}
1955-localstatedir_orig="$localstatedir"
1956-
1957-pkg_prefix=`var "$pkg_prefix" "$prefix/share"`
1958-config_dir=`var "$config_dir" "/etc/corosync"`
1959-
1960-CONFIG_DIR="$config_dir"
1961-
1962-
1963-HA_NOARCHDATAHBDIR="$pkg_prefix/$HB_PKG"
1964-
1965-echo "$as_me:$LINENO: checking whether ln -s works" >&5
1966-echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
1967-LN_S=$as_ln_s
1968-if test "$LN_S" = "ln -s"; then
1969- echo "$as_me:$LINENO: result: yes" >&5
1970-echo "${ECHO_T}yes" >&6
1971-else
1972- echo "$as_me:$LINENO: result: no, using $LN_S" >&5
1973-echo "${ECHO_T}no, using $LN_S" >&6
1974-fi
1975-
1976-
1977- ac_config_files="$ac_config_files Makefile"
1978-cat >confcache <<\_ACEOF
1979-# This file is a shell script that caches the results of configure
1980-# tests run on this system so they can be shared between configure
1981-# scripts and configure runs, see configure's option --config-cache.
1982-# It is not useful on other systems. If it contains results you don't
1983-# want to keep, you may remove or edit it.
1984-#
1985-# config.status only pays attention to the cache file if you give it
1986-# the --recheck option to rerun configure.
1987-#
1988-# `ac_cv_env_foo' variables (set or unset) will be overridden when
1989-# loading this file, other *unset* `ac_cv_foo' will be assigned the
1990-# following values.
1991-
1992-_ACEOF
1993-
1994-# The following way of writing the cache mishandles newlines in values,
1995-# but we know of no workaround that is simple, portable, and efficient.
1996-# So, don't put newlines in cache variables' values.
1997-# Ultrix sh set writes to stderr and can't be redirected directly,
1998-# and sets the high bit in the cache file unless we assign to the vars.
1999-{
2000- (set) 2>&1 |
2001- case `(ac_space=' '; set | grep ac_space) 2>&1` in
2002- *ac_space=\ *)
2003- # `set' does not quote correctly, so add quotes (double-quote
2004- # substitution turns \\\\ into \\, and sed turns \\ into \).
2005- sed -n \
2006- "s/'/'\\\\''/g;
2007- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
2008- ;;
2009- *)
2010- # `set' quotes correctly as required by POSIX, so do not add quotes.
2011- sed -n \
2012- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
2013- ;;
2014- esac;
2015-} |
2016- sed '
2017- t clear
2018- : clear
2019- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
2020- t end
2021- /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
2022- : end' >>confcache
2023-if diff $cache_file confcache >/dev/null 2>&1; then :; else
2024- if test -w $cache_file; then
2025- test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
2026- cat confcache >$cache_file
2027- else
2028- echo "not updating unwritable cache $cache_file"
2029- fi
2030-fi
2031-rm -f confcache
2032-
2033-test "x$prefix" = xNONE && prefix=$ac_default_prefix
2034-# Let make expand exec_prefix.
2035-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
2036-
2037-# VPATH may cause trouble with some makes, so we remove $(srcdir),
2038-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
2039-# trailing colons and then remove the whole line if VPATH becomes empty
2040-# (actually we leave an empty line to preserve line numbers).
2041-if test "x$srcdir" = x.; then
2042- ac_vpsub='/^[ ]*VPATH[ ]*=/{
2043-s/:*\$(srcdir):*/:/;
2044-s/:*\${srcdir}:*/:/;
2045-s/:*@srcdir@:*/:/;
2046-s/^\([^=]*=[ ]*\):*/\1/;
2047-s/:*$//;
2048-s/^[^=]*=[ ]*$//;
2049-}'
2050-fi
2051-
2052-# Transform confdefs.h into DEFS.
2053-# Protect against shell expansion while executing Makefile rules.
2054-# Protect against Makefile macro expansion.
2055-#
2056-# If the first sed substitution is executed (which looks for macros that
2057-# take arguments), then we branch to the quote section. Otherwise,
2058-# look for a macro that doesn't take arguments.
2059-cat >confdef2opt.sed <<\_ACEOF
2060-t clear
2061-: clear
2062-s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g
2063-t quote
2064-s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g
2065-t quote
2066-d
2067-: quote
2068-s,[ `~#$^&*(){}\\|;'"<>?],\\&,g
2069-s,\[,\\&,g
2070-s,\],\\&,g
2071-s,\$,$$,g
2072-p
2073-_ACEOF
2074-# We use echo to avoid assuming a particular line-breaking character.
2075-# The extra dot is to prevent the shell from consuming trailing
2076-# line-breaks from the sub-command output. A line-break within
2077-# single-quotes doesn't work because, if this script is created in a
2078-# platform that uses two characters for line-breaks (e.g., DOS), tr
2079-# would break.
2080-ac_LF_and_DOT=`echo; echo .`
2081-DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
2082-rm -f confdef2opt.sed
2083-
2084-
2085-ac_libobjs=
2086-ac_ltlibobjs=
2087-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
2088- # 1. Remove the extension, and $U if already installed.
2089- ac_i=`echo "$ac_i" |
2090- sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
2091- # 2. Add them.
2092- ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
2093- ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
2094-done
2095-LIBOBJS=$ac_libobjs
2096-
2097-LTLIBOBJS=$ac_ltlibobjs
2098-
2099-
2100-if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
2101- { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
2102-Usually this means the macro was only invoked conditionally." >&5
2103-echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
2104-Usually this means the macro was only invoked conditionally." >&2;}
2105- { (exit 1); exit 1; }; }
2106-fi
2107-
2108-: ${CONFIG_STATUS=./config.status}
2109-ac_clean_files_save=$ac_clean_files
2110-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
2111-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
2112-echo "$as_me: creating $CONFIG_STATUS" >&6;}
2113-cat >$CONFIG_STATUS <<_ACEOF
2114-#! $SHELL
2115-# Generated by $as_me.
2116-# Run this file to recreate the current configuration.
2117-# Compiler output produced by configure, useful for debugging
2118-# configure, is in config.log if it exists.
2119-
2120-debug=false
2121-ac_cs_recheck=false
2122-ac_cs_silent=false
2123-SHELL=\${CONFIG_SHELL-$SHELL}
2124-_ACEOF
2125-
2126-cat >>$CONFIG_STATUS <<\_ACEOF
2127-## --------------------- ##
2128-## M4sh Initialization. ##
2129-## --------------------- ##
2130-
2131-# Be Bourne compatible
2132-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
2133- emulate sh
2134- NULLCMD=:
2135- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
2136- # is contrary to our usage. Disable this feature.
2137- alias -g '${1+"$@"}'='"$@"'
2138-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
2139- set -o posix
2140-fi
2141-DUALCASE=1; export DUALCASE # for MKS sh
2142-
2143-# Support unset when possible.
2144-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
2145- as_unset=unset
2146-else
2147- as_unset=false
2148-fi
2149-
2150-
2151-# Work around bugs in pre-3.0 UWIN ksh.
2152-$as_unset ENV MAIL MAILPATH
2153-PS1='$ '
2154-PS2='> '
2155-PS4='+ '
2156-
2157-# NLS nuisances.
2158-for as_var in \
2159- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
2160- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
2161- LC_TELEPHONE LC_TIME
2162-do
2163- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
2164- eval $as_var=C; export $as_var
2165- else
2166- $as_unset $as_var
2167- fi
2168-done
2169-
2170-# Required to use basename.
2171-if expr a : '\(a\)' >/dev/null 2>&1; then
2172- as_expr=expr
2173-else
2174- as_expr=false
2175-fi
2176-
2177-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
2178- as_basename=basename
2179-else
2180- as_basename=false
2181-fi
2182-
2183-
2184-# Name of the executable.
2185-as_me=`$as_basename "$0" ||
2186-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
2187- X"$0" : 'X\(//\)$' \| \
2188- X"$0" : 'X\(/\)$' \| \
2189- . : '\(.\)' 2>/dev/null ||
2190-echo X/"$0" |
2191- sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
2192- /^X\/\(\/\/\)$/{ s//\1/; q; }
2193- /^X\/\(\/\).*/{ s//\1/; q; }
2194- s/.*/./; q'`
2195-
2196-
2197-# PATH needs CR, and LINENO needs CR and PATH.
2198-# Avoid depending upon Character Ranges.
2199-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
2200-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
2201-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
2202-as_cr_digits='0123456789'
2203-as_cr_alnum=$as_cr_Letters$as_cr_digits
2204-
2205-# The user is always right.
2206-if test "${PATH_SEPARATOR+set}" != set; then
2207- echo "#! /bin/sh" >conf$$.sh
2208- echo "exit 0" >>conf$$.sh
2209- chmod +x conf$$.sh
2210- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
2211- PATH_SEPARATOR=';'
2212- else
2213- PATH_SEPARATOR=:
2214- fi
2215- rm -f conf$$.sh
2216-fi
2217-
2218-
2219- as_lineno_1=$LINENO
2220- as_lineno_2=$LINENO
2221- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
2222- test "x$as_lineno_1" != "x$as_lineno_2" &&
2223- test "x$as_lineno_3" = "x$as_lineno_2" || {
2224- # Find who we are. Look in the path if we contain no path at all
2225- # relative or not.
2226- case $0 in
2227- *[\\/]* ) as_myself=$0 ;;
2228- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2229-for as_dir in $PATH
2230-do
2231- IFS=$as_save_IFS
2232- test -z "$as_dir" && as_dir=.
2233- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
2234-done
2235-
2236- ;;
2237- esac
2238- # We did not find ourselves, most probably we were run as `sh COMMAND'
2239- # in which case we are not to be found in the path.
2240- if test "x$as_myself" = x; then
2241- as_myself=$0
2242- fi
2243- if test ! -f "$as_myself"; then
2244- { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
2245-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
2246- { (exit 1); exit 1; }; }
2247- fi
2248- case $CONFIG_SHELL in
2249- '')
2250- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2251-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
2252-do
2253- IFS=$as_save_IFS
2254- test -z "$as_dir" && as_dir=.
2255- for as_base in sh bash ksh sh5; do
2256- case $as_dir in
2257- /*)
2258- if ("$as_dir/$as_base" -c '
2259- as_lineno_1=$LINENO
2260- as_lineno_2=$LINENO
2261- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
2262- test "x$as_lineno_1" != "x$as_lineno_2" &&
2263- test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
2264- $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
2265- $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
2266- CONFIG_SHELL=$as_dir/$as_base
2267- export CONFIG_SHELL
2268- exec "$CONFIG_SHELL" "$0" ${1+"$@"}
2269- fi;;
2270- esac
2271- done
2272-done
2273-;;
2274- esac
2275-
2276- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
2277- # uniformly replaced by the line number. The first 'sed' inserts a
2278- # line-number line before each line; the second 'sed' does the real
2279- # work. The second script uses 'N' to pair each line-number line
2280- # with the numbered line, and appends trailing '-' during
2281- # substitution so that $LINENO is not a special case at line end.
2282- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
2283- # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
2284- sed '=' <$as_myself |
2285- sed '
2286- N
2287- s,$,-,
2288- : loop
2289- s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
2290- t loop
2291- s,-$,,
2292- s,^['$as_cr_digits']*\n,,
2293- ' >$as_me.lineno &&
2294- chmod +x $as_me.lineno ||
2295- { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
2296-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
2297- { (exit 1); exit 1; }; }
2298-
2299- # Don't try to exec as it changes $[0], causing all sort of problems
2300- # (the dirname of $[0] is not the place where we might find the
2301- # original and so on. Autoconf is especially sensible to this).
2302- . ./$as_me.lineno
2303- # Exit status is that of the last command.
2304- exit
2305-}
2306-
2307-
2308-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
2309- *c*,-n*) ECHO_N= ECHO_C='
2310-' ECHO_T=' ' ;;
2311- *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
2312- *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
2313-esac
2314-
2315-if expr a : '\(a\)' >/dev/null 2>&1; then
2316- as_expr=expr
2317-else
2318- as_expr=false
2319-fi
2320-
2321-rm -f conf$$ conf$$.exe conf$$.file
2322-echo >conf$$.file
2323-if ln -s conf$$.file conf$$ 2>/dev/null; then
2324- # We could just check for DJGPP; but this test a) works b) is more generic
2325- # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
2326- if test -f conf$$.exe; then
2327- # Don't use ln at all; we don't have any links
2328- as_ln_s='cp -p'
2329- else
2330- as_ln_s='ln -s'
2331- fi
2332-elif ln conf$$.file conf$$ 2>/dev/null; then
2333- as_ln_s=ln
2334-else
2335- as_ln_s='cp -p'
2336-fi
2337-rm -f conf$$ conf$$.exe conf$$.file
2338-
2339-if mkdir -p . 2>/dev/null; then
2340- as_mkdir_p=:
2341-else
2342- test -d ./-p && rmdir ./-p
2343- as_mkdir_p=false
2344-fi
2345-
2346-as_executable_p="test -f"
2347-
2348-# Sed expression to map a string onto a valid CPP name.
2349-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
2350-
2351-# Sed expression to map a string onto a valid variable name.
2352-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
2353-
2354-
2355-# IFS
2356-# We need space, tab and new line, in precisely that order.
2357-as_nl='
2358-'
2359-IFS=" $as_nl"
2360-
2361-# CDPATH.
2362-$as_unset CDPATH
2363-
2364-exec 6>&1
2365-
2366-# Open the log real soon, to keep \$[0] and so on meaningful, and to
2367-# report actual input values of CONFIG_FILES etc. instead of their
2368-# values after options handling. Logging --version etc. is OK.
2369-exec 5>>config.log
2370-{
2371- echo
2372- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
2373-## Running $as_me. ##
2374-_ASBOX
2375-} >&5
2376-cat >&5 <<_CSEOF
2377-
2378-This file was extended by pm-logconv $as_me 1.00, which was
2379-generated by GNU Autoconf 2.59. Invocation command line was
2380-
2381- CONFIG_FILES = $CONFIG_FILES
2382- CONFIG_HEADERS = $CONFIG_HEADERS
2383- CONFIG_LINKS = $CONFIG_LINKS
2384- CONFIG_COMMANDS = $CONFIG_COMMANDS
2385- $ $0 $@
2386-
2387-_CSEOF
2388-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
2389-echo >&5
2390-_ACEOF
2391-
2392-# Files that config.status was made for.
2393-if test -n "$ac_config_files"; then
2394- echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
2395-fi
2396-
2397-if test -n "$ac_config_headers"; then
2398- echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
2399-fi
2400-
2401-if test -n "$ac_config_links"; then
2402- echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
2403-fi
2404-
2405-if test -n "$ac_config_commands"; then
2406- echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
2407-fi
2408-
2409-cat >>$CONFIG_STATUS <<\_ACEOF
2410-
2411-ac_cs_usage="\
2412-\`$as_me' instantiates files from templates according to the
2413-current configuration.
2414-
2415-Usage: $0 [OPTIONS] [FILE]...
2416-
2417- -h, --help print this help, then exit
2418- -V, --version print version number, then exit
2419- -q, --quiet do not print progress messages
2420- -d, --debug don't remove temporary files
2421- --recheck update $as_me by reconfiguring in the same conditions
2422- --file=FILE[:TEMPLATE]
2423- instantiate the configuration file FILE
2424-
2425-Configuration files:
2426-$config_files
2427-
2428-Report bugs to <bug-autoconf@gnu.org>."
2429-_ACEOF
2430-
2431-cat >>$CONFIG_STATUS <<_ACEOF
2432-ac_cs_version="\\
2433-pm-logconv config.status 1.00
2434-configured by $0, generated by GNU Autoconf 2.59,
2435- with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
2436-
2437-Copyright (C) 2003 Free Software Foundation, Inc.
2438-This config.status script is free software; the Free Software Foundation
2439-gives unlimited permission to copy, distribute and modify it."
2440-srcdir=$srcdir
2441-INSTALL="$INSTALL"
2442-_ACEOF
2443-
2444-cat >>$CONFIG_STATUS <<\_ACEOF
2445-# If no file are specified by the user, then we need to provide default
2446-# value. By we need to know if files were specified by the user.
2447-ac_need_defaults=:
2448-while test $# != 0
2449-do
2450- case $1 in
2451- --*=*)
2452- ac_option=`expr "x$1" : 'x\([^=]*\)='`
2453- ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
2454- ac_shift=:
2455- ;;
2456- -*)
2457- ac_option=$1
2458- ac_optarg=$2
2459- ac_shift=shift
2460- ;;
2461- *) # This is not an option, so the user has probably given explicit
2462- # arguments.
2463- ac_option=$1
2464- ac_need_defaults=false;;
2465- esac
2466-
2467- case $ac_option in
2468- # Handling of the options.
2469-_ACEOF
2470-cat >>$CONFIG_STATUS <<\_ACEOF
2471- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
2472- ac_cs_recheck=: ;;
2473- --version | --vers* | -V )
2474- echo "$ac_cs_version"; exit 0 ;;
2475- --he | --h)
2476- # Conflict between --help and --header
2477- { { echo "$as_me:$LINENO: error: ambiguous option: $1
2478-Try \`$0 --help' for more information." >&5
2479-echo "$as_me: error: ambiguous option: $1
2480-Try \`$0 --help' for more information." >&2;}
2481- { (exit 1); exit 1; }; };;
2482- --help | --hel | -h )
2483- echo "$ac_cs_usage"; exit 0 ;;
2484- --debug | --d* | -d )
2485- debug=: ;;
2486- --file | --fil | --fi | --f )
2487- $ac_shift
2488- CONFIG_FILES="$CONFIG_FILES $ac_optarg"
2489- ac_need_defaults=false;;
2490- --header | --heade | --head | --hea )
2491- $ac_shift
2492- CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
2493- ac_need_defaults=false;;
2494- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
2495- | -silent | --silent | --silen | --sile | --sil | --si | --s)
2496- ac_cs_silent=: ;;
2497-
2498- # This is an error.
2499- -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
2500-Try \`$0 --help' for more information." >&5
2501-echo "$as_me: error: unrecognized option: $1
2502-Try \`$0 --help' for more information." >&2;}
2503- { (exit 1); exit 1; }; } ;;
2504-
2505- *) ac_config_targets="$ac_config_targets $1" ;;
2506-
2507- esac
2508- shift
2509-done
2510-
2511-ac_configure_extra_args=
2512-
2513-if $ac_cs_silent; then
2514- exec 6>/dev/null
2515- ac_configure_extra_args="$ac_configure_extra_args --silent"
2516-fi
2517-
2518-_ACEOF
2519-cat >>$CONFIG_STATUS <<_ACEOF
2520-if \$ac_cs_recheck; then
2521- echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
2522- exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
2523-fi
2524-
2525-_ACEOF
2526-
2527-
2528-
2529-
2530-
2531-cat >>$CONFIG_STATUS <<\_ACEOF
2532-for ac_config_target in $ac_config_targets
2533-do
2534- case "$ac_config_target" in
2535- # Handling of arguments.
2536- "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
2537- *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
2538-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
2539- { (exit 1); exit 1; }; };;
2540- esac
2541-done
2542-
2543-# If the user did not use the arguments to specify the items to instantiate,
2544-# then the envvar interface is used. Set only those that are not.
2545-# We use the long form for the default assignment because of an extremely
2546-# bizarre bug on SunOS 4.1.3.
2547-if $ac_need_defaults; then
2548- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
2549-fi
2550-
2551-# Have a temporary directory for convenience. Make it in the build tree
2552-# simply because there is no reason to put it here, and in addition,
2553-# creating and moving files from /tmp can sometimes cause problems.
2554-# Create a temporary directory, and hook for its removal unless debugging.
2555-$debug ||
2556-{
2557- trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
2558- trap '{ (exit 1); exit 1; }' 1 2 13 15
2559-}
2560-
2561-# Create a (secure) tmp directory for tmp files.
2562-
2563-{
2564- tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
2565- test -n "$tmp" && test -d "$tmp"
2566-} ||
2567-{
2568- tmp=./confstat$$-$RANDOM
2569- (umask 077 && mkdir $tmp)
2570-} ||
2571-{
2572- echo "$me: cannot create a temporary directory in ." >&2
2573- { (exit 1); exit 1; }
2574-}
2575-
2576-_ACEOF
2577-
2578-cat >>$CONFIG_STATUS <<_ACEOF
2579-
2580-#
2581-# CONFIG_FILES section.
2582-#
2583-
2584-# No need to generate the scripts if there are no CONFIG_FILES.
2585-# This happens for instance when ./config.status config.h
2586-if test -n "\$CONFIG_FILES"; then
2587- # Protect against being on the right side of a sed subst in config.status.
2588- sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
2589- s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
2590-s,@SHELL@,$SHELL,;t t
2591-s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
2592-s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
2593-s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
2594-s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
2595-s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
2596-s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
2597-s,@exec_prefix@,$exec_prefix,;t t
2598-s,@prefix@,$prefix,;t t
2599-s,@program_transform_name@,$program_transform_name,;t t
2600-s,@bindir@,$bindir,;t t
2601-s,@sbindir@,$sbindir,;t t
2602-s,@libexecdir@,$libexecdir,;t t
2603-s,@datadir@,$datadir,;t t
2604-s,@sysconfdir@,$sysconfdir,;t t
2605-s,@sharedstatedir@,$sharedstatedir,;t t
2606-s,@localstatedir@,$localstatedir,;t t
2607-s,@libdir@,$libdir,;t t
2608-s,@includedir@,$includedir,;t t
2609-s,@oldincludedir@,$oldincludedir,;t t
2610-s,@infodir@,$infodir,;t t
2611-s,@mandir@,$mandir,;t t
2612-s,@build_alias@,$build_alias,;t t
2613-s,@host_alias@,$host_alias,;t t
2614-s,@target_alias@,$target_alias,;t t
2615-s,@DEFS@,$DEFS,;t t
2616-s,@ECHO_C@,$ECHO_C,;t t
2617-s,@ECHO_N@,$ECHO_N,;t t
2618-s,@ECHO_T@,$ECHO_T,;t t
2619-s,@LIBS@,$LIBS,;t t
2620-s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
2621-s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
2622-s,@INSTALL_DATA@,$INSTALL_DATA,;t t
2623-s,@CYGPATH_W@,$CYGPATH_W,;t t
2624-s,@PACKAGE@,$PACKAGE,;t t
2625-s,@VERSION@,$VERSION,;t t
2626-s,@ACLOCAL@,$ACLOCAL,;t t
2627-s,@AUTOCONF@,$AUTOCONF,;t t
2628-s,@AUTOMAKE@,$AUTOMAKE,;t t
2629-s,@AUTOHEADER@,$AUTOHEADER,;t t
2630-s,@MAKEINFO@,$MAKEINFO,;t t
2631-s,@install_sh@,$install_sh,;t t
2632-s,@STRIP@,$STRIP,;t t
2633-s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
2634-s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
2635-s,@mkdir_p@,$mkdir_p,;t t
2636-s,@AWK@,$AWK,;t t
2637-s,@SET_MAKE@,$SET_MAKE,;t t
2638-s,@am__leading_dot@,$am__leading_dot,;t t
2639-s,@AMTAR@,$AMTAR,;t t
2640-s,@am__tar@,$am__tar,;t t
2641-s,@am__untar@,$am__untar,;t t
2642-s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
2643-s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
2644-s,@MAINT@,$MAINT,;t t
2645-s,@PYTHON@,$PYTHON,;t t
2646-s,@PYTHON_VERSION@,$PYTHON_VERSION,;t t
2647-s,@PYTHON_PREFIX@,$PYTHON_PREFIX,;t t
2648-s,@PYTHON_EXEC_PREFIX@,$PYTHON_EXEC_PREFIX,;t t
2649-s,@PYTHON_PLATFORM@,$PYTHON_PLATFORM,;t t
2650-s,@pythondir@,$pythondir,;t t
2651-s,@pkgpythondir@,$pkgpythondir,;t t
2652-s,@pyexecdir@,$pyexecdir,;t t
2653-s,@pkgpyexecdir@,$pkgpyexecdir,;t t
2654-s,@CONFIG_DIR@,$CONFIG_DIR,;t t
2655-s,@HBMONI_DIR@,$HBMONI_DIR,;t t
2656-s,@HA_NOARCHDATAHBDIR@,$HA_NOARCHDATAHBDIR,;t t
2657-s,@LN_S@,$LN_S,;t t
2658-s,@LIBOBJS@,$LIBOBJS,;t t
2659-s,@LTLIBOBJS@,$LTLIBOBJS,;t t
2660-CEOF
2661-
2662-_ACEOF
2663-
2664- cat >>$CONFIG_STATUS <<\_ACEOF
2665- # Split the substitutions into bite-sized pieces for seds with
2666- # small command number limits, like on Digital OSF/1 and HP-UX.
2667- ac_max_sed_lines=48
2668- ac_sed_frag=1 # Number of current file.
2669- ac_beg=1 # First line for current file.
2670- ac_end=$ac_max_sed_lines # Line after last line for current file.
2671- ac_more_lines=:
2672- ac_sed_cmds=
2673- while $ac_more_lines; do
2674- if test $ac_beg -gt 1; then
2675- sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
2676- else
2677- sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
2678- fi
2679- if test ! -s $tmp/subs.frag; then
2680- ac_more_lines=false
2681- else
2682- # The purpose of the label and of the branching condition is to
2683- # speed up the sed processing (if there are no `@' at all, there
2684- # is no need to browse any of the substitutions).
2685- # These are the two extra sed commands mentioned above.
2686- (echo ':t
2687- /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
2688- if test -z "$ac_sed_cmds"; then
2689- ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
2690- else
2691- ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
2692- fi
2693- ac_sed_frag=`expr $ac_sed_frag + 1`
2694- ac_beg=$ac_end
2695- ac_end=`expr $ac_end + $ac_max_sed_lines`
2696- fi
2697- done
2698- if test -z "$ac_sed_cmds"; then
2699- ac_sed_cmds=cat
2700- fi
2701-fi # test -n "$CONFIG_FILES"
2702-
2703-_ACEOF
2704-cat >>$CONFIG_STATUS <<\_ACEOF
2705-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
2706- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
2707- case $ac_file in
2708- - | *:- | *:-:* ) # input from stdin
2709- cat >$tmp/stdin
2710- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
2711- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
2712- *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
2713- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
2714- * ) ac_file_in=$ac_file.in ;;
2715- esac
2716-
2717- # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
2718- ac_dir=`(dirname "$ac_file") 2>/dev/null ||
2719-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
2720- X"$ac_file" : 'X\(//\)[^/]' \| \
2721- X"$ac_file" : 'X\(//\)$' \| \
2722- X"$ac_file" : 'X\(/\)' \| \
2723- . : '\(.\)' 2>/dev/null ||
2724-echo X"$ac_file" |
2725- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
2726- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
2727- /^X\(\/\/\)$/{ s//\1/; q; }
2728- /^X\(\/\).*/{ s//\1/; q; }
2729- s/.*/./; q'`
2730- { if $as_mkdir_p; then
2731- mkdir -p "$ac_dir"
2732- else
2733- as_dir="$ac_dir"
2734- as_dirs=
2735- while test ! -d "$as_dir"; do
2736- as_dirs="$as_dir $as_dirs"
2737- as_dir=`(dirname "$as_dir") 2>/dev/null ||
2738-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
2739- X"$as_dir" : 'X\(//\)[^/]' \| \
2740- X"$as_dir" : 'X\(//\)$' \| \
2741- X"$as_dir" : 'X\(/\)' \| \
2742- . : '\(.\)' 2>/dev/null ||
2743-echo X"$as_dir" |
2744- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
2745- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
2746- /^X\(\/\/\)$/{ s//\1/; q; }
2747- /^X\(\/\).*/{ s//\1/; q; }
2748- s/.*/./; q'`
2749- done
2750- test ! -n "$as_dirs" || mkdir $as_dirs
2751- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
2752-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
2753- { (exit 1); exit 1; }; }; }
2754-
2755- ac_builddir=.
2756-
2757-if test "$ac_dir" != .; then
2758- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
2759- # A "../" for each directory in $ac_dir_suffix.
2760- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
2761-else
2762- ac_dir_suffix= ac_top_builddir=
2763-fi
2764-
2765-case $srcdir in
2766- .) # No --srcdir option. We are building in place.
2767- ac_srcdir=.
2768- if test -z "$ac_top_builddir"; then
2769- ac_top_srcdir=.
2770- else
2771- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
2772- fi ;;
2773- [\\/]* | ?:[\\/]* ) # Absolute path.
2774- ac_srcdir=$srcdir$ac_dir_suffix;
2775- ac_top_srcdir=$srcdir ;;
2776- *) # Relative path.
2777- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
2778- ac_top_srcdir=$ac_top_builddir$srcdir ;;
2779-esac
2780-
2781-# Do not use `cd foo && pwd` to compute absolute paths, because
2782-# the directories may not exist.
2783-case `pwd` in
2784-.) ac_abs_builddir="$ac_dir";;
2785-*)
2786- case "$ac_dir" in
2787- .) ac_abs_builddir=`pwd`;;
2788- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
2789- *) ac_abs_builddir=`pwd`/"$ac_dir";;
2790- esac;;
2791-esac
2792-case $ac_abs_builddir in
2793-.) ac_abs_top_builddir=${ac_top_builddir}.;;
2794-*)
2795- case ${ac_top_builddir}. in
2796- .) ac_abs_top_builddir=$ac_abs_builddir;;
2797- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
2798- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
2799- esac;;
2800-esac
2801-case $ac_abs_builddir in
2802-.) ac_abs_srcdir=$ac_srcdir;;
2803-*)
2804- case $ac_srcdir in
2805- .) ac_abs_srcdir=$ac_abs_builddir;;
2806- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
2807- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
2808- esac;;
2809-esac
2810-case $ac_abs_builddir in
2811-.) ac_abs_top_srcdir=$ac_top_srcdir;;
2812-*)
2813- case $ac_top_srcdir in
2814- .) ac_abs_top_srcdir=$ac_abs_builddir;;
2815- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
2816- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
2817- esac;;
2818-esac
2819-
2820-
2821- case $INSTALL in
2822- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
2823- *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
2824- esac
2825-
2826- if test x"$ac_file" != x-; then
2827- { echo "$as_me:$LINENO: creating $ac_file" >&5
2828-echo "$as_me: creating $ac_file" >&6;}
2829- rm -f "$ac_file"
2830- fi
2831- # Let's still pretend it is `configure' which instantiates (i.e., don't
2832- # use $as_me), people would be surprised to read:
2833- # /* config.h. Generated by config.status. */
2834- if test x"$ac_file" = x-; then
2835- configure_input=
2836- else
2837- configure_input="$ac_file. "
2838- fi
2839- configure_input=$configure_input"Generated from `echo $ac_file_in |
2840- sed 's,.*/,,'` by configure."
2841-
2842- # First look for the input files in the build tree, otherwise in the
2843- # src tree.
2844- ac_file_inputs=`IFS=:
2845- for f in $ac_file_in; do
2846- case $f in
2847- -) echo $tmp/stdin ;;
2848- [\\/$]*)
2849- # Absolute (can't be DOS-style, as IFS=:)
2850- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
2851-echo "$as_me: error: cannot find input file: $f" >&2;}
2852- { (exit 1); exit 1; }; }
2853- echo "$f";;
2854- *) # Relative
2855- if test -f "$f"; then
2856- # Build tree
2857- echo "$f"
2858- elif test -f "$srcdir/$f"; then
2859- # Source tree
2860- echo "$srcdir/$f"
2861- else
2862- # /dev/null tree
2863- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
2864-echo "$as_me: error: cannot find input file: $f" >&2;}
2865- { (exit 1); exit 1; }; }
2866- fi;;
2867- esac
2868- done` || { (exit 1); exit 1; }
2869-_ACEOF
2870-cat >>$CONFIG_STATUS <<_ACEOF
2871- sed "$ac_vpsub
2872-$extrasub
2873-_ACEOF
2874-cat >>$CONFIG_STATUS <<\_ACEOF
2875-:t
2876-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
2877-s,@configure_input@,$configure_input,;t t
2878-s,@srcdir@,$ac_srcdir,;t t
2879-s,@abs_srcdir@,$ac_abs_srcdir,;t t
2880-s,@top_srcdir@,$ac_top_srcdir,;t t
2881-s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
2882-s,@builddir@,$ac_builddir,;t t
2883-s,@abs_builddir@,$ac_abs_builddir,;t t
2884-s,@top_builddir@,$ac_top_builddir,;t t
2885-s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
2886-s,@INSTALL@,$ac_INSTALL,;t t
2887-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
2888- rm -f $tmp/stdin
2889- if test x"$ac_file" != x-; then
2890- mv $tmp/out $ac_file
2891- else
2892- cat $tmp/out
2893- rm -f $tmp/out
2894- fi
2895-
2896-done
2897-_ACEOF
2898-
2899-cat >>$CONFIG_STATUS <<\_ACEOF
2900-
2901-{ (exit 0); exit 0; }
2902-_ACEOF
2903-chmod +x $CONFIG_STATUS
2904-ac_clean_files=$ac_clean_files_save
2905-
2906-
2907-# configure is writing to config.log, and then calls config.status.
2908-# config.status does its own redirection, appending to config.log.
2909-# Unfortunately, on DOS this fails, as config.log is still kept open
2910-# by configure, so config.status won't be able to write to it; its
2911-# output is simply discarded. So we exec the FD to /dev/null,
2912-# effectively closing config.log, so it can be properly (re)opened and
2913-# appended to by config.status. When coming back to configure, we
2914-# need to make the FD available again.
2915-if test "$no_create" != yes; then
2916- ac_cs_success=:
2917- ac_config_status_args=
2918- test "$silent" = yes &&
2919- ac_config_status_args="$ac_config_status_args --quiet"
2920- exec 5>/dev/null
2921- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
2922- exec 5>>config.log
2923- # Use ||, not &&, to avoid exiting from the if with $? = 1, which
2924- # would make configure fail if this is the last instruction.
2925- $ac_cs_success || { (exit 1); exit 1; }
2926-fi
2927-
diff -r 37a129a4a6e9 -r 27a51b3e76ea configure.ac
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/configure.ac Thu Feb 09 09:14:02 2012 +0900
@@ -0,0 +1,56 @@
1+# -*- Autoconf -*-
2+# Process this file with autoconf to produce a configure script.
3+
4+AC_PREREQ([2.59])
5+AC_INIT([pm_logconv-cs], [1.0])
6+AM_INIT_AUTOMAKE
7+AC_PREFIX_DEFAULT(/usr)
8+PM_PKG="pacemaker"
9+
10+#
11+# check for python
12+#
13+AM_PATH_PYTHON(2.4,,:)
14+AC_PATH_PROGS(PYTHON, python)
15+AC_MSG_CHECKING(where is python installed)
16+if test "x${PYTHON}" = x; then
17+ PYTHON="/usr/bin/env python";
18+fi
19+AC_MSG_RESULT(using $PYTHON);
20+
21+prefix_orig="$prefix"
22+prefix=`eval echo "$prefix"`
23+case $prefix in
24+ NONE) prefix=/usr;;
25+esac
26+var(){
27+ case $1 in
28+ *'${'*) res=`eval echo "$1"`;;
29+ *) res="$1";;
30+ esac
31+ case "$res" in
32+ ""|NONE) echo "$2";;
33+ *) echo "$res";;
34+ esac
35+}
36+
37+#
38+# Keep copy of original (default) localstatedir
39+#
40+localstatedir_orig="$localstatedir"
41+
42+exec_prefix=`var "$exec_prefix" "$prefix"`
43+datadir=`var "$datadir" "$prefix/share"`
44+config_dir=`var "$config_dir" "/etc/"`
45+
46+CONFIG_DIR="$config_dir"
47+AC_SUBST(CONFIG_DIR)
48+HA_DATADIR="$datadir"
49+AC_SUBST(HA_DATADIR)
50+HA_NOARCHDATAHBDIR="$HA_DATADIR/$PM_PKG"
51+AC_SUBST(HA_NOARCHDATAHBDIR)
52+AC_PROG_LN_S
53+
54+AC_CONFIG_FILES([Makefile])
55+AC_OUTPUT
56+
diff -r 37a129a4a6e9 -r 27a51b3e76ea configure.in
--- a/configure.in Fri Jun 25 17:26:20 2010 +0900
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
1-AC_PREREQ(2.59)
2-AC_INIT(pm-logconv, 1.00)
3-AM_INIT_AUTOMAKE(pm-logconv, 1.00)
4-AC_PREFIX_DEFAULT(/usr)
5-HB_PKG="pacemaker"
6-AM_MAINTAINER_MODE
7-
8-dnl>
9-dnl> check for python -- 'dnl' is used for comments
10-dnl>
11-AM_PATH_PYTHON(2.4,,:)
12-AC_PATH_PROGS(PYTHON, python)
13-AC_MSG_CHECKING(where is python installed)
14-if test "x${PYTHON}" = x; then
15- PYTHON="/usr/bin/env python";
16-fi
17-AC_MSG_RESULT(using $PYTHON);
18-
19-prefix_orig="$prefix"
20-prefix=`eval echo "$prefix"`
21-case $prefix in
22- NONE) prefix=/usr;;
23-esac
24-var(){
25- case $1 in
26- *'${'*) res=`eval echo "$1"`;;
27- *) res="$1";;
28- esac
29- case "$res" in
30- ""|NONE) echo "$2";;
31- *) echo "$res";;
32- esac
33-}
34-dnl>
35-dnl> Keep copy of original (default) localstatedir
36-dnl>
37-localstatedir_orig="$localstatedir"
38-
39-pkg_prefix=`var "$pkg_prefix" "$prefix/share"`
40-config_dir=`var "$config_dir" "/etc/corosync"`
41-
42-CONFIG_DIR="$config_dir"
43-AC_SUBST(CONFIG_DIR)
44-AC_SUBST(HBMONI_DIR)
45-HA_NOARCHDATAHBDIR="$pkg_prefix/$HB_PKG"
46-AC_SUBST(HA_NOARCHDATAHBDIR)
47-AC_PROG_LN_S
48-
49-AC_OUTPUT([
50-Makefile
51-])
diff -r 37a129a4a6e9 -r 27a51b3e76ea install-sh
--- a/install-sh Fri Jun 25 17:26:20 2010 +0900
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,323 +0,0 @@
1-#!/bin/sh
2-# install - install a program, script, or datafile
3-
4-scriptversion=2005-05-14.22
5-
6-# This originates from X11R5 (mit/util/scripts/install.sh), which was
7-# later released in X11R6 (xc/config/util/install.sh) with the
8-# following copyright and license.
9-#
10-# Copyright (C) 1994 X Consortium
11-#
12-# Permission is hereby granted, free of charge, to any person obtaining a copy
13-# of this software and associated documentation files (the "Software"), to
14-# deal in the Software without restriction, including without limitation the
15-# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
16-# sell copies of the Software, and to permit persons to whom the Software is
17-# furnished to do so, subject to the following conditions:
18-#
19-# The above copyright notice and this permission notice shall be included in
20-# all copies or substantial portions of the Software.
21-#
22-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
25-# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26-# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
27-# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28-#
29-# Except as contained in this notice, the name of the X Consortium shall not
30-# be used in advertising or otherwise to promote the sale, use or other deal-
31-# ings in this Software without prior written authorization from the X Consor-
32-# tium.
33-#
34-#
35-# FSF changes to this file are in the public domain.
36-#
37-# Calling this script install-sh is preferred over install.sh, to prevent
38-# `make' implicit rules from creating a file called install from it
39-# when there is no Makefile.
40-#
41-# This script is compatible with the BSD install script, but was written
42-# from scratch. It can only install one file at a time, a restriction
43-# shared with many OS's install programs.
44-
45-# set DOITPROG to echo to test this script
46-
47-# Don't use :- since 4.3BSD and earlier shells don't like it.
48-doit="${DOITPROG-}"
49-
50-# put in absolute paths if you don't have them in your path; or use env. vars.
51-
52-mvprog="${MVPROG-mv}"
53-cpprog="${CPPROG-cp}"
54-chmodprog="${CHMODPROG-chmod}"
55-chownprog="${CHOWNPROG-chown}"
56-chgrpprog="${CHGRPPROG-chgrp}"
57-stripprog="${STRIPPROG-strip}"
58-rmprog="${RMPROG-rm}"
59-mkdirprog="${MKDIRPROG-mkdir}"
60-
61-chmodcmd="$chmodprog 0755"
62-chowncmd=
63-chgrpcmd=
64-stripcmd=
65-rmcmd="$rmprog -f"
66-mvcmd="$mvprog"
67-src=
68-dst=
69-dir_arg=
70-dstarg=
71-no_target_directory=
72-
73-usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
74- or: $0 [OPTION]... SRCFILES... DIRECTORY
75- or: $0 [OPTION]... -t DIRECTORY SRCFILES...
76- or: $0 [OPTION]... -d DIRECTORIES...
77-
78-In the 1st form, copy SRCFILE to DSTFILE.
79-In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
80-In the 4th, create DIRECTORIES.
81-
82-Options:
83--c (ignored)
84--d create directories instead of installing files.
85--g GROUP $chgrpprog installed files to GROUP.
86--m MODE $chmodprog installed files to MODE.
87--o USER $chownprog installed files to USER.
88--s $stripprog installed files.
89--t DIRECTORY install into DIRECTORY.
90--T report an error if DSTFILE is a directory.
91---help display this help and exit.
92---version display version info and exit.
93-
94-Environment variables override the default commands:
95- CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
96-"
97-
98-while test -n "$1"; do
99- case $1 in
100- -c) shift
101- continue;;
102-
103- -d) dir_arg=true
104- shift
105- continue;;
106-
107- -g) chgrpcmd="$chgrpprog $2"
108- shift
109- shift
110- continue;;
111-
112- --help) echo "$usage"; exit $?;;
113-
114- -m) chmodcmd="$chmodprog $2"
115- shift
116- shift
117- continue;;
118-
119- -o) chowncmd="$chownprog $2"
120- shift
121- shift
122- continue;;
123-
124- -s) stripcmd=$stripprog
125- shift
126- continue;;
127-
128- -t) dstarg=$2
129- shift
130- shift
131- continue;;
132-
133- -T) no_target_directory=true
134- shift
135- continue;;
136-
137- --version) echo "$0 $scriptversion"; exit $?;;
138-
139- *) # When -d is used, all remaining arguments are directories to create.
140- # When -t is used, the destination is already specified.
141- test -n "$dir_arg$dstarg" && break
142- # Otherwise, the last argument is the destination. Remove it from $@.
143- for arg
144- do
145- if test -n "$dstarg"; then
146- # $@ is not empty: it contains at least $arg.
147- set fnord "$@" "$dstarg"
148- shift # fnord
149- fi
150- shift # arg
151- dstarg=$arg
152- done
153- break;;
154- esac
155-done
156-
157-if test -z "$1"; then
158- if test -z "$dir_arg"; then
159- echo "$0: no input file specified." >&2
160- exit 1
161- fi
162- # It's OK to call `install-sh -d' without argument.
163- # This can happen when creating conditional directories.
164- exit 0
165-fi
166-
167-for src
168-do
169- # Protect names starting with `-'.
170- case $src in
171- -*) src=./$src ;;
172- esac
173-
174- if test -n "$dir_arg"; then
175- dst=$src
176- src=
177-
178- if test -d "$dst"; then
179- mkdircmd=:
180- chmodcmd=
181- else
182- mkdircmd=$mkdirprog
183- fi
184- else
185- # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
186- # might cause directories to be created, which would be especially bad
187- # if $src (and thus $dsttmp) contains '*'.
188- if test ! -f "$src" && test ! -d "$src"; then
189- echo "$0: $src does not exist." >&2
190- exit 1
191- fi
192-
193- if test -z "$dstarg"; then
194- echo "$0: no destination specified." >&2
195- exit 1
196- fi
197-
198- dst=$dstarg
199- # Protect names starting with `-'.
200- case $dst in
201- -*) dst=./$dst ;;
202- esac
203-
204- # If destination is a directory, append the input filename; won't work
205- # if double slashes aren't ignored.
206- if test -d "$dst"; then
207- if test -n "$no_target_directory"; then
208- echo "$0: $dstarg: Is a directory" >&2
209- exit 1
210- fi
211- dst=$dst/`basename "$src"`
212- fi
213- fi
214-
215- # This sed command emulates the dirname command.
216- dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
217-
218- # Make sure that the destination directory exists.
219-
220- # Skip lots of stat calls in the usual case.
221- if test ! -d "$dstdir"; then
222- defaultIFS='
223- '
224- IFS="${IFS-$defaultIFS}"
225-
226- oIFS=$IFS
227- # Some sh's can't handle IFS=/ for some reason.
228- IFS='%'
229- set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
230- shift
231- IFS=$oIFS
232-
233- pathcomp=
234-
235- while test $# -ne 0 ; do
236- pathcomp=$pathcomp$1
237- shift
238- if test ! -d "$pathcomp"; then
239- $mkdirprog "$pathcomp"
240- # mkdir can fail with a `File exist' error in case several
241- # install-sh are creating the directory concurrently. This
242- # is OK.
243- test -d "$pathcomp" || exit
244- fi
245- pathcomp=$pathcomp/
246- done
247- fi
248-
249- if test -n "$dir_arg"; then
250- $doit $mkdircmd "$dst" \
251- && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
252- && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
253- && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
254- && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
255-
256- else
257- dstfile=`basename "$dst"`
258-
259- # Make a couple of temp file names in the proper directory.
260- dsttmp=$dstdir/_inst.$$_
261- rmtmp=$dstdir/_rm.$$_
262-
263- # Trap to clean up those temp files at exit.
264- trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
265- trap '(exit $?); exit' 1 2 13 15
266-
267- # Copy the file name to the temp name.
268- $doit $cpprog "$src" "$dsttmp" &&
269-
270- # and set any options; do chmod last to preserve setuid bits.
271- #
272- # If any of these fail, we abort the whole thing. If we want to
273- # ignore errors from any of these, just make sure not to ignore
274- # errors from the above "$doit $cpprog $src $dsttmp" command.
275- #
276- { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
277- && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
278- && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
279- && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
280-
281- # Now rename the file to the real destination.
282- { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
283- || {
284- # The rename failed, perhaps because mv can't rename something else
285- # to itself, or perhaps because mv is so ancient that it does not
286- # support -f.
287-
288- # Now remove or move aside any old file at destination location.
289- # We try this two ways since rm can't unlink itself on some
290- # systems and the destination file might be busy for other
291- # reasons. In this case, the final cleanup might fail but the new
292- # file should still install successfully.
293- {
294- if test -f "$dstdir/$dstfile"; then
295- $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
296- || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
297- || {
298- echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
299- (exit 1); exit 1
300- }
301- else
302- :
303- fi
304- } &&
305-
306- # Now rename the file to the real destination.
307- $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
308- }
309- }
310- fi || { (exit 1); exit 1; }
311-done
312-
313-# The final little trick to "correctly" pass the exit status to the exit trap.
314-{
315- (exit 0); exit 0
316-}
317-
318-# Local variables:
319-# eval: (add-hook 'write-file-hooks 'time-stamp)
320-# time-stamp-start: "scriptversion="
321-# time-stamp-format: "%:y-%02m-%02d.%02H"
322-# time-stamp-end: "$"
323-# End:
diff -r 37a129a4a6e9 -r 27a51b3e76ea missing
--- a/missing Fri Jun 25 17:26:20 2010 +0900
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,360 +0,0 @@
1-#! /bin/sh
2-# Common stub for a few missing GNU programs while installing.
3-
4-scriptversion=2005-06-08.21
5-
6-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
7-# Free Software Foundation, Inc.
8-# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
9-
10-# This program is free software; you can redistribute it and/or modify
11-# it under the terms of the GNU General Public License as published by
12-# the Free Software Foundation; either version 2, or (at your option)
13-# any later version.
14-
15-# This program is distributed in the hope that it will be useful,
16-# but WITHOUT ANY WARRANTY; without even the implied warranty of
17-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18-# GNU General Public License for more details.
19-
20-# You should have received a copy of the GNU General Public License
21-# along with this program; if not, write to the Free Software
22-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
23-# 02110-1301, USA.
24-
25-# As a special exception to the GNU General Public License, if you
26-# distribute this file as part of a program that contains a
27-# configuration script generated by Autoconf, you may include it under
28-# the same distribution terms that you use for the rest of that program.
29-
30-if test $# -eq 0; then
31- echo 1>&2 "Try \`$0 --help' for more information"
32- exit 1
33-fi
34-
35-run=:
36-
37-# In the cases where this matters, `missing' is being run in the
38-# srcdir already.
39-if test -f configure.ac; then
40- configure_ac=configure.ac
41-else
42- configure_ac=configure.in
43-fi
44-
45-msg="missing on your system"
46-
47-case "$1" in
48---run)
49- # Try to run requested program, and just exit if it succeeds.
50- run=
51- shift
52- "$@" && exit 0
53- # Exit code 63 means version mismatch. This often happens
54- # when the user try to use an ancient version of a tool on
55- # a file that requires a minimum version. In this case we
56- # we should proceed has if the program had been absent, or
57- # if --run hadn't been passed.
58- if test $? = 63; then
59- run=:
60- msg="probably too old"
61- fi
62- ;;
63-
64- -h|--h|--he|--hel|--help)
65- echo "\
66-$0 [OPTION]... PROGRAM [ARGUMENT]...
67-
68-Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
69-error status if there is no known handling for PROGRAM.
70-
71-Options:
72- -h, --help display this help and exit
73- -v, --version output version information and exit
74- --run try to run the given command, and emulate it if it fails
75-
76-Supported PROGRAM values:
77- aclocal touch file \`aclocal.m4'
78- autoconf touch file \`configure'
79- autoheader touch file \`config.h.in'
80- automake touch all \`Makefile.in' files
81- bison create \`y.tab.[ch]', if possible, from existing .[ch]
82- flex create \`lex.yy.c', if possible, from existing .c
83- help2man touch the output file
84- lex create \`lex.yy.c', if possible, from existing .c
85- makeinfo touch the output file
86- tar try tar, gnutar, gtar, then tar without non-portable flags
87- yacc create \`y.tab.[ch]', if possible, from existing .[ch]
88-
89-Send bug reports to <bug-automake@gnu.org>."
90- exit $?
91- ;;
92-
93- -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
94- echo "missing $scriptversion (GNU Automake)"
95- exit $?
96- ;;
97-
98- -*)
99- echo 1>&2 "$0: Unknown \`$1' option"
100- echo 1>&2 "Try \`$0 --help' for more information"
101- exit 1
102- ;;
103-
104-esac
105-
106-# Now exit if we have it, but it failed. Also exit now if we
107-# don't have it and --version was passed (most likely to detect
108-# the program).
109-case "$1" in
110- lex|yacc)
111- # Not GNU programs, they don't have --version.
112- ;;
113-
114- tar)
115- if test -n "$run"; then
116- echo 1>&2 "ERROR: \`tar' requires --run"
117- exit 1
118- elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
119- exit 1
120- fi
121- ;;
122-
123- *)
124- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
125- # We have it, but it failed.
126- exit 1
127- elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
128- # Could not run --version or --help. This is probably someone
129- # running `$TOOL --version' or `$TOOL --help' to check whether
130- # $TOOL exists and not knowing $TOOL uses missing.
131- exit 1
132- fi
133- ;;
134-esac
135-
136-# If it does not exist, or fails to run (possibly an outdated version),
137-# try to emulate it.
138-case "$1" in
139- aclocal*)
140- echo 1>&2 "\
141-WARNING: \`$1' is $msg. You should only need it if
142- you modified \`acinclude.m4' or \`${configure_ac}'. You might want
143- to install the \`Automake' and \`Perl' packages. Grab them from
144- any GNU archive site."
145- touch aclocal.m4
146- ;;
147-
148- autoconf)
149- echo 1>&2 "\
150-WARNING: \`$1' is $msg. You should only need it if
151- you modified \`${configure_ac}'. You might want to install the
152- \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
153- archive site."
154- touch configure
155- ;;
156-
157- autoheader)
158- echo 1>&2 "\
159-WARNING: \`$1' is $msg. You should only need it if
160- you modified \`acconfig.h' or \`${configure_ac}'. You might want
161- to install the \`Autoconf' and \`GNU m4' packages. Grab them
162- from any GNU archive site."
163- files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
164- test -z "$files" && files="config.h"
165- touch_files=
166- for f in $files; do
167- case "$f" in
168- *:*) touch_files="$touch_files "`echo "$f" |
169- sed -e 's/^[^:]*://' -e 's/:.*//'`;;
170- *) touch_files="$touch_files $f.in";;
171- esac
172- done
173- touch $touch_files
174- ;;
175-
176- automake*)
177- echo 1>&2 "\
178-WARNING: \`$1' is $msg. You should only need it if
179- you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
180- You might want to install the \`Automake' and \`Perl' packages.
181- Grab them from any GNU archive site."
182- find . -type f -name Makefile.am -print |
183- sed 's/\.am$/.in/' |
184- while read f; do touch "$f"; done
185- ;;
186-
187- autom4te)
188- echo 1>&2 "\
189-WARNING: \`$1' is needed, but is $msg.
190- You might have modified some files without having the
191- proper tools for further handling them.
192- You can get \`$1' as part of \`Autoconf' from any GNU
193- archive site."
194-
195- file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
196- test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
197- if test -f "$file"; then
198- touch $file
199- else
200- test -z "$file" || exec >$file
201- echo "#! /bin/sh"
202- echo "# Created by GNU Automake missing as a replacement of"
203- echo "# $ $@"
204- echo "exit 0"
205- chmod +x $file
206- exit 1
207- fi
208- ;;
209-
210- bison|yacc)
211- echo 1>&2 "\
212-WARNING: \`$1' $msg. You should only need it if
213- you modified a \`.y' file. You may need the \`Bison' package
214- in order for those modifications to take effect. You can get
215- \`Bison' from any GNU archive site."
216- rm -f y.tab.c y.tab.h
217- if [ $# -ne 1 ]; then
218- eval LASTARG="\${$#}"
219- case "$LASTARG" in
220- *.y)
221- SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
222- if [ -f "$SRCFILE" ]; then
223- cp "$SRCFILE" y.tab.c
224- fi
225- SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
226- if [ -f "$SRCFILE" ]; then
227- cp "$SRCFILE" y.tab.h
228- fi
229- ;;
230- esac
231- fi
232- if [ ! -f y.tab.h ]; then
233- echo >y.tab.h
234- fi
235- if [ ! -f y.tab.c ]; then
236- echo 'main() { return 0; }' >y.tab.c
237- fi
238- ;;
239-
240- lex|flex)
241- echo 1>&2 "\
242-WARNING: \`$1' is $msg. You should only need it if
243- you modified a \`.l' file. You may need the \`Flex' package
244- in order for those modifications to take effect. You can get
245- \`Flex' from any GNU archive site."
246- rm -f lex.yy.c
247- if [ $# -ne 1 ]; then
248- eval LASTARG="\${$#}"
249- case "$LASTARG" in
250- *.l)
251- SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
252- if [ -f "$SRCFILE" ]; then
253- cp "$SRCFILE" lex.yy.c
254- fi
255- ;;
256- esac
257- fi
258- if [ ! -f lex.yy.c ]; then
259- echo 'main() { return 0; }' >lex.yy.c
260- fi
261- ;;
262-
263- help2man)
264- echo 1>&2 "\
265-WARNING: \`$1' is $msg. You should only need it if
266- you modified a dependency of a manual page. You may need the
267- \`Help2man' package in order for those modifications to take
268- effect. You can get \`Help2man' from any GNU archive site."
269-
270- file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
271- if test -z "$file"; then
272- file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
273- fi
274- if [ -f "$file" ]; then
275- touch $file
276- else
277- test -z "$file" || exec >$file
278- echo ".ab help2man is required to generate this page"
279- exit 1
280- fi
281- ;;
282-
283- makeinfo)
284- echo 1>&2 "\
285-WARNING: \`$1' is $msg. You should only need it if
286- you modified a \`.texi' or \`.texinfo' file, or any other file
287- indirectly affecting the aspect of the manual. The spurious
288- call might also be the consequence of using a buggy \`make' (AIX,
289- DU, IRIX). You might want to install the \`Texinfo' package or
290- the \`GNU make' package. Grab either from any GNU archive site."
291- # The file to touch is that specified with -o ...
292- file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
293- if test -z "$file"; then
294- # ... or it is the one specified with @setfilename ...
295- infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
296- file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile`
297- # ... or it is derived from the source name (dir/f.texi becomes f.info)
298- test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
299- fi
300- # If the file does not exist, the user really needs makeinfo;
301- # let's fail without touching anything.
302- test -f $file || exit 1
303- touch $file
304- ;;
305-
306- tar)
307- shift
308-
309- # We have already tried tar in the generic part.
310- # Look for gnutar/gtar before invocation to avoid ugly error
311- # messages.
312- if (gnutar --version > /dev/null 2>&1); then
313- gnutar "$@" && exit 0
314- fi
315- if (gtar --version > /dev/null 2>&1); then
316- gtar "$@" && exit 0
317- fi
318- firstarg="$1"
319- if shift; then
320- case "$firstarg" in
321- *o*)
322- firstarg=`echo "$firstarg" | sed s/o//`
323- tar "$firstarg" "$@" && exit 0
324- ;;
325- esac
326- case "$firstarg" in
327- *h*)
328- firstarg=`echo "$firstarg" | sed s/h//`
329- tar "$firstarg" "$@" && exit 0
330- ;;
331- esac
332- fi
333-
334- echo 1>&2 "\
335-WARNING: I can't seem to be able to run \`tar' with the given arguments.
336- You may want to install GNU tar or Free paxutils, or check the
337- command line arguments."
338- exit 1
339- ;;
340-
341- *)
342- echo 1>&2 "\
343-WARNING: \`$1' is needed, and is $msg.
344- You might have modified some files without having the
345- proper tools for further handling them. Check the \`README' file,
346- it often tells you about the needed prerequisites for installing
347- this package. You may also peek at any GNU archive site, in case
348- some other package would contain this missing \`$1' program."
349- exit 1
350- ;;
351-esac
352-
353-exit 0
354-
355-# Local variables:
356-# eval: (add-hook 'write-file-hooks 'time-stamp)
357-# time-stamp-start: "scriptversion="
358-# time-stamp-format: "%:y-%02m-%02d.%02H"
359-# time-stamp-end: "$"
360-# End:
diff -r 37a129a4a6e9 -r 27a51b3e76ea pm_logconv.cf
--- a/pm_logconv.cf Fri Jun 25 17:26:20 2010 +0900
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,292 +0,0 @@
1-#
2-# pm_logconv.cf : Config file of pm_logconv for Pacemaker and Corosync
3-#
4-# support version
5-# Pacemaker : stable-1.0 (1.0.7 or more)
6-# Corosync : stable-1 (1.2.0 or more)
7-#
8-[Settings]
9-#ha_log_path = /var/log/ha-log
10-#output_path = /var/log/pm_logconv.out
11-#syslogformat = True
12-# "reset_interval" must be an integer value in second. (default: 60)
13-# The default value is used when an invalid value was specified.
14-#reset_interval = 60
15-#attribute_pingd = default_ping_set, lt, 100
16-#attribute_diskd = diskcheck_status, eq, ERROR
17-#attribute_diskd_inner = diskcheck_status_internal, eq, ERROR
18-#logconv_logfacility = daemon
19-#act_rsc = prmExPostgreSQLDB, prmApPostgreSQLDB
20-
21-###
22-# For Resource event.
23-###
24-#MsgNo.1-1, 2-1, 4-1, 5-1, 17-1, 18-1
25-[Resource tries to operation]
26-pattern_start=crmd,info:,do_lrm_rsc_op: Performing key,op,start
27-pattern_stop=crmd,info:,do_lrm_rsc_op: Performing key,op,stop
28-pattern_promote=crmd,info:,do_lrm_rsc_op:,Performing key, op,promote
29-pattern_demote=crmd,info:,do_lrm_rsc_op:,Performing key,op,demote
30-func=try_to_operate
31-
32-#MsgNo.1-2, 2-2, 4-2, 5-2, 17-2, 18-2
33-[Resource operation succeeded]
34-pattern_start=crmd,info:,process_lrm_event:,LRM operation,start,rc=0,!status=,ok
35-pattern_stop=crmd,info:,process_lrm_event:,LRM operation,stop,rc=0,!status=,ok
36-pattern_promote=crmd,info:,process_lrm_event,LRM operation,promote,rc=0,!status=,ok
37-pattern_demote=crmd,info:,process_lrm_event,LRM operation,demote,rc=0,!status=,ok
38-func=operation_succeeded
39-
40-#MsgNo.1-3, 2-3, 3-1, 4-3, 5-3, 17-3, 19-1
41-[Resource operation failed]
42-pattern_start=crmd,info:,process_lrm_event:,LRM operation,start,!rc=0,!status=
43-pattern_stop=crmd,info:,process_lrm_event:,LRM operation,stop,!rc=0,!status=
44-pattern_monitor=crmd,info:,process_lrm_event:,LRM operation,monitor,!monitor_0,!rc=0,!rc=8,!rc=7,!status=
45-pattern_promote=crmd,info:,process_lrm_event:,LRM operation,promote,!rc=0,!status=
46-pattern_demote=crmd,info:,process_lrm_event:,LRM operation,demote,!rc=0,!status=
47-func=operation_failed
48-loglevel=ERROR
49-
50-#MsgNo.1-4, 2-4, 3-3, 4-4, 5-4
51-[OCF resource operation timedout]
52-pattern_start=crmd,ERROR:,process_lrm_event:,LRM operation,start,!status=,Timed Out
53-pattern_stop=crmd,ERROR:,process_lrm_event:,LRM operation,stop,!status=,Timed Out
54-pattern_monitor=crmd,ERROR:,process_lrm_event:,LRM operation,monitor,!monitor_0,!status=,Timed Out
55-pattern_promote=crmd,ERROR:,process_lrm_event,LRM operation,promote,!status=,Timed Out
56-pattern_demote=crmd,ERROR:,process_lrm_event,LRM operation,demote,!status=,Timed Out
57-func=operation_timedout_ocf
58-
59-#MsgNo.3-2, 19-2
60-[Resource failure]
61-pattern_monitor_rcs=crmd,info:,process_lrm_event:,LRM operation,monitor,!monitor_0,rc=7,!status=
62-pattern_monitor_stonith=crmd,info:,process_lrm_event:,LRM operation,monitor,!monitor_0,rc=7,!status=
63-func=detect_rsc_failure
64-loglevel=ERROR
65-
66-###
67-# For Node status event.
68-##
69-#MsgNo.6-1, 6-2
70-[Node status updated]
71-pattern_lost=crmd,info:,ais_status_callback:,status:,is now lost
72-pattern_member=crmd,info:,ais_status_callback:,status:,is now member
73-func=node_status_updated
74-
75-###
76-# For Interconnect-LAN status event
77-# and Network status event (detected by pingd).
78-###
79-#MsgNo.7-1
80-[Interconnect-LAN status dead]
81-pattern=corosync,,Marking seqid,ringid,interface,FAULTY
82-func=detect_iconnlan_dead
83-loglevel=WARN
84-
85-#MsgNo.8-1
86-[Network status dead]
87-pattern=pingd,info:,stand_alone_ping:,is unreachable
88-func=detect_node_dead
89-loglevel=ERROR
90-
91-###
92-# For Disk status event (detected by diskd).
93-###
94-#MsgNo.9-1
95-[Detect disk error]
96-pattern=diskd,WARN:,check_status:,disk status is changed,new_status,ERROR
97-func=detect_disk_error
98-loglevel=ERROR
99-
100-###
101-# For Fail Over. These are only for DC node.
102-##
103-#MsgNo.F0-1, F9-1, F10-1
104-[Detect calculation starts]
105-pattern=crmd,info:,do_state_transition:,State transition,-> S_POLICY_ENGINE,!I_SHUTDOWN
106-func=detect_pe_calc
107-loglevel=WARN
108-
109-#MsgNo.F0-2, F12-1, F12-2
110-[FailOver complete]
111-pattern=crmd,info:,do_state_transition:,State transition,-> S_IDLE
112-func=detect_fo_complete
113-loglevel=WARN
114-
115-#MsgNo.F1-1, F1-2, F2-1, F2-2, F3-1, F3-2, F4-1, F4-2, F6-1, F6-2
116-[Action failure]
117-pattern=crmd,WARN:,update_failcount:,Updating failcount for
118-func=dc_detect_failure
119-loglevel=WARN
120-fotrigger=1
121-
122-#MsgNo.F7-1, F7-2, F7-3, F7-4, F8-1
123-[Node failure]
124-pattern_shut=crmd,WARN:,match_down_event:,No match for shutdown action on
125-func=dc_detect_node_failure
126-fotrigger=3
127-
128-#MsgNo.F11-1
129-#The message is not output immediately, output when F/O is complete.
130-[Add Resource start action]
131-pattern=pengine,notice:,LogActions: Start
132-func=add_rsc_start
133-
134-#MsgNo.F11-2
135-#The message is not output immediately, output when F/O is complete.
136-[Add Resource stop action]
137-pattern=pengine,notice:,LogActions: Stop resource
138-func=add_rsc_stop
139-
140-#MsgNo.F11-3, F11-8, F11-9
141-#The message is not output immediately, output when F/O is complete.
142-[Add no action]
143-pattern_leave_start=pengine,notice:,LogActions: Leave resource
144-pattern_restart=pengine,notice:,LogActions: Restart resource
145-func=add_no_action
146-
147-#MsgNo.F11-4
148-#The message is not output immediately, output when F/O is complete.
149-[Resource cannot run anywhere]
150-pattern=pengine,WARN:,native_color:,Resource,cannot run anywhere
151-func=detect_cannot_run_anywhere
152-
153-#MsgNo.F11-5
154-#The message is not output immediately, output when F/O is complete.
155-[Detect resource unmanaged]
156-pattern=pengine,info:,native_color:,Unmanaged resource,allocated to
157-func=detect_rsc_unmanaged
158-
159-#MsgNo.F11-6
160-#The message is not output immediately, output when F/O is complete.
161-[Add Resource move action]
162-pattern=pengine,notice:,LogActions: Move resource
163-func=add_rsc_move
164-
165-###
166-# For DC election.
167-###
168-#Msg No.13-2
169-[DC election is complete]
170-pattern=crmd,info:,update_dc:,Set DC to
171-func=dc_election_complete
172-
173-#Msg No.13-5
174-[Detect unset DC]
175-pattern=crmd,info:,update_dc:,Unset DC
176-func=detect_unset_dc
177-
178-###
179-# For Corosync service shutdown.
180-###
181-#Msg No.14-1 (only for DC)
182-[Corosync on the node in the cluster want to shutdown]
183-pattern=crmd,info:,handle_shutdown_request:,Creating shutdown request for
184-func=detect_shutdown_request
185-
186-#Msg No.14-2
187-[Corosync shutdown complete.]
188-pattern=corosync,,Corosync Cluster Engine exiting with status
189-func=detect_cs_shutdown
190-
191-#Msg No.14-3
192-[Pacemaker is shutting down.]
193-pattern=crmd,info:,crm_shutdown: Requesting shutdown
194-func=detect_pcmk_shutting_down
195-
196-#Msg No.14-4 (for DC node shutdown)
197-[DC node want to shutdown]
198-pattern=cib,info:,cib_process_shutdown_req:,Shutdown REQ from
199-func=detect_dc_shutdown_request
200-
201-###
202-# For STONITH resource operation timed out.
203-###
204-#For Msg No.17-4
205-#The message is not output immediately, output when operation complete.
206-[Resource operation timed out for lrmd]
207-pattern=lrmd,WARN:,process,timed out,try,Killing with signal
208-func=detect_rscop_timedout_lrmd
209-
210-#For Msg No.19-3
211-#The message is not output immediately, output when operation complete.
212-[Resource operation timed out for stonith]
213-pattern=stonithd,WARN:,process,timed out,try,Killing with signal
214-func=detect_rscop_timedout_stonithd
215-
216-###
217-# For fence operation.
218-###
219-#Msg No.20-1, No21-1
220-[fence operation start]
221-pattern=stonithd,info:,stonith_operate_locally,sending fencing op,for,to
222-func=fence_op_started
223-
224-#Msg No.20-2
225-[fence operation succeeded]
226-pattern=stonithd,info:,Succeeded to STONITH the node
227-func=fence_op_succeeded
228-
229-#Msg No.20-3, 21-3
230-[fence operation failed]
231-pattern=stonithd,info:,failed to STONITH node,with local device
232-func=fence_op_failed
233-loglevel=ERROR
234-
235-#Msg No.20-4, 21-4
236-[fence operation timedout]
237-pattern=stonithd,ERROR:,Failed to STONITH the node,optype,op_result,TIMEOUT
238-func=fence_op_timedout
239-
240-###
241-# For attribute event.
242-###
243-#Msg No.22-1
244-[Detect attribute updated]
245-pattern=attrd,info:,attrd_perform_update:,Sent update,!fail-count-,!last-failure-,!probe_complete,!shutdown
246-func=detect_attr_updated
247-
248-#Msg No.22-2
249-[Detect attribute deleted]
250-pattern=attrd,info:,attrd_perform_update:,Sent delete,!delete -,!fail-count-,!last-failure-,!probe_complete,!shutdown
251-func=detect_attr_deleted
252-
253-###
254-# For Corosync service starts.
255-###
256-#Msg No.23-1
257-[Detect Corosync is starting]
258-pattern=corosync,,Corosync Cluster Engine,started and ready to provide service
259-func=detect_cs_start
260-loglevel=info
261-
262-###
263-# For Pacemaker child process event.
264-###
265-#Msg No.29-3
266-[Pacemaker child process error exit]
267-pattern_exit=corosync,,pcmk_wait_dispatch:,Child process,exited
268-pattern_signal=corosync,,pcmk_wait_dispatch:,Child process,terminated with signal
269-func=pcmk_subsystem_error_exit
270-loglevel=ERROR
271-
272-###
273-# Others.
274-###
275-#Msg No.23-3
276-#It's just for clear ConvertStatus. Output nothing.
277-[Detect localhost status is set to up]
278-pattern=corosync,,pcmk_startup:,CRM:,Initialized
279-func=detect_localstat_up
280-ignoremsg=True
281-
282-#Msg No.23-4
283-[Detect Pacemaker is starting]
284-pattern=corosync,,Service engine loaded:,Pacemaker Cluster Manager
285-func=detect_pcmk_start
286-loglevel=info
287-
288-#Msg No.27-1
289-[Detect a request for getting DC node state]
290-pattern=crmd,info:,handle_request:,Current ping state:
291-func=detect_dcstat_req
292-ignoremsg=True
diff -r 37a129a4a6e9 -r 27a51b3e76ea pm_logconv.conf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/pm_logconv.conf Thu Feb 09 09:14:02 2012 +0900
@@ -0,0 +1,369 @@
1+#
2+# pm_logconv.conf : Config file of pm_logconv for Pacemaker and Corosync
3+#
4+# support version
5+# Pacemaker : stable-1.1 (1.1.5 or more)
6+# Corosync : stable-1.4 (1.4.1 or more)
7+#
8+[Settings]
9+#ha_log_path = /var/log/ha-log
10+#output_path = /var/log/pm_logconv.out
11+#syslogformat = True
12+#reset_interval = 60
13+#attribute_pingd = not_defined default_ping_set or default_ping_set lt 100
14+#attribute_diskd = not_defined diskcheck_status or diskcheck_status eq ERROR
15+#attribute_diskd_inner = not_defined diskcheck_status_internal or diskcheck_status_internal eq ERROR
16+#logconv_logfacility = daemon
17+#act_rsc = prmExPostgreSQLDB, prmApPostgreSQLDB
18+
19+
20+###
21+# For Resource event.
22+###
23+#MsgNo.1-1, 2-1, 4-1, 5-1, 11-1, 12-1, 17-1, 18-1
24+[Resource tries to operation]
25+pattern_start=crmd,info:,do_lrm_rsc_op: Performing key,op,start
26+pattern_stop=crmd,info:,do_lrm_rsc_op: Performing key,op,stop
27+pattern_promote=crmd,info:,do_lrm_rsc_op:,Performing key, op,promote
28+pattern_demote=crmd,info:,do_lrm_rsc_op:,Performing key,op,demote
29+pattern_migrate_to=crmd,info:,do_lrm_rsc_op:,Performing key,op,migrate_to
30+pattern_migrate_from=crmd,info:,do_lrm_rsc_op:,Performing key,op,migrate_from
31+func=try_to_operate
32+
33+#MsgNo.1-2, 2-2, 4-2, 5-2, 11-2, 12-2, 17-2, 18-2
34+[Resource operation succeeded]
35+pattern_start=crmd,info:,process_lrm_event:,LRM operation,start,rc=0,!status=,ok
36+pattern_stop=crmd,info:,process_lrm_event:,LRM operation,stop,rc=0,!status=,ok
37+pattern_promote=crmd,info:,process_lrm_event,LRM operation,promote,rc=0,!status=,ok
38+pattern_demote=crmd,info:,process_lrm_event,LRM operation,demote,rc=0,!status=,ok
39+pattern_migrate_to=crmd,info:,process_lrm_event,LRM operation,migrate_to,rc=0,!status=,ok
40+pattern_migrate_from=crmd,info:,process_lrm_event,LRM operation,migrate_from,rc=0,!status=,ok
41+func=operation_succeeded
42+
43+#MsgNo.1-3, 2-3, 3-1, 4-3, 5-3, 11-3, 12-3, 17-3, 19-1
44+[Resource operation failed]
45+pattern_start=crmd,info:,process_lrm_event:,LRM operation,start,!rc=0,!status=
46+pattern_stop=crmd,info:,process_lrm_event:,LRM operation,stop,!rc=0,!status=
47+pattern_monitor=crmd,info:,process_lrm_event:,LRM operation,monitor,!monitor_0,!rc=0,!rc=8,!rc=7,!status=
48+pattern_promote=crmd,info:,process_lrm_event:,LRM operation,promote,!rc=0,!status=
49+pattern_demote=crmd,info:,process_lrm_event:,LRM operation,demote,!rc=0,!status=
50+pattern_migrate_to=crmd,info:,process_lrm_event:,LRM operation,migrate_to,!rc=0,!status=
51+pattern_migrate_from=crmd,info:,process_lrm_event:,LRM operation,migrate_from,!rc=0,!status=
52+func=operation_failed
53+loglevel=ERROR
54+
55+#MsgNo.1-4, 2-4, 3-3, 4-4, 5-4, 11-4, 12-4
56+[OCF resource operation timedout]
57+pattern_start=crmd,ERROR:,process_lrm_event:,LRM operation,start,!status=,Timed Out
58+pattern_stop=crmd,ERROR:,process_lrm_event:,LRM operation,stop,!status=,Timed Out
59+pattern_monitor=crmd,ERROR:,process_lrm_event:,LRM operation,monitor,!monitor_0,!status=,Timed Out
60+pattern_promote=crmd,ERROR:,process_lrm_event,LRM operation,promote,!status=,Timed Out
61+pattern_demote=crmd,ERROR:,process_lrm_event,LRM operation,demote,!status=,Timed Out
62+pattern_migrate_to=crmd,ERROR:,process_lrm_event,LRM operation,migrate_to,!status=,Timed Out
63+pattern_migrate_from=crmd,ERROR:,process_lrm_event,LRM operation,migrate_from,!status=,Timed Out
64+func=operation_timedout_ocf
65+
66+#MsgNo.3-2
67+[Resource failure]
68+pattern=crmd,info:,process_lrm_event:,LRM operation,monitor,!monitor_0,rc=7,!status=
69+func=detect_rsc_failure
70+loglevel=ERROR
71+
72+###
73+# For Node status event.
74+##
75+#MsgNo.6-1, 6-2
76+[Node status updated]
77+pattern_lost=crmd,info:,ais_status_callback:,status:,is now lost
78+pattern_member=crmd,info:,ais_status_callback:,status:,is now member
79+func=node_status_updated
80+
81+#MsgNo.6-3
82+[Node status determined]
83+pattern=pengine,determine_online_status,Node,is
84+func=node_status_determined
85+
86+#MsgNo.6-4
87+[Node status offline]
88+pattern=crmd,notice:,crmd_peer_update:,Status update: Client,now has status,offline
89+func=node_status_offline
90+
91+###
92+# For Interconnect-LAN status event
93+# and Network status event (detected by pingd).
94+###
95+#MsgNo.7-1
96+[Interconnect-LAN status dead]
97+pattern=corosync,,Marking seqid,ringid,interface,FAULTY
98+func=detect_iconnlan_dead
99+loglevel=WARN
100+
101+#MsgNo.8-1
102+[Network status dead]
103+pattern=ping,WARNING:,is inactive:
104+func=detect_node_dead
105+loglevel=ERROR
106+
107+###
108+# For Disk status event (detected by diskd).
109+###
110+#MsgNo.9-1
111+[Detect disk error]
112+pattern=diskd,WARN:,check_status:,disk status is changed,new_status,ERROR
113+func=detect_disk_error
114+loglevel=ERROR
115+
116+###
117+# For respawn process event.
118+###
119+#MsgNo.10-1
120+[Respawn process starts]
121+pattern=info:,_child:,Forked child,for process
122+func=respawn_start
123+
124+#MsgNo.10-2
125+[Respawn process exited abnormally]
126+pattern=ERROR:,pcmk_,Child process,exited,pid=,!rc=0
127+func=respawn_exited_abnormally
128+loglevel=WARN
129+
130+#MsgNo.10-3
131+[Respawn process killed]
132+pattern=pcmk_,Child process,terminated with signal
133+func=respawn_killed
134+loglevel=WARN
135+
136+#MsgNo.10-6
137+[Respawn process exited normally]
138+pattern=pacemakerd,notice:,pcmk_child_exit:,Child process,exited,pid=,rc=0
139+pattern_ver0=corosync,notice:,pcmk_shutdown:,confirmed stopped
140+func=respawn_exited_normally
141+loglevel=info
142+
143+#MsgNo.10-7
144+[Respawning too fast in a short term]
145+pattern=ERROR:,pcmk_,Child respawn count exceeded by
146+func=respawn_too_fast
147+loglevel=ERROR
148+
149+###
150+# For Fail Over. These are only for DC node.
151+##
152+#MsgNo.F0-1, F9-1, F10-1
153+[Detect calculation starts]
154+pattern=crmd,info:,do_state_transition:,State transition,S_IDLE -> S_POLICY_ENGINE,!I_SHUTDOWN
155+func=detect_pe_calc
156+loglevel=WARN
157+
158+#MsgNo.F0-2, F12-1, F12-2
159+[FailOver complete]
160+pattern_idle=crmd,info:,do_state_transition:,State transition,-> S_IDLE
161+pattern_stopping=crmd,info:,do_state_transition:,State transition,-> S_STOPPING
162+func=detect_fo_complete
163+loglevel=WARN
164+
165+#MsgNo.F0-3
166+[Node is not DC]
167+pattern=crmd,info:,do_state_transition:,State transition,-> S_NOT_DC
168+func=detect_not_dc
169+
170+#MsgNo.F1-1, F1-2, F2-1, F2-2, F3-1, F3-2, F4-1, F4-2, F6-1, F6-2
171+[Action failure]
172+pattern=crmd,WARN:,update_failcount:,Updating failcount for
173+func=dc_detect_failure
174+loglevel=WARN
175+fotrigger=1
176+
177+#MsgNo.F7-1, F7-2, F7-3, F7-4, F8-1
178+[Node failure]
179+pattern_shut=crmd,WARN:,match_down_event:,No match for shutdown action on
180+func=dc_detect_node_failure
181+fotrigger=3
182+
183+#MsgNo.F11-1
184+#The message is not output immediately, output when F/O is complete.
185+[Add Resource start action]
186+pattern=pengine,notice:,LogActions: Start
187+func=add_rsc_start
188+
189+#MsgNo.F11-2
190+#The message is not output immediately, output when F/O is complete.
191+[Add Resource stop action]
192+pattern=pengine,notice:,LogActions: Stop
193+func=add_rsc_stop
194+
195+#MsgNo.F11-3, F11-5, F11-8, F11-9
196+#The message is not output immediately, output when F/O is complete.
197+[Add no action]
198+pattern_leave=pengine,notice:,LogActions: Leave
199+pattern_restart=pengine,notice:,LogActions: Restart
200+func=add_no_action
201+
202+#MsgNo.F11-6
203+#The message is not output immediately, output when F/O is complete.
204+[Add Resource move action]
205+pattern=pengine,notice:,LogActions: Move
206+func=add_rsc_move
207+
208+#MsgNo.F11-10
209+#The message is not output immediately, output when F/O is complete.
210+[Resource initiating action]
211+pattern=crmd,info:,te_rsc_command:,Initiating action,!probe_complete
212+func=rsc_init_action
213+
214+###
215+# For DC election.
216+###
217+#MsgNo.13-2
218+[DC election is complete]
219+pattern=crmd,info:,update_dc:,Set DC to
220+func=dc_election_complete
221+
222+#MsgNo.13-5
223+[Detect unset DC]
224+pattern=crmd,info:,update_dc:,Unset DC
225+func=detect_unset_dc
226+
227+###
228+# For Pacemaker and Corosync service shutdown.
229+###
230+#MsgNo.14-1
231+[Corosync is shutting down.]
232+pattern=corosync,Unloading all Corosync service engines.
233+func=output_static_msg
234+
235+#MsgNo.14-2
236+[Corosync shutdown complete.]
237+pattern=corosync,Corosync Cluster Engine exiting with status
238+func=detect_cs_shutdown
239+
240+#MsgNo.14-3
241+[Pacemaker is shutting down.]
242+pattern=notice:,pcmk_shutdown,Shuting down
243+func=output_static_msg
244+loglevel=info
245+
246+#MsgNo.14-4
247+[Pacemaker shutdown complete.]
248+pattern=notice:,pcmk_shutdown,Shutdown complete
249+func=output_static_msg
250+loglevel=info
251+
252+#MsgNo.14-5 (only for DC)
253+[Corosync on the node in the cluster want to shutdown]
254+pattern=crmd,info:,handle_shutdown_request:,Creating shutdown request for
255+func=detect_shutdown_request
256+
257+#MsgNo.14-6 (for DC node shutdown)
258+[DC node want to shutdown]
259+pattern=cib,info:,cib_process_shutdown_req:,Shutdown REQ from
260+func=detect_dc_shutdown_request
261+
262+###
263+# For logging daemon event.
264+###
265+#MsgNo.15-1
266+[Detect logd started]
267+pattern=logd,info:,logd started with
268+func=output_original_log
269+
270+#MsgNo.16-1
271+[logd is shutting down.]
272+pattern=logd,info:,logd_term_write_action:,received
273+func=output_static_msg
274+
275+#MsgNo.16-2
276+[logd stopped.]
277+pattern=logd,info:,Exiting write process
278+func=output_static_msg
279+
280+###
281+# For STONITH resource operation timed out.
282+###
283+#For MsgNo.17-4
284+#The message is not output immediately, output when operation complete.
285+[Resource operation timed out for lrmd]
286+pattern=lrmd,WARN:,process,timed out,try,Killing with signal
287+func=detect_rscop_timedout_lrmd
288+
289+#For MsgNo.19-3
290+#The message is not output immediately, output when operation complete.
291+[Resource operation timed out for stonith]
292+pattern=stonithd,WARN:,process,timed out,try,Killing with signal
293+func=detect_rscop_timedout_stonithd
294+
295+###
296+# For fence operation.
297+###
298+#MsgNo.21-1
299+[fence operation start]
300+pattern=crmd,info:,te_fence_node:,Executing,fencing operation
301+func=fence_op_started
302+
303+#MsgNo.21-2
304+[fence operation succeeded]
305+pattern=crmd,info:,tengine_stonith_notify:,was terminated
306+func=fence_op_succeeded
307+
308+#MsgNo.21-3
309+[fence operation failed]
310+pattern=crmd,ERROR:,tengine_stonith_notify:,could not be terminated,by <anyone>,
311+func=fence_op_failed
312+
313+#MsgNo.21-5
314+[executing stonith device start]
315+pattern=stonith-ng,info:,stonith_fence:,Exec,stonith_command,t="stonith-ng"
316+func=exec_st_device_started
317+
318+#MsgNo.21-6, 21-7
319+[executing stonith device completed]
320+pattern=stonith-ng,log_operation:,Operation,for host,with device,returned:
321+func=exec_st_device_completed
322+
323+###
324+# For attribute event.
325+###
326+#MsgNo.22-1
327+[Detect attribute updated]
328+pattern=attrd,notice:,attrd_perform_update:,Sent update,!fail-count-,!last-failure-,!probe_complete,!shutdown,!master-
329+func=detect_attr_updated
330+loglevel=info
331+
332+#MsgNo.22-2
333+[Detect attribute deleted]
334+pattern=attrd,notice:,attrd_perform_update:,Sent delete,!delete -,!fail-count-,!last-failure-,!probe_complete,!shutdown,!master-
335+func=detect_attr_deleted
336+loglevel=info
337+
338+#MsgNo.22-3
339+[Detect cib updated]
340+pattern=crmd,info:,abort_transition_graph:,tag=nvpair,Transient attribute: update
341+func=detect_cib_updated
342+
343+###
344+# For Corosync service starts.
345+###
346+#MsgNo.23-1
347+[Detect Corosync is starting]
348+pattern=corosync,Corosync Cluster Engine,started and ready to provide service
349+func=detect_cs_start
350+
351+#MsgNo.23-4
352+[Detect Pacemaker is starting]
353+pattern=pacemakerd,info:,main:,Starting Pacemaker
354+func=detect_pcmk_start
355+
356+#MsgNo.23-5
357+[Detect Pacemaker service is loaded]
358+pattern=corosync,Service engine loaded:,Pacemaker Cluster Manager
359+func=detect_pcmk_loaded
360+
361+###
362+# Ignore message.
363+###
364+#MsgNo.27-1, 27-2
365+[Ignore message.]
366+pattern_1=crmd,info:,handle_request:,Current ping state:
367+pattern_2=info:,attrd_lazy_update:
368+func=no_output_msg
369+ignoremsg=True
diff -r 37a129a4a6e9 -r 27a51b3e76ea pm_logconv.py
--- a/pm_logconv.py Fri Jun 25 17:26:20 2010 +0900
+++ b/pm_logconv.py Thu Feb 09 09:14:02 2012 +0900
@@ -1,13 +1,13 @@
11 #!/usr/bin/python
22 # -*- coding: utf-8 -*-
33
4-# pm_logconv : Pacemaker+Corosync log converter for Pacemaker, Corosync
4+# pm_logconv : Pacemaker and Corosync log converter
55 #
66 # support version
7-# Pacemaker : stable-1.0 (1.0.7 or more)
8-# Corosync : stable-1 (1.2.0 or more)
7+# Pacemaker : stable-1.1 (1.1.5 or more)
8+# Corosync : stable-1.4 (1.4.1 or more)
99 #
10-# Copyright (C) 2009 NIPPON TELEGRAPH AND TELEPHONE CORPORATION
10+# Copyright (C) 2011 NIPPON TELEGRAPH AND TELEPHONE CORPORATION
1111 #
1212 # This program is free software; you can redistribute it and/or modify
1313 # it under the terms of the GNU General Public License as published by
@@ -33,7 +33,7 @@
3333 #
3434 # version number of pm_logconv.
3535 #
36-VERSION = "2.00"
36+VERSION = "1.0"
3737
3838 #
3939 # system's host name.
@@ -48,7 +48,7 @@
4848 # default settings.
4949 # (when not specified with configuration file or command line option.)
5050 #
51-CONFIGFILE = "/etc/corosync/pm_logconv.cf"
51+CONFIGFILE = "/etc/pm_logconv.conf"
5252 HA_LOGFILE = "/var/log/ha-log"
5353 OUTPUTFILE = "/var/log/pm_logconv.out"
5454 SYSLOGFORMAT = True
@@ -83,6 +83,7 @@
8383 # when cluster status changes to S_POLICY_ENGINE.
8484 #
8585 attrRuleList = list()
86+attrRules = list()
8687
8788 # A list of resource-id.
8889 # If the all of specified resources are active,
@@ -108,11 +109,6 @@
108109 CMD_CRM_ATTR = "crm_attribute"
109110
110111 #
111-# command name for getting current node status of the cluster.
112-#
113-CMD_CRM_NODE = "crm_node"
114-
115-#
116112 # command name for getting DC node status.
117113 #
118114 CMD_CRMADMIN = "crmadmin"
@@ -141,14 +137,14 @@
141137
142138
143139 class LogconvLog:
144- LOG_EMERG = 0
145- LOG_ALERT = 1
146- LOG_CRIT = 2
147- LOG_ERR = 3
148- LOG_WARNING = 4
149- LOG_NOTICE = 5
150- LOG_INFO = 6
151- LOG_DEBUG = 7
140+ LOG_EMERG = 0
141+ LOG_ALERT = 1
142+ LOG_CRIT = 2
143+ LOG_ERR = 3
144+ LOG_WARNING = 4
145+ LOG_NOTICE = 5
146+ LOG_INFO = 6
147+ LOG_DEBUG = 7
152148
153149 syspriority = [ syslog.LOG_EMERG, syslog.LOG_ALERT, syslog.LOG_CRIT,
154150 syslog.LOG_ERR, syslog.LOG_WARNING, syslog.LOG_NOTICE,
@@ -309,7 +305,7 @@
309305 return False
310306
311307 if self.output == None:
312- syslog.syslog(self.syspriority[priority], "[%d]: %-7s %s" %
308+ syslog.syslog(self.syspriority[priority], "[%d]: %-7s %s" %
313309 (self.pid, self.prioritystr[priority] + ':', message.rstrip()))
314310 else:
315311 t = datetime.datetime.today()
@@ -328,10 +324,10 @@
328324 '''
329325 status of the PID file operation.
330326 '''
331- SYSTEM_ERROR = -1
332- FILE_NOTEXIST = -2
333- FILE_INVALID = -3
334- NOTRUNNING = -4
327+ SYSTEM_ERROR = -1
328+ FILE_NOTEXIST = -2
329+ FILE_INVALID = -3
330+ NOTRUNNING = -4
335331
336332 def __init__(self, path):
337333 self.path = path
@@ -400,7 +396,7 @@
400396 if pid.isdigit() and int(pid) != os.getpid():
401397 return self.is_running(int(pid), cmdline)
402398 else:
403- pm_log.warn("PIDFile.read: PID file is screwed up.")
399+ pm_log.info("PIDFile.read: PID file is screwed up.")
404400 return self.FILE_INVALID
405401 else:
406402 pm_log.info("PIDFile.read: PID file doesn't exist.")
@@ -471,7 +467,8 @@
471467 self.ACTRSC_MOVE = False
472468 self.IN_FO_PROCESS = False
473469 self.timedoutRscopSet = set()
474- self.shutNodeSet = set()
470+ self.attrDict = dict()
471+ self.nodeDict = dict()
475472
476473 cstat = ConvertStatus()
477474
@@ -498,15 +495,16 @@
498495 cstat.ACTRSC_MOVE = c.ACTRSC_MOVE
499496 cstat.IN_FO_PROCESS = c.IN_FO_PROCESS
500497 cstat.timedoutRscopSet = c.timedoutRscopSet
501- cstat.shutNodeSet = c.shutNodeSet
498+ cstat.attrDict = c.attrDict
499+ cstat.nodeDict = c.nodeDict
502500 else:
503501 pm_log.info("StatusFile.read: status file doesn't exist.")
504502 self.clear_cstat()
505503 pm_log.debug("StatusFile.read: [%d:%d], FAIL[%s], IN_CALC[%s], "\
506- "RSC_MOVE[%s], IN_FO[%s], Rscop%s, Node%s" %
504+ "RSC_MOVE[%s], IN_FO[%s], Rscop%s, attrDict%s, nodeDict%s" %
507505 (cstat.ino, cstat.offset, cstat.FAILURE_OCCURRED,
508506 cstat.IN_CALC, cstat.ACTRSC_MOVE, cstat.IN_FO_PROCESS,
509- list(cstat.timedoutRscopSet), list(cstat.shutNodeSet)))
507+ list(cstat.timedoutRscopSet), dict(cstat.attrDict), dict(cstat.nodeDict)))
510508 return True
511509 except Exception, strerror:
512510 pm_log.error("StatusFile.read: I/O error occurred.")
@@ -535,10 +533,10 @@
535533 os.ftruncate(f, l)
536534 os.close(f)
537535 pm_log.debug("StatusFile.write: [%d:%d], FAIL[%s], IN_CALC[%s], "\
538- "RSC_MOVE[%s], IN_FO[%s], Rscop%s, Node%s" %
536+ "RSC_MOVE[%s], IN_FO[%s], Rscop%s, attrDict%s, nodeDict%s" %
539537 (cstat.ino, cstat.offset, cstat.FAILURE_OCCURRED,
540538 cstat.IN_CALC, cstat.ACTRSC_MOVE, cstat.IN_FO_PROCESS,
541- list(cstat.timedoutRscopSet), list(cstat.shutNodeSet)))
539+ list(cstat.timedoutRscopSet), dict(cstat.attrDict), dict(cstat.nodeDict)))
542540 return True
543541 except Exception, strerror:
544542 pm_log.error("StatusFile.write: I/O error occurred.")
@@ -583,7 +581,7 @@
583581 self.cf = ConfigParser.RawConfigParser()
584582 # open the config file to read.
585583 if not os.path.exists(config_file):
586- pm_log.error("ParseConfigFile.__init__(): " +
584+ pm_log.error("ParseConfigFile.__init__(): " +
587585 "config file [%s] does not exist." % (config_file))
588586 #__init__ should return None...
589587 sys.exit(1)
@@ -591,7 +589,7 @@
591589 self.fp = open(config_file)
592590 self.cf.readfp(self.fp)
593591 except Exception, strerror:
594- pm_log.error("ParseConfigFile.__init__(): " +
592+ pm_log.error("ParseConfigFile.__init__(): " +
595593 "failed to read config file [%s]." % (config_file))
596594 pm_log.debug("ParseConfigFile.__init__(): %s" % (strerror))
597595 #__init__ should return None...
@@ -606,15 +604,15 @@
606604 try:
607605 optval = self.cf.get(secname, optname)
608606 except Exception, strerror:
609- pm_log.warn("get_optval(): " +
610- "failed to get value of \"%s\" in [%s] section. " %
607+ pm_log.warn("get_optval(): " +
608+ "failed to get value of \"%s\" in [%s] section. " %
611609 (optname, secname))
612610 pm_log.debug("get_optval(): %s" % (strerror))
613611 return None
614612
615613 if optval == "":
616- pm_log.warn("get_optval(): " +
617- "the value of \"%s\" in [%s] section is empty. " %
614+ pm_log.warn("get_optval(): " +
615+ "the value of \"%s\" in [%s] section is empty. " %
618616 (optname, secname))
619617 return None
620618 return optval
@@ -630,20 +628,21 @@
630628 global SYSLOGFORMAT
631629 global RESET_INTERVAL
632630 global attrRuleList
631+ global attrRules
633632 global actRscList
634633
635634 # Get all options in the section.
636635 try:
637636 setting_opts = self.cf.options(self.SEC_SETTINGS)
638637 except:
639- pm_log.warn("parse_basic_settings(): " +
638+ pm_log.warn("parse_basic_settings(): " +
640639 "[%s] section does not exist. " % (self.SEC_SETTINGS))
641640 return (-1)
642641
643642 for optname in setting_opts:
644643 optval = self.get_optval(self.SEC_SETTINGS, optname)
645644 if not optval:
646- pm_log.warn("parse_basic_settings(): " +
645+ pm_log.warn("parse_basic_settings(): " +
647646 "Ignore the setting of \"%s\"." % (optname))
648647 continue # To the next option in [Settings].
649648
@@ -657,8 +656,8 @@
657656 elif optval.lower() == "false":
658657 SYSLOGFORMAT = False
659658 else:
660- pm_log.warn("parse_basic_settings(): " +
661- "the value of \"%s\" is invalid. " % (optname) +
659+ pm_log.warn("parse_basic_settings(): " +
660+ "the value of \"%s\" is invalid. " % (optname) +
662661 "Ignore the setting.")
663662 elif optname == self.OPT_RESET_INTERVAL:
664663 try:
@@ -669,14 +668,14 @@
669668 else:
670669 raise
671670 except:
672- pm_log.warn("parse_basic_settings(): " +
673- "the format of \"%s\" is invalid. " % (optname) +
671+ pm_log.warn("parse_basic_settings(): " +
672+ "the value of \"%s\" is invalid. " % (optname) +
674673 "set an default value(60).")
675- elif optname.startswith(self.OPT_MANAGE_ATTR):
674+ elif optname.startswith(self.OPT_MANAGE_ATTR) and optval.count(','):
676675 attrRule = optval.split(',')
677676 if len(attrRule) != 3:
678- pm_log.warn("parse_basic_settings(): " +
679- "the format of \"%s\" is invalid. " % (optname) +
677+ pm_log.warn("parse_basic_settings(): " +
678+ "the format of \"%s\" is invalid. " % (optname) +
680679 "Ignore the setting.")
681680 continue # To the next option in [Settings].
682681 (attrname, op, attrval) = tuple(attrRule)
@@ -684,8 +683,8 @@
684683 op = op.strip()
685684 attrval = attrval.strip()
686685 if attrname == "" or op == "" or attrval == "":
687- pm_log.warn("parse_basic_settings(): " +
688- "the value of \"%s\" is invalid. " % (optname) +
686+ pm_log.warn("parse_basic_settings(): " +
687+ "the value of \"%s\" is invalid. " % (optname) +
689688 "Ignore the setting.")
690689 continue # To the next option in [Settings].
691690
@@ -706,29 +705,69 @@
706705 elif op == "gte":
707706 op = "ge"
708707 else:
709- pm_log.warn("parse_basic_settings(): " +
710- "operation \"%s\" (in \"%s\") is invalid. " %
711- (op, optname) +
708+ pm_log.warn("parse_basic_settings(): " +
709+ "operation \"%s\" (in \"%s\") is invalid. " %
710+ (op, optname) +
712711 "Ignore the setting.")
713712 continue # To the next option in [Settings].
714713
715714 attrRule = [attrname, op, attrval]
716715 attrRuleList.append(attrRule)
716+ pm_log.debug("parse_basic_settings(): attrRuleList%s"%(attrRuleList))
717+ elif optname.startswith(self.OPT_MANAGE_ATTR) and not optval.count(','):
718+ optvals = []; rule = []
719+ for x in [x for x in optval.split(' ') if x]:
720+ if x.lower() in ['defined','not_defined']:
721+ optvals.append(None)
722+ optvals.append(x)
723+ if len(optvals) % 4 != 3:
724+ pm_log.warn("parse_basic_settings(): "
725+ "the format of \"%s\" is invalid."
726+ %(optname) + " Ignore the setting.")
727+ continue # To the next option in [Settings].
728+
729+ binops = ['lt','gt','le','ge','eq','ne','defined','not_defined']
730+ for i,x in enumerate(optvals):
731+ if i % 4 == 0:
732+ name = x
733+ elif i % 4 == 1:
734+ y = x.lower().replace('lte','le').replace('gte','ge')
735+ if y in binops:
736+ op = y
737+ else:
738+ pm_log.warn("parse_basic_settings(): "
739+ "binary_op \"%s\" (in \"%s\") is invalid."
740+ %(x,optname) + " Ignore the setting.")
741+ break
742+ elif i % 4 == 2:
743+ rule.append([name, op, x])
744+ elif i % 4 == 3:
745+ if x.lower() in ['and','or']:
746+ rule.append(x.lower())
747+ else:
748+ pm_log.warn("parse_basic_settings(): "
749+ "bool_op \"%s\" (in \"%s\") is invalid."
750+ %(x,optname) + " Ignore the setting.")
751+ break
752+ else:
753+ attrRules.append(rule)
754+ pm_log.debug("parse_basic_settings(): attrRules%s"%(attrRules))
755+ continue # To the next option in [Settings].
717756 elif optname == self.OPT_LOGFACILITY:
718757 if LogconvLog.facility_map.has_key(optval.lower()):
719758 self.logfacility = LogconvLog.facility_map[optval.lower()]
720759 else:
721- pm_log.warn("parse_basic_settings(): " +
722- "the value of \"%s\" is invalid. " % (optname) +
760+ pm_log.warn("parse_basic_settings(): " +
761+ "the value of \"%s\" is invalid. " % (optname) +
723762 "Ignore the setting.")
724763 elif optname == self.OPT_ACTRSC:
725764 for rstr in optval.split(','):
726765 rstr = rstr.strip()
727766 if rstr != "":
728767 if rstr in actRscList:
729- pm_log.warn("parse_basic_settings(): " +
730- "resource id \"%s\" is written redundantly. " %
731- (rstr) +
768+ pm_log.warn("parse_basic_settings(): " +
769+ "resource id \"%s\" is written redundantly. " %
770+ (rstr) +
732771 "Ignore the redundancy.")
733772 else:
734773 actRscList.append(rstr)
@@ -747,7 +786,7 @@
747786 try:
748787 logconv_sections.remove(self.SEC_SETTINGS)
749788 except:
750- pm_log.warn("parse_logconv_settings(): " +
789+ pm_log.warn("parse_logconv_settings(): " +
751790 "[%s] section does not exist. " % (self.SEC_SETTINGS))
752791
753792 #
@@ -758,8 +797,8 @@
758797 try:
759798 logconv_opts = self.cf.options(secname)
760799 except:
761- pm_log.warn("parse_logconv_settings(): " +
762- "[%s] section does not exist. " % (secname) +
800+ pm_log.warn("parse_logconv_settings(): " +
801+ "[%s] section does not exist. " % (secname) +
763802 "Ignore this section.")
764803 continue #To the next section.
765804
@@ -768,15 +807,15 @@
768807 for optname in logconv_opts:
769808 optval = self.get_optval(secname, optname)
770809 if not optval:
771- pm_log.warn("parse_logconv_settings(): " +
810+ pm_log.warn("parse_logconv_settings(): " +
772811 "Ignore the setting of \"%s\"." % (optname))
773812 continue # To the next option.
774813
775814 if optname == self.OPT_FUNCNAME:
776815 defined = hasattr(LogConvertFuncs, optval)
777816 if defined == False:
778- pm_log.error("parse_logconv_settings(): " +
779- "function %s() specified in " % (optval) +
817+ pm_log.error("parse_logconv_settings(): " +
818+ "function %s() specified in " % (optval) +
780819 "[%s] section is not defined." % (secname))
781820 break # Break off parsing this section.
782821 lconvfrm.func = optval
@@ -790,35 +829,35 @@
790829 elif optval.lower() == "false":
791830 lconvfrm.ignoremsg = False
792831 else:
793- pm_log.warn("parse_logconv_settings(): " +
794- "the value of \"%s\" is invalid. " % (optname) +
832+ pm_log.warn("parse_logconv_settings(): " +
833+ "the value of \"%s\" is invalid. " % (optname) +
795834 "Ignore the setting.")
796835 elif optname.startswith(self.OPT_PATTERN):
797836 pstrList = list()
798837 tmpList = list()
799838 pstrList = self.parse_ptn_strings(optval)
800839 if len(pstrList) <= 0:
801- pm_log.error("parse_logconv_settings(): " +
802- "match pattern string of \"%s\" is empty." %
840+ pm_log.error("parse_logconv_settings(): " +
841+ "match pattern string of \"%s\" is empty." %
803842 (optname))
804843 break # Break off parsing this section.
805844 tmpList = self.compile_ptn_strings(pstrList)
806845 if tmpList is None:
807- pm_log.error("parse_logconv_settings(): " +
808- "failed to compile the pattern string in \"%s\"." %
846+ pm_log.error("parse_logconv_settings(): " +
847+ "failed to compile the pattern string in \"%s\"." %
809848 (optname))
810849 break # Break off parsing this section.
811850 lconvfrm.ptnList.append(tmpList)
812851 else:
813- pm_log.debug("parse_logconv_settings(): " +
814- "\"%s\" is not valid option string." % (optname) +
852+ pm_log.debug("parse_logconv_settings(): " +
853+ "\"%s\" is not valid option string." % (optname) +
815854 "Ignore the setting.")
816855 # __for optname in logconv_opts:
817856
818857 if len(lconvfrm.ptnList) == 0 or lconvfrm.func == None:
819- pm_log.warn("parse_logconv_settings(): " +
820- "\"%s\" and \"%s*\" setting is required in section [%s]. " %
821- (self.OPT_FUNCNAME, self.OPT_PATTERN, secname) +
858+ pm_log.warn("parse_logconv_settings(): " +
859+ "\"%s\" and \"%s*\" setting is required in section [%s]. " %
860+ (self.OPT_FUNCNAME, self.OPT_PATTERN, secname) +
822861 "Ignore the section.")
823862 del lconvfrm
824863 else:
@@ -901,6 +940,7 @@
901940 self.ask_status = False
902941 self.is_continue = False
903942 self.is_present = False
943+ self.is_oneshot = False
904944 self.configfile = CONFIGFILE
905945 now = datetime.datetime.now()
906946 self.last_logoutput_t = now
@@ -914,8 +954,8 @@
914954 sys.exit(1)
915955
916956 pm_log.debug("option: daemon[%d], stop[%d], status[%d], continue[%d], " \
917- "present[%d], config[%s], facility[%s]" % (self.daemonize, self.stop_logconv,
918- self.ask_status, self.is_continue, self.is_present, self.configfile, pm_log.facilitystr))
957+ "present[%d], oneshot[%d], config[%s], facility[%s]" % (self.daemonize, self.stop_logconv,
958+ self.ask_status, self.is_continue, self.is_present, self.is_oneshot, self.configfile, pm_log.facilitystr))
919959 if not self.stop_logconv and not self.ask_status:
920960 pm_log.debug("option: target[%s], output[%s], syslogfmt[%s], reset_interval[%d], actrsc%s" % (HA_LOGFILE, OUTPUTFILE, SYSLOGFORMAT, RESET_INTERVAL, actRscList))
921961
@@ -941,9 +981,11 @@
941981 psr.add_option("-s", action="store_true", dest="ask_status",
942982 default=False, help="return pm_logconv status")
943983 psr.add_option("-c", action="store_true", dest="is_continue",
944- default=False, help="start with a continuous mode (\"-p\" option is mutually exclusive)")
984+ default=False, help="start with a continuous mode (\"-p\" or \"-o\" option is mutually exclusive)")
945985 psr.add_option("-p", action="store_true", dest="is_present",
946- default=False, help="start with a present mode (\"-c\" option is mutually exclusive)")
986+ default=False, help="start with a present mode (\"-c\" or \"-o\" option is mutually exclusive)")
987+ psr.add_option("-o", action="store_true", dest="is_oneshot",
988+ default=False, help="start with a oneshot mode (\"-c\" or \"-p\" option is mutually exclusive)")
947989 psr.add_option("-f", dest="config_file", default=CONFIGFILE,
948990 help="the specified configuration file is used")
949991 psr.add_option("-v", "--version", action="callback", callback=print_version,
@@ -961,13 +1003,14 @@
9611003 self.ask_status = opts.ask_status
9621004 self.is_continue = opts.is_continue
9631005 self.is_present = opts.is_present
1006+ self.is_oneshot = opts.is_oneshot
9641007 self.configfile = opts.config_file
9651008
9661009 '''
9671010 Parse config file.
9681011 '''
9691012 pcfobj = ParseConfigFile(self.configfile)
970- # Parse pm-logconv's basic settings.
1013+ # Parse pm_logconv's basic settings.
9711014 pcfobj.parse_basic_settings()
9721015
9731016 if pcfobj.logfacility != None:
@@ -992,12 +1035,19 @@
9921035 pm_log.error("parse_args: option -k and -s cannot be specified with -p.")
9931036 return False
9941037
995- if self.is_continue and self.is_present:
996- pm_log.error("parse_args: options -c and -p are mutually exclusive.")
1038+ if (self.stop_logconv or self.ask_status) and self.is_oneshot:
1039+ pm_log.error("parse_args: option -k and -s cannot be specified with -o.")
9971040 return False
9981041
999- if not self.is_continue and not self.is_present:
1000- # check corosync active or dead.
1042+ if \
1043+ (self.is_continue and self.is_present) or \
1044+ (self.is_continue and self.is_oneshot) or \
1045+ (self.is_present and self.is_oneshot):
1046+ pm_log.error("parse_args: options -c ,-p and -o are mutually exclusive.")
1047+ return False
1048+
1049+ if not self.is_continue and not self.is_present and not self.is_oneshot:
1050+ # check Corosync active or dead.
10011051 ret = self.funcs.is_corosync()
10021052 if ret == None:
10031053 return False
@@ -1011,7 +1061,7 @@
10111061 fileList = list()
10121062 if not self.stop_logconv and not self.ask_status:
10131063 fileList.append((OUTPUTFILE, "output file for converted message"))
1014- fileList.append((HA_LOGFILE, "pacemaker and corosync log file"))
1064+ fileList.append((HA_LOGFILE, "Pacemaker and Corosync log file"))
10151065 fileList.append((self.STATFILE,
10161066 "pm_logconv's status file (can't specify by user)"))
10171067 fileList.append((self.configfile, "pm_logconv's configuration file"))
@@ -1155,11 +1205,11 @@
11551205 else:
11561206 # ha-log's inode didn't match, logrotate?
11571207 # look for the file which inode matches.
1158- for log in glob.glob(HA_LOGFILE + ".*"):
1208+ for log in glob.glob(HA_LOGFILE + "?*"):
11591209 if cstat.ino == os.stat(log)[ST_INO]:
11601210 break
11611211 else:
1162- pm_log.warn("get_fd: pacemaker and corosync log" \
1212+ pm_log.warn("get_fd: Pacemaker and Corosync log" \
11631213 "(inode:%d) doesn't exist." % cstat.ino)
11641214 log = None
11651215 statfile.clear_cstat()
@@ -1170,7 +1220,7 @@
11701220 f.seek(cstat.offset)
11711221 else:
11721222 pm_log.warn("get_fd: there is possibility that " \
1173- "pacemaker and corosync log was clear.")
1223+ "Pacemaker and Corosync log was clear.")
11741224 pm_log.debug("get_fd: reset offset, since " \
11751225 "offset[%d] > file size[%d]"
11761226 % (cstat.offset, os.fstat(f.fileno()).st_size))
@@ -1182,12 +1232,15 @@
11821232
11831233 if os.path.exists(HA_LOGFILE):
11841234 f = open(HA_LOGFILE, 'r')
1185- if not self.is_continue:
1235+ if self.is_present:
11861236 f.seek(os.fstat(f.fileno()).st_size)
11871237 else:
11881238 while not os.path.exists(HA_LOGFILE):
11891239 if do_shutdown:
11901240 return None
1241+ elif self.is_oneshot:
1242+ pm_log.warn("get_fd: Pacemaker and Corosync log(%s) doesn't exist." % HA_LOGFILE)
1243+ return None
11911244 time.sleep(1)
11921245 f = open(HA_LOGFILE, 'r')
11931246 pm_log.info("get_fd: target to convert [%s(inode:%d)]"
@@ -1200,11 +1253,11 @@
12001253 return None
12011254
12021255 '''
1203- get the pacemaker and corosync log path, when `logrotate` occurs.
1256+ get the Pacemaker and Corosync log path, when `logrotate` occurs.
12041257 '''
12051258 def get_nextlog(self, ino, statfile):
12061259 try:
1207- for log in glob.glob(HA_LOGFILE + ".*"):
1260+ for log in glob.glob(HA_LOGFILE + "?*"):
12081261 pm_log.debug("get_nextlog: searching previous target[%s(inode:%d)]"
12091262 % (log, os.stat(log)[ST_INO]))
12101263 if ino == os.stat(log)[ST_INO]:
@@ -1217,16 +1270,6 @@
12171270 statfile.clear_cstat()
12181271 return None
12191272
1220- suffix = log.split('.')[1]
1221- if int(suffix > 1):
1222- for i in range(int(suffix) - 1, 0, -1):
1223- path = ("%s.%d" % (HA_LOGFILE, i))
1224- if os.path.exists(path):
1225- return path
1226- else:
1227- pm_log.warn("get_nextlog: next target[%s] doesn't exist."
1228- % path)
1229- statfile.clear_cstat()
12301273 except Exception, strerror:
12311274 pm_log.warn("get_nextlog: error occurred.")
12321275 pm_log.debug("get_nextlog: error occurred. [%s]" % strerror)
@@ -1236,8 +1279,8 @@
12361279 '''
12371280 Check DC node is idle or not with crmadmin command.
12381281 When DC is idle, crmadmin returns "S_IDLE" status.
1239- return: True -> DC is idle.
1240- False -> DC is not idle.
1282+ return: True -> local is idle.
1283+ False -> local is not idle or not DC.
12411284 None -> error occurs.
12421285 cannot execute command or maybe during DC election.
12431286 '''
@@ -1246,36 +1289,13 @@
12461289 # crmadmin command's default value is 30sec.
12471290 TIMEOUT = 30 * 1000
12481291
1249- # corosync status check
1250- if self.funcs.is_corosync() != True:
1251- return False
1252-
1253- # Get DC node name.
1254- options = ("-D -t %s" % (TIMEOUT))
1292+ # Get DC status.
1293+ options = ("-S %s -t %s" % (HOSTNAME, TIMEOUT))
12551294 (status, output) = \
12561295 self.funcs.exec_outside_cmd(CMD_CRMADMIN, options, False)
12571296 if status == None:
12581297 # Failed to exec command.
1259- pm_log.warn("is_idle(): failed to get DC node name.")
1260- return None
1261- if status != 0:
1262- # Maybe during DC election.
1263- return False
1264- try:
1265- dcnode = output.split()[-1]
1266- except:
1267- # Failed to parse output strings.
1268- pm_log.warn("is_idle(): failed to parse output strings." +
1269- "(DC node name)")
1270- return None
1271-
1272- # Get DC status.
1273- options = ("-S %s -t %s" % (dcnode, TIMEOUT))
1274- (status, output) = \
1275- self.funcs.exec_outside_cmd(CMD_CRMADMIN, options, False)
1276- if status == None:
1277- # Failed to exec command.
1278- pm_log.warn("is_idle(): failed to get DC node status.")
1298+ pm_log.warn("is_idle(): failed to get local node status.")
12791299 return None
12801300 if status != 0:
12811301 # Maybe during DC election.
@@ -1284,15 +1304,15 @@
12841304 dcstat = output.split()[-2]
12851305 except:
12861306 # Failed to parse output strings.
1287- pm_log.warn("is_idle(): failed to parse output strings." +
1288- "DC node status")
1307+ pm_log.warn("is_idle(): failed to parse output strings." +
1308+ "local node status")
12891309 return None
1290- if dcstat == "S_IDLE":
1310+ if dcstat == "S_IDLE" or dcstat == "S_NOT_DC":
12911311 return True
12921312 return False
12931313
12941314 '''
1295- Reset log convert status when pacemaker doesn't output any log message
1315+ Reset log convert status when Pacemaker doesn't output any log message
12961316 over RESET_INTERVAL sec.
12971317 Before reset process, check whether DC node is idle or not.
12981318 arg1 : signal number. for use this func as signal handler.
@@ -1302,9 +1322,9 @@
13021322 def check_dc_and_reset(self, signum, frame):
13031323 if signum == None:
13041324 now = datetime.datetime.now()
1305- if ((self.last_logoutput_t +
1325+ if ((self.last_logoutput_t +
13061326 datetime.timedelta(seconds=RESET_INTERVAL)) > now) or \
1307- ((self.last_reset_t +
1327+ ((self.last_reset_t +
13081328 datetime.timedelta(seconds=RESET_INTERVAL)) > now):
13091329 return
13101330 if signum == None:
@@ -1314,14 +1334,14 @@
13141334 ret = self.is_idle()
13151335 if ret == True:
13161336 self.funcs.clear_status()
1317- pm_log.info("check_dc_and_reset(): " +
1337+ pm_log.debug("check_dc_and_reset(): " +
13181338 "reset log convert status complete.")
13191339 if statfile: statfile.write()
13201340 elif ret == False:
1321- pm_log.info("check_dc_and_reset(): DC node is not idle. " +
1341+ pm_log.debug("check_dc_and_reset(): DC node is not idle. " +
13221342 "Avoid to reset log convert status.")
13231343 elif ret == None:
1324- pm_log.error("check_dc_and_reset(): failed to check DC status. " +
1344+ pm_log.error("check_dc_and_reset(): failed to check DC status. " +
13251345 "Avoid to reset log convert status.")
13261346 return
13271347
@@ -1375,8 +1395,8 @@
13751395 matched = self.is_matched(logline, lconvfrm)
13761396 if matched == True:
13771397 logelm = LogElements()
1378- if logelm.parse_logmsg(logline,self.funcs) != 0:
1379- pm_log.error("do_ptn_matching(): " +
1398+ if logelm.parse_logmsg(logline, self.funcs) != 0:
1399+ pm_log.error("do_ptn_matching(): " +
13801400 "failed to parse log message. [%s]" % (logline))
13811401 # Set the time of output log message for auto reset.
13821402 self.last_logoutput_t = datetime.datetime.now()
@@ -1389,12 +1409,12 @@
13891409
13901410 # Call specified function.
13911411 try:
1392- pm_log.debug("do_ptn_matching(): execute %s()." %
1412+ pm_log.debug("do_ptn_matching(): execute %s()." %
13931413 (lconvfrm.func))
13941414 ret = getattr(self.funcs, lconvfrm.func)(\
13951415 outputobj, logelm, lconvfrm)
13961416 except Exception, strerror:
1397- pm_log.error("do_ptn_matching(): " +
1417+ pm_log.error("do_ptn_matching(): " +
13981418 "failed to execute %s()." % (lconvfrm.func))
13991419 pm_log.debug("do_ptn_matching(): %s" % (strerror))
14001420 continue # To check next rule.
@@ -1407,16 +1427,20 @@
14071427 # FailOver pattern
14081428 # resource failer + resource move
14091429 # score failer + resource move
1430+ # node failer + resource move
14101431 # node failer + resource start
14111432 # resource failer + resource stop
14121433 # score failer + resource stop
1434+ # node failer + resource stop
14131435 # node failer + resource stopped
14141436 if \
14151437 (cstat.FAILURE_OCCURRED == FAIL_RSC and cstat.ACTRSC_MOVE == FAIL_MOVE) or \
14161438 (cstat.FAILURE_OCCURRED == FAIL_SCORE and cstat.ACTRSC_MOVE == FAIL_MOVE) or \
1439+ (cstat.FAILURE_OCCURRED == FAIL_NODE and cstat.ACTRSC_MOVE == FAIL_MOVE) or \
14171440 (cstat.FAILURE_OCCURRED == FAIL_NODE and cstat.ACTRSC_MOVE == FAIL_STR) or \
14181441 (cstat.FAILURE_OCCURRED == FAIL_RSC and cstat.ACTRSC_MOVE == FAIL_STP) or \
14191442 (cstat.FAILURE_OCCURRED == FAIL_SCORE and cstat.ACTRSC_MOVE == FAIL_STP) or \
1443+ (cstat.FAILURE_OCCURRED == FAIL_NODE and cstat.ACTRSC_MOVE == FAIL_STP) or \
14201444 (cstat.FAILURE_OCCURRED == FAIL_NODE and cstat.ACTRSC_MOVE == FAIL_STPD):
14211445 self.funcs.detect_fo_start(outputobj)
14221446 if lconvfrm.ignoremsg:
@@ -1425,27 +1449,27 @@
14251449 continue
14261450 else:
14271451 if ret == CONV_PARSE_ERROR:
1428- errmsg = ("%s(): " % (lconvfrm.func) +
1429- "failed to parse log message. [%s]" %
1452+ errmsg = ("%s(): " % (lconvfrm.func) +
1453+ "failed to parse log message. [%s]" %
14301454 (logelm.halogmsg))
14311455 elif ret == CONV_ITEM_EMPTY:
1432- errmsg = ("%s(): " % (lconvfrm.func) +
1433- "invalid log message format. [%s]" %
1456+ errmsg = ("%s(): " % (lconvfrm.func) +
1457+ "invalid log message format. [%s]" %
14341458 (logelm.halogmsg))
14351459 elif ret == CONV_GETINFO_ERROR:
1436- errmsg = ("%s(): " % (lconvfrm.func) +
1437- "failed to get some information to output log. " +
1460+ errmsg = ("%s(): " % (lconvfrm.func) +
1461+ "failed to get some information to output log. " +
14381462 "[%s]" % (logelm.halogmsg))
14391463 else:
1440- errmsg = ("%s(): " % (lconvfrm.func) +
1441- "unknown error occurred. " +
1464+ errmsg = ("%s(): " % (lconvfrm.func) +
1465+ "unknown error occurred. " +
14421466 "[%s]" % (logelm.halogmsg))
14431467 # When log convertion failed, output original message.
14441468 pm_log.error(errmsg)
14451469 outputobj.output_log(lconvfrm.loglevel, None)
14461470 elif matched == None:
1447- pm_log.error("do_ptn_matching(): " +
1448- "pattern matching about [%s] failed." %
1471+ pm_log.error("do_ptn_matching(): " +
1472+ "pattern matching about [%s] failed." %
14491473 (lconvfrm.rulename))
14501474 else:
14511475 # Not matched.
@@ -1458,7 +1482,7 @@
14581482 return
14591483
14601484 '''
1461- read the pacemaker and corosync log and convert it.
1485+ read the Pacemaker and Corosync log and convert it.
14621486 '''
14631487 def convert(self):
14641488 global statfile
@@ -1476,6 +1500,10 @@
14761500 cstat.offset = logfile.tell()
14771501
14781502 if not logline:
1503+ if self.is_oneshot:
1504+ logfile.close()
1505+ return 0
1506+
14791507 self.check_dc_and_reset(None, None)
14801508
14811509 if cstat.ino != statfile.w_ino or \
@@ -1484,7 +1512,7 @@
14841512
14851513 if os.fstat(logfile.fileno()).st_size < cstat.offset:
14861514 pm_log.warn("convert: there is possibility that " \
1487- "pacemaker and corosync log was clear.")
1515+ "Pacemaker and Corosync log was clear.")
14881516 pm_log.debug("convert: reset offset, since " \
14891517 "offset[%d] > file size[%d]" % (cstat.offset,
14901518 os.fstat(logfile.fileno()).st_size))
@@ -1564,7 +1592,7 @@
15641592 return: 0 -> succeeded.
15651593 0 > -> error occurrs.
15661594 '''
1567- def parse_logmsg(self, logline,funcs):
1595+ def parse_logmsg(self, logline, funcs):
15681596 SYSFMT_PROC_POS = 4
15691597 SYSFMT_DATE_START_POS = 0
15701598 SYSFMT_DATE_END_POS = 2 + 1
@@ -1577,17 +1605,28 @@
15771605 try:
15781606 elementList = logline.split()
15791607 if elementList[0].isalpha():
1580- # Case of syslogmsgfmt = TrueSYSFMT_LOGLV_POS
1608+ # Case of syslogmsgfmt = True (default)
15811609 pm_log.debug("parse log message as syslog format.")
15821610 self.datestr = ' '.join(\
15831611 elementList[SYSFMT_DATE_START_POS:SYSFMT_DATE_END_POS])
1584- if re.search("corosync",elementList[SYSFMT_PROC_POS]) != None:
1585- self.procname = "corosync"
1612+ # The following are examples of parsing:
1613+ # Jan 1 00:00:00 node corosync[1000]: [MAIN ] message
1614+ # *1~~~~~~ *3~~~~~~~~~~~~~~
1615+ # Jan 1 00:00:00 node corosync[1000]: [pcmk ] info: function: message
1616+ # *1~~~~~~ *3~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1617+ # Jan 1 00:00:00 node pengine: [1000]: info: function: message
1618+ # *1~~~~~ *2~~ *3~~~~~~~~~~~~~~~
1619+ # *1: process (self.procname)
1620+ # *2: loglevel (self.haloglevel)
1621+ # *3: message (self.halogmsg)
1622+ if elementList[SYSFMT_PROC_POS].endswith("]:"):
1623+ self.procname = elementList[SYSFMT_PROC_POS].split('[')[0]
15861624 self.haloglevel = "info"
1625+ msgpos = SYSFMT_PROC_POS + 1
15871626 else:
15881627 self.procname = funcs.trimmark(elementList[SYSFMT_PROC_POS])
15891628 self.haloglevel = funcs.trimmark(elementList[SYSFMT_LOGLV_POS])
1590- msgpos = SYSFMT_LOGLV_POS + 1
1629+ msgpos = SYSFMT_LOGLV_POS + 1
15911630 self.halogmsg = ' '.join(elementList[msgpos:]).strip()
15921631 else:
15931632 # Case of syslogmsgfmt = False
@@ -1601,7 +1640,7 @@
16011640 return 0
16021641 except Exception, strerror:
16031642 pm_log.debug("parse_logmsg(): %s" % (strerror))
1604- return - 1
1643+ return -1
16051644
16061645 '''
16071646 Only for debug.
@@ -1658,8 +1697,8 @@
16581697 if tmp_datestr != None:
16591698 self.datestr = tmp_datestr
16601699 else:
1661- pm_log.error("set_datestr(): " +
1662- "invalid date format. [%s] " % (datestr) +
1700+ pm_log.error("set_datestr(): " +
1701+ "invalid date format. [%s] " % (datestr) +
16631702 "output in original format.")
16641703 self.datestr = datestr
16651704
@@ -1687,14 +1726,14 @@
16871726 output_logmsg = convlogmsg
16881727
16891728 try:
1690- outputstr = ("%s %s %s: %s" %
1729+ outputstr = ("%s %s %s: %s" %
16911730 (self.datestr, HOSTNAME, output_loglevel, output_logmsg))
16921731 f = open(OUTPUTFILE, 'a')
16931732 f.write("%s\n" % (outputstr))
16941733 f.close()
16951734 except Exception, strerror:
1696- pm_log.error("output_log(): " +
1697- "failed to output converted log message. [%s]" %
1735+ pm_log.error("output_log(): " +
1736+ "failed to output converted log message. [%s]" %
16981737 (outputstr))
16991738 pm_log.debug("output_log(): %s" % (strerror))
17001739 return -1
@@ -1763,7 +1802,7 @@
17631802 monthstr = self.monthstrDic[monthstr]
17641803 now = datetime.datetime.now()
17651804 yearstr = str(now.timetuple().tm_year)
1766- hblog_datestr = ("%s/%s/%02d_%s" %
1805+ hblog_datestr = ("%s/%s/%02d_%s" %
17671806 (yearstr, monthstr, int(daystr), timestr))
17681807
17691808 # If date string is future, minus year value.
@@ -1784,18 +1823,17 @@
17841823 class RscStat:
17851824 '''
17861825 rscid : resource id.
1787- status : [Started on node|Stopped]
1788- fofailed : True -> F/O failed. ("cannot run anywhere" appeared.)
1789- False -> "cannot run anywhere" didn't appear.
1826+ status : [Started on node|Stopped|Move node -> node]
17901827 unmanaged: True -> resource is unmanaged.
17911828 False -> resource is managed.
1829+ operated : True -> resource is operated.
1830+ False -> resource isn't operated.
17921831 '''
1793- def __init__(self, rscid=None, status=None, fofailed=False,
1794- unmanaged=False):
1832+ def __init__(self, rscid=None, status=None, unmanaged=False, operated=False):
17951833 self.rscid = rscid
17961834 self.status = status
1797- self.fofailed = fofailed
17981835 self.unmanaged = unmanaged
1836+ self.operated = operated
17991837
18001838 ''' operator eq '''
18011839 def __eq__(self,other):
@@ -1805,29 +1843,25 @@
18051843 def replace(self,new):
18061844 if new.status:
18071845 self.status = new.status
1808- if new.fofailed:
1809- self.fofailed = new.fofailed
18101846 if new.unmanaged:
18111847 self.unmanaged = new.unmanaged
1848+ if new.operated:
1849+ self.operated = new.operated
18121850
18131851 '''
18141852 Only for debug.
18151853 '''
18161854 def print_rscstat(self):
1817- print "rsc:%s\tstatus:%s\tfofailed:%s\tunmanaged:%s\t" % (self.rscid,self.status,self.fofailed,self.unmanaged)
1818-# print self.rscid
1819-# print self.status
1820-# print self.fofailed
1821-# print self.unmanaged
1855+ print "rsc:%s\tstatus:%s\tunmanaged:%s\toperated:%s" % (self.rscid,self.status,self.unmanaged,self.operated)
18221856
18231857 '''
18241858 Return codes for functions to convert log.
18251859 '''
1826-CONV_SHUT_NODE = 1 #shutdown list existed.
1827-CONV_OK = 0 #log conversion succeeded.
1828-CONV_PARSE_ERROR = -1 #failed to parse log message.
1829-CONV_ITEM_EMPTY = -2 #parsing succeeded, but some gotten items are empty.
1830-CONV_GETINFO_ERROR = -3 #failed to get info which is required to conversion.
1860+CONV_SHUT_NODE = 1 #shutdown list existed.
1861+CONV_OK = 0 #log conversion succeeded.
1862+CONV_PARSE_ERROR = -1 #failed to parse log message.
1863+CONV_ITEM_EMPTY = -2 #parsing succeeded, but some gotten items are empty.
1864+CONV_GETINFO_ERROR = -3 #failed to get info which is required to conversion.
18311865 '''
18321866 Class for functions to convert log message.
18331867 convert-functions' arguments are:
@@ -1852,7 +1886,7 @@
18521886 self.rscstatList = list()
18531887
18541888 '''
1855- Check corosync service is active or dead.
1889+ Check Corosync service is active or dead.
18561890 return: True -> active
18571891 False -> dead
18581892 None -> error occurs.
@@ -1872,11 +1906,13 @@
18721906 '''
18731907 triming mark from value.
18741908 '''
1875- def trimmark(self, word, minus=None):
1909+ def trimmark(self, word, minus=None, plus=None):
18761910 marklist = "(),.;:[]=<>'"
18771911 if minus:
18781912 markset = set(marklist) - set(minus)
18791913 marklist = "".join(markset)
1914+ if plus:
1915+ marklist = marklist + plus
18801916 trimword = word.translate(string.maketrans("",""),marklist)
18811917 return trimword
18821918
@@ -1901,8 +1937,12 @@
19011937 def parse_opid(self, opid):
19021938 # please detect parse error in caller.
19031939 tmp = opid.split('_')
1904- rscid = '_'.join(tmp[:-2])
1905- op = tmp[-2]
1940+ if tmp[-2] in ['to','from'] and tmp[-3] == 'migrate':
1941+ rscid = '_'.join(tmp[:-3])
1942+ op = '_'.join(tmp[-3:-1])
1943+ else:
1944+ rscid = '_'.join(tmp[:-2])
1945+ op = tmp[-2]
19061946 interval = tmp[-1]
19071947 return rscid, op, interval
19081948
@@ -1922,13 +1962,13 @@
19221962 status, cmdpath = \
19231963 commands.getstatusoutput("which " + cmdname)
19241964 except Exception, strerror:
1925- pm_log.error("exec_outside_cmd(): " +
1926- "failed to execute which command to get command path. " +
1965+ pm_log.error("exec_outside_cmd(): " +
1966+ "failed to execute which command to get command path. " +
19271967 "[%s]" % (cmdname))
19281968 pm_log.debug("exec_outside_cmd(): %s" % (strerror))
19291969 return None, None
19301970 if (os.WIFEXITED(status) == False or os.WEXITSTATUS(status) != 0):
1931- pm_log.error("exec_outside_cmd(): " +
1971+ pm_log.error("exec_outside_cmd(): " +
19321972 "failed to get command path. [%s]" % (cmdname))
19331973 return None, None
19341974
@@ -1938,26 +1978,26 @@
19381978
19391979 # Execute command.
19401980 exec_cmd = ("%s %s" % (cmdpath, options))
1941- pm_log.debug("exec_outside_cmd(): " +
1981+ pm_log.debug("exec_outside_cmd(): " +
19421982 "execute command. [%s]" % (exec_cmd))
19431983 try:
19441984 status, output = commands.getstatusoutput(exec_cmd)
19451985 except Exception, strerror:
1946- pm_log.error("exec_outside_cmd(): " +
1986+ pm_log.error("exec_outside_cmd(): " +
19471987 "failed to exec command. [%s]" % (exec_cmd))
19481988 pm_log.debug("exec_outside_cmd(): %s" % (strerror))
19491989 return None, None
19501990
19511991 # Check return status.
19521992 if os.WIFEXITED(status) == False:
1953- pm_log.error("exec_outside_cmd(): " +
1954- "command [%s] exited abnormally. (status=%s)" %
1993+ pm_log.error("exec_outside_cmd(): " +
1994+ "command [%s] exited abnormally. (status=%s)" %
19551995 (exec_cmd, status))
19561996 return None, None
19571997 rc = os.WEXITSTATUS(status)
19581998 if checkrc == True and rc != 0:
1959- pm_log.warn("exec_outside_cmd(): " +
1960- "command [%s] returns error. (rc=%s, msg=\"%s\")" %
1999+ pm_log.warn("exec_outside_cmd(): " +
2000+ "command [%s] returns error. (rc=%s, msg=\"%s\")" %
19612001 (exec_cmd, rc, output))
19622002 return None, None
19632003 return rc, output
@@ -1976,73 +2016,213 @@
19762016 None -> error occurs or attribute doesn't exist.
19772017 '''
19782018 def check_attribute(self, attrname, op, attrval, node):
1979-
1980- # Execute command.
1981- options = ("-G -U %s -t status -n %s" % (node, attrname))
1982- (status, output) = \
1983- self.exec_outside_cmd(CMD_CRM_ATTR, options, False)
1984- if status == None:
1985- # Failed to exec command, or
1986- # The node is dead, or
1987- # Specified attribute doesn't exist.
1988- pm_log.warn("check_attribute(): " +
1989- "failed to get %s's value." % (attrname))
2019+ if not (node, attrname) in cstat.attrDict:
19902020 return None, None
1991-
1992- pm_log.debug("check_attribute(): " +
1993- "%s's status[%s] output[%s] node[%s] attr[%s]" %
1994- (CMD_CRM_ATTR, status, output, node, attrname))
1995-
1996- if status != 0:
1997- # crm_attribute returns error value.
1998- # Maybe local node is shutting down.
1999- return None, None
2000- # In normal case, crm_attribute command shows like the following.
2001- # " name=default_ping_set value=100"
2002- # So parse it to get current attribute value.
2003- try:
2021+ # Get attribute value from log.
2022+ currentval = cstat.attrDict[node, attrname]
2023+
2024+ if currentval == None:
2025+ # Get attribute value from command.
2026+ # Execute command.
2027+ options = ("-G -U %s -t status -n %s" % (node, attrname))
2028+ (status, output) = self.exec_outside_cmd(CMD_CRM_ATTR, options, False)
2029+ if status == None:
2030+ # Failed to exec command, or
2031+ # The node is dead, or
2032+ # Specified attribute doesn't exist.
2033+ pm_log.warn("check_attribute(): " +
2034+ "failed to get %s's value." % (attrname))
2035+ return None, None
2036+
2037+ pm_log.debug("check_attribute(): " +
2038+ "%s's status[%s] output[%s] node[%s] attr[%s]" %
2039+ (CMD_CRM_ATTR, status, output, node, attrname))
2040+
2041+ if status != 0:
2042+ # crm_attribute returns error value.
2043+ # Maybe local node is shutting down.
2044+ return None, None
2045+ # In normal case, crm_attribute command shows like the following.
2046+ # " name=default_ping_set value=100"
2047+ # So parse it to get current attribute value.
20042048 valuepos = output.index('value=')
20052049 currentval = output[valuepos + len('value='):].strip()
2006- result = getattr(operator, op)(currentval, attrval)
2050+ else:
2051+ pm_log.debug("check_attribute(): " +
2052+ "log's node[%s] attr[%s] value[%s]" %
2053+ (node, attrname, currentval))
2054+
2055+ try:
2056+ if currentval.isdigit() and attrval.isdigit():
2057+ result = getattr(operator, op)(int(currentval),int(attrval))
2058+ else:
2059+ result = getattr(operator, op)(currentval,attrval)
20072060 except:
2008- pm_log.error("check_attribute(): " +
2009- "failed to comparison %s's value. " % (attrname) +
2010- "(currentval=%s, op=%s, specifiedval=%s)" %
2061+ pm_log.error("check_attribute(): " +
2062+ "failed to comparison %s's value. " % (attrname) +
2063+ "(currentval=%s, op=%s, specifiedval=%s)" %
20112064 (currentval, op, attrval))
20122065 return None, None
20132066 return result, currentval
20142067
20152068 '''
2016- Get online node from command.
2017- return : active node in the cluster.
2018- None -> error occurs.
2069+ Compare attribute value with it that acquired from CIB or log message.
2070+ Operations to compare is [lt|gt|le|ge|eq|ne].
2071+ arg1 : list of target attributes ([[name, op, value], bool_op, [...] ...])
2072+ arg2 : node name which has the attribute.
2073+ return : result of comparision:
2074+ True -> matched.
2075+ False -> not matched.
2076+ None -> error occurs or attribute doesn't exist.
20192077 '''
2020- def get_onlinenode(self):
2021- onlineset = set()
2022- ret = self.is_corosync()
2023- if ret == None:
2024- return ret
2025- elif ret == False:
2026- return onlineset
2027- options = ("-p")
2028- (status, nodelist) = self.exec_outside_cmd(CMD_CRM_NODE, options, False)
2029- if status == None:
2030- # Failed to exec command.
2031- pm_log.warn("get_onlinenode(): failed to get active nodelist.")
2078+ def check_attributes(self, rules, node):
2079+ def operate(rules, i, op):
2080+ if rules[i-1] == None:
2081+ pass
2082+ elif rules[i+1] == None:
2083+ rules[i+1] = rules[i-1]
2084+ else:
2085+ rules[i+1] = getattr(operator,op)(rules[i-1],rules[i+1])
2086+ rules[i-1] = rules[i] = ''
2087+
2088+ pm_log.debug("check_attributes(): node[%s] rules%s"%(node,rules))
2089+ attrs = {} # current attribute values
2090+ for i,rule in [(i,x) for (i,x) in enumerate(rules) if i % 2 == 0]:
2091+ if not rule[0] or rule[0] in attrs:
2092+ continue
2093+ if (node, rule[0]) in cstat.attrDict:
2094+ # Get attribute value from log.
2095+ attrs[rule[0]] = cstat.attrDict[node, rule[0]]
2096+
2097+ if attrs[rule[0]] == None:
2098+ # Get attribute value from command.
2099+ # Execute command.
2100+ opts = ("-G -U %s -t status -n %s"%(node, rule[0]))
2101+ (status, output) = self.exec_outside_cmd(CMD_CRM_ATTR, opts, False)
2102+ if status == None:
2103+ # Failed to exec command, or
2104+ # The node is dead, or
2105+ # Specified attribute doesn't exist.
2106+ pm_log.warn("check_attributes(): "
2107+ "failed to get %s's value."%(rule[0]))
2108+ return None
2109+ pm_log.debug("check_attributes(): "
2110+ "%s's status[%s] output[%s] node[%s] attr[%s]"
2111+ %(CMD_CRM_ATTR, status, output, node, rule[0]))
2112+
2113+ if status != 0:
2114+ # crm_attribute returns error value.
2115+ # Maybe local node is shutting down.
2116+ return None
2117+ # In normal case, crm_attribute command shows like the following.
2118+ # "name=default_ping_set value=100"
2119+ # So parse it to get current attribute value.
2120+ attrs[rule[0]] = output[output.index('value=')+len('value='):].strip()
2121+ else:
2122+ pm_log.debug("check_attribute(): " +
2123+ "log's node[%s] attr[%s] value[%s]" %
2124+ (node, rule[0], attrs[rule[0]]))
2125+
2126+ if len(attrs) < 1:
20322127 return None
2033-
2034- for nodename in nodelist.split():
2035- options = ("-N %s -n standby -G -l forever -d off" % (nodename))
2036- (status, output) = self.exec_outside_cmd(CMD_CRM_ATTR, options, False)
2037- if status == None:
2038- # Failed to exec command.
2039- pm_log.warn("get_onlinenode(): failed to get online nodelist.")
2128+ pm_log.debug("check_attributes(): attrs%s"%(attrs))
2129+
2130+ # phase1: Operate each condition of the attribute.
2131+ #
2132+ # [[None, 'not_defined', 'attribute'], 'and', ['attribute', 'lt', '100']]
2133+ # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ~~~~~~~~~~~~~~~~~~~~~~~~~~
2134+ # -> [None, 'and', True]
2135+ # ^^^^ ~~~~
2136+ # * 'defined' and 'not_defined' are made None unconditionally.
2137+ #
2138+ for i,rule in [(i,x) for (i,x) in enumerate(rules) if i % 2 == 0]:
2139+ if not rule[0]: # unary_op
2140+ rules[i] = None
2141+ continue
2142+ v = attrs[rule[0]] # current value
2143+ try:
2144+ if v.isdigit() and rule[2].isdigit():
2145+ rules[i] = getattr(operator,rule[1])(int(v),int(rule[2]))
2146+ else:
2147+ rules[i] = getattr(operator,rule[1])(v,rule[2])
2148+ pm_log.debug("check_attributes(): phase1(%d): (%s %s %s)=%s"
2149+ %(i,v,rule[1],rule[2],rules[i]))
2150+ except:
2151+ pm_log.error("check_attributes(): "
2152+ "failed to comparison %s's value. "%(rule[0]) +
2153+ "(currentval=%s, op=%s, specifiedval=%s)"
2154+ %(v,rule[1],rule[2]))
20402155 return None
2041- standby = output[output.index("value"):]
2042- if standby.split("=")[1] == "off":
2043- onlineset.add(nodename)
2044- pm_log.debug("get_onlinenode(): node %s is online node." % (list(onlineset)))
2045- return onlineset
2156+ pm_log.debug("check_attributes(): phase1: rules%s"%(rules))
2157+
2158+ # phase2: Operate each 'and' condition.
2159+ #
2160+ # [True, 'or', True, 'and', False, 'and', True]
2161+ # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2162+ # -> [True, 'or', False]
2163+ # ^^^^^
2164+ # * [None, 'and', True] is True, [None 'and', False] is False,
2165+ # * and [None, 'and', None] is None.
2166+ #
2167+ for i in [i for (i,x) in enumerate(rules) if i % 2 == 1 and x == 'and']:
2168+ operate(rules, i, 'and_')
2169+ pm_log.debug("check_attributes(): phase2(%d): rules%s"%(i,rules))
2170+ l = rules[:]; rules = []
2171+ for x in [x for x in l if x != '']:
2172+ rules.append(x)
2173+ pm_log.debug("check_attributes(): phase2: rules%s"%(rules))
2174+
2175+ # phase3: Operate each 'or' condition.
2176+ #
2177+ # [True, 'or', False]
2178+ # ^^^^^^^^^^^^^^^^^
2179+ # -> [True]
2180+ # ^^^^
2181+ # * [None, 'or', True] is True, [None 'or', False] is False,
2182+ # * and [None, 'or', None] is None.
2183+ #
2184+ for i in [i for (i,x) in enumerate(rules) if i % 2 == 1 and x == 'or']:
2185+ operate(rules, i, 'or_')
2186+ pm_log.debug("check_attributes(): phase3(%d): rules%s"%(i,rules))
2187+ pm_log.debug("check_attributes(): phase3: rules[%s]"%(rules[-1]))
2188+ return rules[-1]
2189+
2190+ '''
2191+ Check unmatched attribute exists or not.
2192+ Compared with the attribute's rule of configure file.
2193+ return : True -> unmatched attribute exists.
2194+ False -> unmatched attribute not exists.
2195+ '''
2196+ def check_unmatch_attr_rule(self):
2197+ for node, stat in cstat.nodeDict.iteritems():
2198+ if stat != "online":
2199+ continue
2200+ # Check each attribute's value.
2201+ for attrRule in attrRuleList:
2202+ attrname, op, attrval = tuple(attrRule)
2203+ # Check attribute's value for each node.
2204+ # Now, the node seems to be active.
2205+ result = self.check_attribute(attrname, op, attrval, node)[0]
2206+ pm_log.debug("check_unmatch_attr_rule(): "
2207+ "check_attribute returns [%s]"%(result))
2208+ if result:
2209+ # attribute's value means "failure(s) occurred"!
2210+ return True
2211+ # [COMMENT]
2212+ # result == False:
2213+ # attribute did not change or
2214+ # it was updated to normal value.
2215+ # result == None:
2216+ # some errors occurred in check_attribute() or
2217+ # the node is not running or
2218+ # specified attribute does not exist.
2219+ for rules in attrRules:
2220+ result = self.check_attributes(rules[:], node)
2221+ pm_log.debug("check_unmatch_attr_rule(): "
2222+ "check_attributes returns [%s]"%(result))
2223+ if result:
2224+ return True
2225+ return False
20462226
20472227 '''
20482228 Set specified values to RscStat object list.
@@ -2051,13 +2231,13 @@
20512231 When the arg's value is None, don't update the element's value.
20522232
20532233 arg1 : resource id.
2054- arg2 : the rsc's status. [Started on node|Stopped]
2055- arg3 : the rsc's F/O failed or not. (depends on "cannot run anywhere")
2056- arg4 : the rsc is managed or not.
2234+ arg2 : the rsc's status. [Started on node|Stopped|Move node -> node]
2235+ arg3 : the rsc is managed or not.
2236+ arg4 : the rsc is operated or not.
20572237 return Nothing.
20582238 '''
2059- def set_rscstat(self, rscid, statstr, fofailed, unmanaged):
2060- newrsc = RscStat(rscid,statstr,fofailed,unmanaged)
2239+ def set_rscstat(self, rscid, statstr, unmanaged, operated):
2240+ newrsc = RscStat(rscid, statstr, unmanaged, operated)
20612241 if newrsc in self.rscstatList:
20622242 idx = self.rscstatList.index(newrsc)
20632243 self.rscstatList[idx].replace(newrsc)
@@ -2069,16 +2249,16 @@
20692249 '''
20702250 def debug_status(self):
20712251 pm_log.debug("debug_status(): FAIL[%s], IN_CALC[%s], "\
2072- "RSC_MOVE[%s], IN_FO[%s], Rscop%s, Node%s" %
2252+ "RSC_MOVE[%s], IN_FO[%s], Rscop%s, attrDict%s, nodeDict%s" %
20732253 (cstat.FAILURE_OCCURRED, cstat.IN_CALC,
20742254 cstat.ACTRSC_MOVE, cstat.IN_FO_PROCESS,
2075- list(cstat.timedoutRscopSet), list(cstat.shutNodeSet)))
2255+ list(cstat.timedoutRscopSet), dict(cstat.attrDict), dict(cstat.nodeDict)))
20762256
20772257 '''
20782258 Clear ConvertStatus (exclude ino and offset).
20792259 '''
20802260 def clear_status(self):
2081- pm_log.debug("clear_status():" +
2261+ pm_log.debug("clear_status():" +
20822262 "clear convert status (exclude ino and offset).")
20832263 self.debug_status()
20842264 cstat.FAILURE_OCCURRED = False
@@ -2086,7 +2266,23 @@
20862266 cstat.ACTRSC_MOVE = False
20872267 cstat.IN_FO_PROCESS = False
20882268 cstat.timedoutRscopSet = set()
2089- cstat.shutNodeSet = set()
2269+ cstat.attrDict = dict()
2270+ cstat.nodeDict = dict()
2271+ self.debug_status()
2272+
2273+ '''
2274+ Clear ConvertStatus (exclude nodeDict, ino and offset).
2275+ '''
2276+ def clear_status_except_node(self):
2277+ pm_log.debug("clear_status_except_node():" +
2278+ "clear convert status (exclude nodeDict, ino and offset).")
2279+ self.debug_status()
2280+ cstat.FAILURE_OCCURRED = False
2281+ cstat.IN_CALC = False
2282+ cstat.ACTRSC_MOVE = False
2283+ cstat.IN_FO_PROCESS = False
2284+ cstat.timedoutRscopSet = set()
2285+ cstat.attrDict = dict()
20902286 self.debug_status()
20912287
20922288 ##########
@@ -2109,6 +2305,12 @@
21092305 outputobj.output_log(lconvfrm.loglevel, lconvfrm.rulename)
21102306 return CONV_OK
21112307
2308+ '''
2309+ No output message.
2310+ '''
2311+ def no_output_msg(self, outputobj, logelm, lconvfrm):
2312+ return CONV_OK
2313+
21122314 ##########
21132315 # For Resource event.
21142316 ##########
@@ -2119,17 +2321,21 @@
21192321 NOTE: monitor operation is not a target.
21202322
21212323 MsgNo.1-1)
2122- Jan 6 14:16:27 dl380g5a crmd: [9874]: info: do_lrm_rsc_op: Performing key=17:2:0:dae9d86d-9c4b-44f2-822c-b559db044ba2 op=prmApPostgreSQLDB_start_0 )
2324+ Jan 6 14:16:27 x3650a crmd: [9874]: info: do_lrm_rsc_op: Performing key=17:2:0:dae9d86d-9c4b-44f2-822c-b559db044ba2 op=prmApPostgreSQLDB_start_0 )
21232325 MsgNo.2-1)
2124- Jan 6 15:05:00 dl380g5a crmd: [9874]: info: do_lrm_rsc_op: Performing key=20:7:0:dae9d86d-9c4b-44f2-822c-b559db044ba2 op=prmApPostgreSQLDB_stop_0 )
2326+ Jan 6 15:05:00 x3650a crmd: [9874]: info: do_lrm_rsc_op: Performing key=20:7:0:dae9d86d-9c4b-44f2-822c-b559db044ba2 op=prmApPostgreSQLDB_stop_0 )
21252327 MsgNo.4-1)
2126- Jan 12 18:34:51 dl380g5b crmd: [15901]: info: do_lrm_rsc_op: Performing key=32:13:0:9d68ec4b-527f-4dda-88b3-9203fef16f56 op=prmStateful:1_promote_0 )
2328+ Jan 12 18:34:51 x3650a crmd: [15901]: info: do_lrm_rsc_op: Performing key=32:13:0:9d68ec4b-527f-4dda-88b3-9203fef16f56 op=prmStateful:1_promote_0 )
21272329 MsgNo.5-1)
2128- Jan 12 18:34:49 dl380g5a crmd: [3464]: info: do_lrm_rsc_op: Performing key=35:11:0:9d68ec4b-527f-4dda-88b3-9203fef16f56 op=prmStateful:0_demote_0 )
2330+ Jan 12 18:34:49 x3650a crmd: [3464]: info: do_lrm_rsc_op: Performing key=35:11:0:9d68ec4b-527f-4dda-88b3-9203fef16f56 op=prmStateful:0_demote_0 )
2331+ MsgNo.11-1)
2332+ Mar 24 11:17:59 x3650e crmd: [3181]: info: do_lrm_rsc_op: Performing key=9:68:0:13f2515c-f788-4cc4-b5a4-33308d617adc op=prmGuest-a1_migrate_to_0 )
2333+ MsgNo.12-1)
2334+ Mar 24 11:18:14 x3650f crmd: [3356]: info: do_lrm_rsc_op: Performing key=10:68:0:13f2515c-f788-4cc4-b5a4-33308d617adc op=prmGuest-a1_migrate_from_0 )
21292335 MsgNo.17-1)
2130- Jan 7 10:21:41 dl380g5a crmd: [25493]: info: do_lrm_rsc_op: Performing key=35:1:0:683d57a3-6623-46ae-bbc9-6b7930aec9c2 op=prmStonith2-3_start_0 )
2336+ Jan 7 10:21:41 x3650a crmd: [25493]: info: do_lrm_rsc_op: Performing key=35:1:0:683d57a3-6623-46ae-bbc9-6b7930aec9c2 op=prmStonith2-3_start_0 )
21312337 MsgNo.18-1)
2132- Jan 7 10:22:11 dl380g5a crmd: [25493]: info: do_lrm_rsc_op: Performing key=30:5:0:683d57a3-6623-46ae-bbc9-6b7930aec9c2 op=prmStonith2-3_stop_0 )
2338+ Jan 7 10:22:11 x3650a crmd: [25493]: info: do_lrm_rsc_op: Performing key=30:5:0:683d57a3-6623-46ae-bbc9-6b7930aec9c2 op=prmStonith2-3_stop_0 )
21332339 '''
21342340 def try_to_operate(self, outputobj, logelm, lconvfrm):
21352341 try:
@@ -2155,24 +2361,30 @@
21552361 NOTE: monitor operation is not a target.
21562362
21572363 MsgNo.1-2)
2158- Jan 6 14:16:28 dl380g5a crmd: [9874]: info: process_lrm_event: LRM operation prmApPostgreSQLDB_start_0 (call=25, rc=0, cib-update=69, confirmed=true) ok
2364+ Jan 6 14:16:28 x3650a crmd: [9874]: info: process_lrm_event: LRM operation prmApPostgreSQLDB_start_0 (call=25, rc=0, cib-update=69, confirmed=true) ok
21592365 MsgNo.2-2)
2160- Jan 6 15:05:01 dl380g5a crmd: [9874]: info: process_lrm_event: LRM operation prmApPostgreSQLDB_stop_0 (call=27, rc=0, cib-update=79, confirmed=true) ok
2366+ Jan 6 15:05:01 x3650a crmd: [9874]: info: process_lrm_event: LRM operation prmApPostgreSQLDB_stop_0 (call=27, rc=0, cib-update=79, confirmed=true) ok
21612367 MsgNo.4-2)
2162- Jan 12 18:34:51 dl380g5b crmd: [15901]: info: process_lrm_event: LRM operation prmStateful:1_promote_0 (call=18, rc=0, cib-update=27, confirmed=true) ok
2368+ Jan 12 18:34:51 x3650a crmd: [15901]: info: process_lrm_event: LRM operation prmStateful:1_promote_0 (call=18, rc=0, cib-update=27, confirmed=true) ok
21632369 MsgNo.5-2)
2164- Jan 12 18:34:49 dl380g5a crmd: [3464]: info: process_lrm_event: LRM operation prmStateful:0_demote_0 (call=37, rc=0, cib-update=79, confirmed=true) ok
2370+ Jan 12 18:34:49 x3650a crmd: [3464]: info: process_lrm_event: LRM operation prmStateful:0_demote_0 (call=37, rc=0, cib-update=79, confirmed=true) ok
2371+ MsgNo.11-2)
2372+ Mar 24 11:18:14 x3650e crmd: [3181]: info: process_lrm_event: LRM operation prmGuest-a1_migrate_to_0 (call=33, rc=0, cib-update=60, confirmed=true) ok
2373+ MsgNo.12-2)
2374+ Mar 24 11:18:15 x3650f crmd: [3356]: info: process_lrm_event: LRM operation prmGuest-a1_migrate_from_0 (call=35, rc=0, cib-update=248, confirmed=true) ok
21652375 MsgNo.17-2)
2166- Jan 7 10:21:41 dl380g5a crmd: [25493]: info: process_lrm_event: LRM operation prmStonith2-3_start_0 (call=11, rc=0, cib-update=42, confirmed=true) ok
2376+ Jan 7 10:21:41 x3650a crmd: [25493]: info: process_lrm_event: LRM operation prmStonith2-3_start_0 (call=11, rc=0, cib-update=42, confirmed=true) ok
21672377 MsgNo.18-2)
2168- Jan 7 10:22:11 dl380g5a crmd: [25493]: info: process_lrm_event: LRM operation prmStonith2-3_stop_0 (call=34, rc=0, cib-update=71, confirmed=true) ok
2378+ Jan 7 10:22:11 x3650a crmd: [25493]: info: process_lrm_event: LRM operation prmStonith2-3_stop_0 (call=34, rc=0, cib-update=71, confirmed=true) ok
21692379 '''
21702380 def operation_succeeded(self, outputobj, logelm, lconvfrm):
21712381 completeopDic = {
21722382 'start' : 'started',
21732383 'stop' : 'stopped',
21742384 'promote': 'promoted',
2175- 'demote' : 'demoted'
2385+ 'demote' : 'demoted',
2386+ 'migrate_to' : 'migrated_to',
2387+ 'migrate_from' : 'migrated_from'
21762388 }
21772389 try:
21782390 wordlist = logelm.halogmsg.split()
@@ -2198,19 +2410,23 @@
21982410 monitor (exclude rc=OCF_NOT_RUNNING), promote, demote,
21992411 and STONITH resource's start, stop.
22002412 MsgNo.1-3)
2201- Jan 6 15:22:45 dl380g5a crmd: [26989]: info: process_lrm_event: LRM operation prmApPostgreSQLDB_start_0 (call=25, rc=1, cib-update=58, confirmed=true) unknown error
2413+ Jan 6 15:22:45 x3650a crmd: [26989]: info: process_lrm_event: LRM operation prmApPostgreSQLDB_start_0 (call=25, rc=1, cib-update=58, confirmed=true) unknown error
22022414 MsgNo.2-3)
2203- Jan 6 18:11:34 dl380g5a crmd: [4144]: info: process_lrm_event: LRM operation prmApPostgreSQLDB_stop_0 (call=27, rc=1, cib-update=76, confirmed=true) unknown error
2415+ Jan 6 18:11:34 x3650a crmd: [4144]: info: process_lrm_event: LRM operation prmApPostgreSQLDB_stop_0 (call=27, rc=1, cib-update=76, confirmed=true) unknown error
22042416 MsgNo.3-1)
2205- Jan 6 19:23:01 dl380g5a crmd: [19038]: info: process_lrm_event: LRM operation prmExPostgreSQLDB_monitor_10000 (call=16, rc=1, cib-update=72, confirmed=false) unknown error
2417+ Jan 6 19:23:01 x3650a crmd: [19038]: info: process_lrm_event: LRM operation prmExPostgreSQLDB_monitor_10000 (call=16, rc=1, cib-update=72, confirmed=false) unknown error
22062418 MsgNo.4-3)
2207- Jan 6 15:22:45 dl380g5a crmd: [26989]: info: process_lrm_event: LRM operation prmStateful:1_promote_0 (call=25, rc=1, cib-update=58, confirmed=true) unknown error
2419+ Jan 6 15:22:45 x3650a crmd: [26989]: info: process_lrm_event: LRM operation prmStateful:1_promote_0 (call=25, rc=1, cib-update=58, confirmed=true) unknown error
22082420 MsgNo.5-3)
2209- Jan 6 15:22:45 dl380g5a crmd: [26989]: info: process_lrm_event: LRM operation prmStateful:1_demote_0 (call=25, rc=1, cib-update=58, confirmed=true) unknown error
2421+ Jan 6 15:22:45 x3650a crmd: [26989]: info: process_lrm_event: LRM operation prmStateful:1_demote_0 (call=25, rc=1, cib-update=58, confirmed=true) unknown error
2422+ MsgNo.11-3)
2423+ Mar 24 11:43:41 x3650e crmd: [3181]: info: process_lrm_event: LRM operation prmGuest-a1_migrate_to_0 (call=37, rc=1, cib-update=254, confirmed=true) unknown error
2424+ MsgNo.12-3)
2425+ Mar 24 12:11:03 x3650f crmd: [3356]: info: process_lrm_event: LRM operation prmGuest-a1_migrate_from_0 (call=45, rc=1, cib-update=292, confirmed=true) unknown error
22102426 MsgNo.17-3)
2211- Jan 7 10:54:45 dl380g5a crmd: [32714]: info: process_lrm_event: LRM operation prmStonith2-3_start_0 (call=11, rc=1, cib-update=56, confirmed=true) unknown error
2427+ Jan 7 10:54:45 x3650a crmd: [32714]: info: process_lrm_event: LRM operation prmStonith2-3_start_0 (call=11, rc=1, cib-update=56, confirmed=true) unknown error
22122428 MsgNo.19-1)
2213- Jan 7 13:47:57 dl380g5a crmd: [19263]: info: process_lrm_event: LRM operation prmStonith2-3_monitor_30000 (call=30, rc=14, cib-update=89, confirmed=false) status: unknown
2429+ Jan 7 13:47:57 x3650a crmd: [19263]: info: process_lrm_event: LRM operation prmStonith2-3_monitor_30000 (call=30, rc=14, cib-update=89, confirmed=false) status: unknown
22142430 '''
22152431 def operation_failed(self, outputobj, logelm, lconvfrm):
22162432 try:
@@ -2240,15 +2456,19 @@
22402456 Convert log message which means operation for OCF resource timed out.
22412457 This function is common for start, stop, monitor, promote, demote.
22422458 MsgNo.1-4)
2243- Jan 6 17:41:35 dl380g5a crmd: [1404]: ERROR: process_lrm_event: LRM operation prmApPostgreSQLDB_start_0 (25) Timed Out (timeout=30000ms)
2459+ Jan 6 17:41:35 x3650a crmd: [1404]: ERROR: process_lrm_event: LRM operation prmApPostgreSQLDB_start_0 (25) Timed Out (timeout=30000ms)
22442460 MsgNo.2-4)
2245- Jan 6 18:19:47 dl380g5a crmd: [7948]: ERROR: process_lrm_event: LRM operation prmApPostgreSQLDB_stop_0 (27) Timed Out (timeout=30000ms)
2461+ Jan 6 18:19:47 x3650a crmd: [7948]: ERROR: process_lrm_event: LRM operation prmApPostgreSQLDB_stop_0 (27) Timed Out (timeout=30000ms)
22462462 MsgNo.3-3)
2247- Jan 6 19:55:31 dl380g5a crmd: [28183]: ERROR: process_lrm_event: LRM operation prmExPostgreSQLDB_monitor_10000 (27) Timed Out (timeout=30000ms)
2463+ Jan 6 19:55:31 x3650a crmd: [28183]: ERROR: process_lrm_event: LRM operation prmExPostgreSQLDB_monitor_10000 (27) Timed Out (timeout=30000ms)
22482464 MsgNo.4-4)
2249- Jan 6 17:41:35 dl380g5a crmd: [1404]: ERROR: process_lrm_event: LRM operation prmStateful:1_promote_0 (25) Timed Out (timeout=30000ms)
2465+ Jan 6 17:41:35 x3650a crmd: [1404]: ERROR: process_lrm_event: LRM operation prmStateful:1_promote_0 (25) Timed Out (timeout=30000ms)
22502466 MsgNo.5-4)
2251- Jan 6 17:41:35 dl380g5a crmd: [1404]: ERROR: process_lrm_event: LRM operation prmStateful:1_demote_0 (25) Timed Out (timeout=30000ms)
2467+ Jan 6 17:41:35 x3650a crmd: [1404]: ERROR: process_lrm_event: LRM operation prmStateful:1_demote_0 (25) Timed Out (timeout=30000ms)
2468+ MsgNo.11-4)
2469+ Mar 24 11:59:21 x3650e crmd: [3181]: ERROR: process_lrm_event: LRM operation prmGuest-a1_migrate_to_0 (42) Timed Out (timeout=120000ms)
2470+ MsgNo.12-4)
2471+ Mar 24 12:16:15 x3650f crmd: [3356]: ERROR: process_lrm_event: LRM operation prmGuest-a1_migrate_from_0 (48) Timed Out (timeout=120000ms)
22522472 '''
22532473 def operation_timedout_ocf(self, outputobj, logelm, lconvfrm):
22542474 try:
@@ -2270,13 +2490,11 @@
22702490
22712491 '''
22722492 Convert log message which means resource is not running.
2273- This function is only for OCF and STONITH resource's monitor
2493+ This function is only for OCF resource's monitor
22742494 (rc=OCF_NOT_RUNNING).
22752495
22762496 MsgNo.3-2)
2277- Jan 6 19:45:58 dl380g5a crmd: [23987]: info: process_lrm_event: LRM operation prmExPostgreSQLDB_monitor_10000 (call=16, rc=7, cib-update=60, confirmed=false) not running
2278- MsgNo.19-2)
2279- Jan 7 13:47:57 dl380g5a crmd: [19263]: info: process_lrm_event: LRM operation prmStonith2-3_monitor_30000 (call=30, rc=14, cib-update=89, confirmed=false) status: unknown
2497+ Jan 6 19:45:58 x3650a crmd: [23987]: info: process_lrm_event: LRM operation prmExPostgreSQLDB_monitor_10000 (call=16, rc=7, cib-update=60, confirmed=false) not running
22802498 '''
22812499 def detect_rsc_failure(self, outputobj, logelm, lconvfrm):
22822500 try:
@@ -2299,19 +2517,16 @@
22992517 Convert log message which means Node status updated.
23002518
23012519 MsgNo.6-1)
2302- Jan 19 13:15:00 dl380g5a crmd: [27020]: info: ais_status_callback: status: dl380g5b is now lost (was member)
2520+ Jan 19 13:15:00 x3650a crmd: [27020]: info: ais_status_callback: status: x3650b is now lost (was member)
23032521 MsgNo.6-2)
2304- Jan 19 13:22:09 dl380g5a crmd: [27020]: info: ais_status_callback: status: dl380g5b is now member (was lost)
2305- Jan 19 13:44:25 dl380g5a crmd: [27020]: info: ais_status_callback: status: dl380g5b is now member
2522+ Jan 19 13:22:09 x3650a crmd: [27020]: info: ais_status_callback: status: x3650b is now member (was lost)
2523+ Jan 19 13:44:25 x3650a crmd: [27020]: info: ais_status_callback: status: x3650b is now member
23062524 '''
23072525 def node_status_updated(self, outputobj, logelm, lconvfrm):
23082526 try:
23092527 wordlist = logelm.halogmsg.split()
23102528 nodename = wordlist[2]
23112529 status = wordlist[5]
2312- old_status = ""
2313- if len(wordlist) > 5:
2314- old_status = ' '.join(wordlist[6:])
23152530 except:
23162531 return CONV_PARSE_ERROR
23172532 if self.is_empty(nodename, status):
@@ -2321,15 +2536,54 @@
23212536 output_loglevel = self.LOG_INFO_LV
23222537 if status == "lost":
23232538 output_loglevel = self.LOG_WARN_LV
2324- cstat.shutNodeSet.discard(nodename)
2325-
2326- if old_status == "":
2327- convertedlog = ("Node %s is %s" % (nodename, status))
2328- else:
2329- convertedlog = ("Node %s is %s %s" % (nodename, status, old_status))
2539+ elif status == "member":
2540+ cstat.nodeDict[nodename] = status
2541+
2542+ convertedlog = ("Node %s is %s" % (nodename, status))
23302543 outputobj.output_log(output_loglevel, convertedlog)
23312544 return CONV_OK
23322545
2546+ '''
2547+ Determine Node status.
2548+ So it outputs nothing.
2549+
2550+ MsgNo. 6-3)
2551+ Jun 14 15:04:03 x3650a pengine: [3748]: info: determine_online_status: Node x3650a is shutting down
2552+ Jun 14 15:04:56 x3650a pengine: [21571]: info: determine_online_status: Node x3650a is online
2553+ Jun 14 15:05:42 x3650a pengine: [21571]: info: determine_online_status_fencing: Node x3650b is down
2554+ '''
2555+ def node_status_determined(self, outputobj, logelm, lconvfrm):
2556+ try:
2557+ nodename = logelm.halogmsg.split()[2]
2558+ nodestat = " ".join(logelm.halogmsg.split()[4:])
2559+ except:
2560+ return CONV_PARSE_ERROR
2561+
2562+ if self.is_empty(nodename, nodestat):
2563+ return CONV_ITEM_EMPTY
2564+
2565+ cstat.nodeDict[nodename] = nodestat
2566+ return CONV_OK
2567+
2568+ '''
2569+ Detect node status was updated to offline.
2570+ Output nothing.
2571+
2572+ MsgNo. 6-4)
2573+ Jan 11 13:08:49 x3650a crmd: [1682]: notice: crmd_peer_update: Status update: Client x3650b/crmd now has status [offline] (DC=x3650c)
2574+ '''
2575+ def node_status_offline(self, outputobj, logelm, lconvfrm):
2576+ try:
2577+ nodename = logelm.halogmsg.split()[4].split("/")[0]
2578+ except:
2579+ return CONV_PARSE_ERROR
2580+
2581+ if self.is_empty(nodename):
2582+ return CONV_ITEM_EMPTY
2583+
2584+ cstat.nodeDict[nodename] = "offline"
2585+ return CONV_OK
2586+
23332587 ##########
23342588 # For Interconnect-LAN status event and
23352589 # Network status event (detected by pingd).
@@ -2338,7 +2592,7 @@
23382592 Convert log message which means Interconnect-LAN status changed to "dead"
23392593
23402594 MsgNo.7-1)
2341- Jan 19 10:56:53 dl380g5a corosync[22855]: [TOTEM ] totemrrp.c:1085 Marking seqid 1287 ringid 0 interface 192.168.101.1 FAULTY - adminisrtative intervention required.
2595+ Jan 19 10:56:53 x3650a corosync[22855]: [TOTEM ] Marking seqid 1287 ringid 0 interface 192.168.101.1 FAULTY - adminisrtative intervention required.
23422596 '''
23432597 def detect_iconnlan_dead(self, outputobj, logelm, lconvfrm):
23442598 try:
@@ -2360,12 +2614,13 @@
23602614 See also the comment on detect_iconnlan_dead().
23612615
23622616 MsgNo.8-1)
2363- Jan 13 16:24:13 dl380g5a pingd: [8849]: info: stand_alone_ping: Node 192.168.201.254 is unreachable (write)
2364- Jan 28 12:51:51 dl380g5a pingd: [16908]: info: stand_alone_ping: Node 192.168.201.254 is unreachable (read)
2617+ Jul 21 19:00:20 x3650a ping[2206]: WARNING: 192.168.201.254 is inactive: PING 192.168.201.254 (192.168.201.254) 56(84) bytes of data. [snip]
23652618 '''
23662619 def detect_node_dead(self, outputobj, logelm, lconvfrm):
23672620 try:
2368- nodename = logelm.halogmsg.split()[2]
2621+ wordlist = logelm.halogmsg.split()
2622+ idx = wordlist.index("is") - 1
2623+ nodename = wordlist[idx]
23692624 except:
23702625 return CONV_PARSE_ERROR
23712626 if self.is_empty(nodename):
@@ -2382,7 +2637,7 @@
23822637 Convert log message which means disk error.
23832638
23842639 MsgNo.9-1)
2385- Jun 24 20:19:53 dl380g5a diskd: [22126]: WARN: check_status: disk status is changed, attr_name=diskcheck_status_internal, target=/tmp, new_status=ERROR
2640+ Jun 24 20:19:53 x3650a diskd: [22126]: WARN: check_status: disk status is changed, attr_name=diskcheck_status_internal, target=/tmp, new_status=ERROR
23862641 '''
23872642 def detect_disk_error(self, outputobj, logelm, lconvfrm):
23882643 try:
@@ -2399,6 +2654,131 @@
23992654 outputobj.output_log(lconvfrm.loglevel, convertedlog)
24002655 return CONV_OK
24012656
2657+ #########
2658+ # For respawn process event.
2659+ #########
2660+ '''
2661+ Convert log message which means respawn process start.
2662+
2663+ MsgNo.10-1)
2664+ < Load Pacemaker - ver:0 >
2665+ Jul 27 17:29:52 x3650a corosync[19457]: [pcmk ] info: spawn_child: Forked child 5800 for process cib
2666+ < Load Pacemaker - ver:1 >
2667+ Jul 27 17:29:52 x3650a pacemakerd: [2781]: info: start_child: Forked child 5800 for process cib
2668+ '''
2669+ def respawn_start(self, outputobj, logelm, lconvfrm):
2670+ try:
2671+ wordlist = logelm.halogmsg.split()
2672+ procname = wordlist[-1]
2673+ pid = wordlist[-4]
2674+ except:
2675+ return CONV_PARSE_ERROR
2676+ if self.is_empty(procname, pid):
2677+ return CONV_ITEM_EMPTY
2678+
2679+ convertedlog = ("Start \"%s\" process. (pid=%s)" % (procname, pid))
2680+ outputobj.output_log(lconvfrm.loglevel, convertedlog)
2681+ return CONV_OK
2682+
2683+ '''
2684+ Convert log message which means respawn process exited with error.
2685+
2686+ MsgNo.10-2)
2687+ < Load Pacemaker - ver:0 >
2688+ Jul 20 15:25:16 srv-a1 corosync[14293]: [pcmk ] ERROR: pcmk_wait_dispatch: Child process attrd exited (pid=25803, rc=2)
2689+ < Load Pacemaker - ver:1 >
2690+ Jul 20 15:47:47 x3650a pacemakerd: [2393]: ERROR: pcmk_child_exit: Child process attrd exited (pid=25803, rc=2)
2691+ '''
2692+ def respawn_exited_abnormally(self, outputobj, logelm, lconvfrm):
2693+ try:
2694+ wordlist = logelm.halogmsg.split()
2695+ procname = wordlist[-4]
2696+ pid = self.trimmark(wordlist[-2],"=").split("=")[1]
2697+ exitcode = self.trimmark(wordlist[-1],"=").split("=")[1]
2698+ except:
2699+ return CONV_PARSE_ERROR
2700+ if self.is_empty(procname, pid, exitcode):
2701+ return CONV_ITEM_EMPTY
2702+
2703+ convertedlog = ("Managed \"%s\" process exited. (pid=%s, rc=%s)" % (procname, pid, exitcode))
2704+ outputobj.output_log(lconvfrm.loglevel, convertedlog)
2705+ return CONV_OK
2706+
2707+ '''
2708+ Convert log message which means respawn process killed by signal.
2709+
2710+ MsgNo.10-3)
2711+ < Load Pacemaker - ver:0 >
2712+ Jul 20 15:46:43 x3650a corosync[21307]: [pcmk ] ERROR: pcmk_wait_dispatch: Child process crmd terminated with signal 9 (pid=22591, core=false)
2713+ < Load Pacemaker - ver:1 >
2714+ Jul 20 15:46:43 x3650a pacemakerd: [27029]: notice: pcmk_child_exit: Child process crmd terminated with signal 9 (pid=22591, rc=0)
2715+ '''
2716+ def respawn_killed(self, outputobj, logelm, lconvfrm):
2717+ try:
2718+ wordlist = logelm.halogmsg.split()
2719+ procname = wordlist[-7]
2720+ signum = wordlist[-3]
2721+ pid = self.trimmark(wordlist[-2],"=").split("=")[1]
2722+ except:
2723+ return CONV_PARSE_ERROR
2724+ if self.is_empty(procname, pid, signum):
2725+ return CONV_ITEM_EMPTY
2726+
2727+ convertedlog = ("Managed \"%s\" process terminated with signal %s. (pid=%s)" % (procname, signum, pid))
2728+ outputobj.output_log(lconvfrm.loglevel, convertedlog)
2729+ return CONV_OK
2730+
2731+ '''
2732+ Convert log message which means respawn process exited normally in shutdown process.
2733+
2734+ MsgNo.10-6)
2735+ < Load Pacemaker - ver:0 >
2736+ Jul 27 17:30:34 x3650a corosync[2393]: [pcmk ] notice: pcmk_shutdown: attrd confirmed stopped
2737+ < Load Pacemaker - ver:1 >
2738+ Jul 27 17:30:34 x3650a pacemakerd: [2393]: notice: pcmk_child_exit: Child process attrd exited (pid=25803, rc=0)
2739+ '''
2740+ def respawn_exited_normally(self, outputobj, logelm, lconvfrm):
2741+ try:
2742+ pid = ""
2743+ wordlist = logelm.halogmsg.split()
2744+ if wordlist[0] == "pcmk_child_exit:":
2745+ procname = wordlist[-4]
2746+ pid = self.trimmark(wordlist[-2],"=").split("=")[1]
2747+ else:
2748+ procname = wordlist[-3]
2749+
2750+ if pid != "":
2751+ pid = " (pid=" + pid + ")"
2752+ except:
2753+ return CONV_PARSE_ERROR
2754+ if self.is_empty(procname):
2755+ return CONV_ITEM_EMPTY
2756+
2757+ convertedlog = ("Stop \"%s\" process normally.%s" % (procname, pid))
2758+ outputobj.output_log(lconvfrm.loglevel, convertedlog)
2759+ return CONV_OK
2760+
2761+ '''
2762+ Convert log message which means do respawning too frequently in a short term.
2763+
2764+ MsgNo.10-7)
2765+ < Load Pacemaker - ver:0 >
2766+ Jul 27 17:23:40 x3650a corosync[24263]: [pcmk ] ERROR: pcmk_wait_dispatch: Child respawn count exceeded by attrd
2767+ < Load Pacemaker - ver:1 >
2768+ Jul 27 17:23:40 x3650a pacemakerd: [13090]: ERROR: pcmk_child_exit: Child respawn count exceeded by attrd
2769+ '''
2770+ def respawn_too_fast(self, outputobj, logelm, lconvfrm):
2771+ try:
2772+ procname = logelm.halogmsg.split()[-1]
2773+ except:
2774+ return CONV_PARSE_ERROR
2775+ if self.is_empty(procname):
2776+ return CONV_ITEM_EMPTY
2777+
2778+ convertedlog = ("Respawn count exceeded by \"%s\"." % (procname))
2779+ outputobj.output_log(lconvfrm.loglevel, convertedlog)
2780+ return CONV_OK
2781+
24022782 ##########
24032783 # For Fail Over.
24042784 ##########
@@ -2425,7 +2805,7 @@
24252805 If not or it is already in F/O process, it outputs nothing.
24262806
24272807 MsgNo.F0-1, F9-1, F10-1)
2428- Jan 5 15:19:20 hanode1 crmd: [17659]: info: do_state_transition: State transition S_IDLE -> S_POLICY_ENGINE [ input=I_PE_CALC cause=C_FSA_INTERNAL origin=abort_transition_graph ]
2808+ Jan 5 15:19:20 x3650a crmd: [17659]: info: do_state_transition: State transition S_IDLE -> S_POLICY_ENGINE [ input=I_PE_CALC cause=C_FSA_INTERNAL origin=abort_transition_graph ]
24292809 '''
24302810 def detect_pe_calc(self, outputobj, logelm, lconvfrm):
24312811 cstat.IN_CALC = True
@@ -2435,34 +2815,6 @@
24352815 self.rscstatList = None
24362816 self.rscstatList = list()
24372817
2438- # If any failure didn't occur and corosync is not in shutdown process,
2439- # and the node on localhost is not in shutting down,
2440- # check each attribute's value to decide whether it is F/O or not.
2441- if cstat.FAILURE_OCCURRED == False and HOSTNAME not in cstat.shutNodeSet:
2442- nodeset = self.get_onlinenode()
2443- if nodeset == None:
2444- return CONV_GETINFO_ERROR
2445- for node in (nodeset - cstat.shutNodeSet):
2446- # Check each attribute's value.
2447- for attrRule in attrRuleList:
2448- attrname, op, attrval = tuple(attrRule)
2449- # Check attribute's value for each node.
2450- # Now, the node seems to be active.
2451- result = self.check_attribute(attrname, op, attrval, node)[0]
2452- if result == True:
2453- # attribute's value means "failure(s) occurred"!
2454- cstat.FAILURE_OCCURRED = FAIL_SCORE
2455- if cstat.ACTRSC_MOVE == FAIL_MOVE or \
2456- cstat.ACTRSC_MOVE == FAIL_STP:
2457- self.detect_fo_start(outputobj)
2458- # [COMMENT]
2459- # result == False:
2460- # attribute did not change or
2461- # it was updated to normal value.
2462- # result == None:
2463- # some errors occurred in check_attribute() or
2464- # the node is not running or
2465- # specified attribute does not exist.
24662818 return CONV_OK
24672819
24682820 '''
@@ -2471,10 +2823,10 @@
24712823 It considers that F/O succeeded when all of specified resources
24722824 (with the parameter OPT_ACTRSC in config file) are running,
24732825 and if any resource at all stops, it considers F/O failed.
2474- This function is called when cluster status became "S_IDLE".
2826+ This function is called when cluster status became "S_IDLE" or "S_STOPPING".
24752827
24762828 MsgNo.F0-2, F12-1, F12-2)
2477- Jan 5 14:50:07 hanode1 crmd: [13198]: info: do_state_transition: State transition S_TRANSITION_ENGINE -> S_IDLE [ input=I_TE_SUCCESS cause=C_FSA_INTERNAL origin=notify_crmd ]
2829+ Jan 5 14:50:07 x3650a crmd: [13198]: info: do_state_transition: State transition S_TRANSITION_ENGINE -> S_IDLE [ input=I_TE_SUCCESS cause=C_FSA_INTERNAL origin=notify_crmd ]
24782830 '''
24792831 def detect_fo_complete(self, outputobj, logelm, lconvfrm):
24802832
@@ -2488,9 +2840,9 @@
24882840 break
24892841
24902842 if cstat.IN_FO_PROCESS == False:
2491- self.clear_status()
2843+ self.clear_status_except_node()
24922844 return CONV_OK
2493- self.clear_status()
2845+ self.clear_status_except_node()
24942846
24952847 # When one or more Unmanaged resource exists in the cluster,
24962848 # (even if the resource is not set in act_rsc)
@@ -2510,15 +2862,16 @@
25102862 detect_fo_failed = False
25112863 for rscstat in self.rscstatList:
25122864 if rscstat.rscid in actRscList:
2513- if rscstat.fofailed or rscstat.status == "Stopped" :
2865+ if rscstat.status == "Stopped" :
25142866 output_loglevel = self.LOG_ERR_LV
25152867 output_status = ("Stopped")
25162868 detect_fo_failed = True
25172869 else:
25182870 output_loglevel = self.LOG_INFO_LV
25192871 output_status = rscstat.status
2520- convertedlog = ("Resource %s : %s" % (rscstat.rscid, output_status))
2521- outputobj.output_log(output_loglevel, convertedlog)
2872+ if not (rscstat.status != "Stopped" and rscstat.operated != True):
2873+ convertedlog = ("Resource %s : %s" % (rscstat.rscid, output_status))
2874+ outputobj.output_log(output_loglevel, convertedlog)
25222875
25232876 if detect_fo_failed:
25242877 outputobj.output_log(self.LOG_ERR_LV, "fail-over failed.")
@@ -2528,11 +2881,25 @@
25282881 return CONV_OK
25292882
25302883 '''
2884+ Node is not DC.
2885+ Output nothing.
2886+
2887+ MsgNo.F0-3)
2888+ Jan 5 14:50:07 x3650a crmd: [13198]: info: do_state_transition: State transition S_PENDING -> S_NOT_DC [ input=I_NOT_DC cause=C_HA_MESSAGE origin=do_cl_join_finalize_respond ]
2889+ '''
2890+ def detect_not_dc(self, outputobj, logelm, lconvfrm):
2891+ for node in cstat.nodeDict.keys():
2892+ if cstat.nodeDict[node] != "offline":
2893+ cstat.nodeDict.pop(node)
2894+
2895+ return CONV_OK
2896+
2897+ '''
25312898 Node detects some failures in the cluster.
25322899 Output nothing.
25332900
25342901 MsgNo.F1-1, F1-2, F2-1, F2-2, F3-1, F3-2, F4-1, F4-2, F6-1, F6-2)
2535- Feb 25 13:31:37 logconv1 crmd: [11105]: WARN: update_failcount: Updating failcount for prmApPostgreSQLDB on logconv1 after failed monitor: rc=1 (update=value++, time=1267072297)
2902+ Feb 25 13:31:37 x3650a crmd: [11105]: WARN: update_failcount: Updating failcount for prmApPostgreSQLDB on x3650a after failed monitor: rc=1 (update=value++, time=1267072297)
25362903 '''
25372904 def dc_detect_failure(self, outputobj, logelm, lconvfrm):
25382905 return CONV_OK
@@ -2542,7 +2909,7 @@
25422909 Output nothing.
25432910
25442911 MsgNo.F7-1, F7-2, F7-3, F7-4, F8-1)
2545- Jan 5 10:02:19 hanode1 crmd: [9728]: WARN: match_down_event: No match for shutdown action on hanode2
2912+ Jul 15 13:14:59 x3650a crmd: [31869]: WARN: match_down_event: No match for shutdown action on x3650b
25462913 '''
25472914 def dc_detect_node_failure(self, outputobj, logelm, lconvfrm):
25482915 try:
@@ -2553,8 +2920,8 @@
25532920 if self.is_empty(nodename):
25542921 return CONV_ITEM_EMPTY
25552922
2556- if nodename in cstat.shutNodeSet:
2557- pm_log.debug("The [%s] exists in the shutdown list." % (nodename))
2923+ if cstat.nodeDict.has_key(nodename) and cstat.nodeDict[nodename] != "online":
2924+ pm_log.debug("The [%s] is not online." % (nodename))
25582925 pm_log.debug("Ignore the fotrigger flag setting.")
25592926 return CONV_SHUT_NODE
25602927
@@ -2566,7 +2933,7 @@
25662933 So it outputs nothing.
25672934
25682935 MsgNo. F11-1)
2569- Jan 5 15:12:25 hanode1 pengine: [16657]: notice: LogActions: Start prmExPostgreSQLDB (hanode1)
2936+ Jan 5 15:12:25 x3650a pengine: [16657]: notice: LogActions: Start prmExPostgreSQLDB (x3650a)
25702937 '''
25712938 def add_rsc_start(self, outputobj, logelm, lconvfrm):
25722939 try:
@@ -2593,7 +2960,7 @@
25932960 This is to get resource status when F/O finished.
25942961
25952962 MsgNo. F11-2)
2596- Jan 5 15:19:23 hanode1 pengine: [17658]: notice: LogActions: Stop resource prmExPostgreSQLDB (hanode1)
2963+ Jan 5 15:19:23 x3650a pengine: [17658]: notice: LogActions: Stop prmExPostgreSQLDB (x3650a)
25972964 '''
25982965 def add_rsc_stop(self, outputobj, logelm, lconvfrm):
25992966 try:
@@ -2610,7 +2977,12 @@
26102977
26112978 if rscid in actRscList:
26122979 cstat.ACTRSC_MOVE = FAIL_STP
2613- if cstat.FAILURE_OCCURRED == FAIL_RSC or cstat.FAILURE_OCCURRED == FAIL_SCORE:
2980+ if cstat.FAILURE_OCCURRED == False and self.check_unmatch_attr_rule() == True:
2981+ cstat.FAILURE_OCCURRED = FAIL_SCORE
2982+ if \
2983+ cstat.FAILURE_OCCURRED == FAIL_RSC or \
2984+ cstat.FAILURE_OCCURRED == FAIL_SCORE or \
2985+ cstat.FAILURE_OCCURRED == FAIL_NODE:
26142986 self.detect_fo_start(outputobj)
26152987 return CONV_OK
26162988
@@ -2620,33 +2992,37 @@
26202992 So it outputs nothing.
26212993
26222994 MsgNo.F11-3)
2623- Jan 5 15:36:42 hanode1 pengine: [27135]: notice: LogActions: Leave resource prmFsPostgreSQLDB1 (Started hanode1)
2995+ Jan 5 15:36:42 x3650a pengine: [27135]: notice: LogActions: Leave prmFsPostgreSQLDB1 (Started x3650a)
2996+ MsgNo.F11-5)
2997+ Jan 5 15:36:42 x3650a pengine: [27135]: notice: LogActions: Leave prmFsPostgreSQLDB1 (Started unmanaged)
26242998 MsgNo.F11-8)
2625- Jan 5 14:50:05 hanode1 pengine: [13197]: notice: LogActions: Restart resource prmIpPostgreSQLDB (Started hanode2)
2999+ Jan 5 14:50:05 x3650a pengine: [13197]: notice: LogActions: Restart prmIpPostgreSQLDB (Started x3650b)
26263000 MsgNo.F11-9)
2627- Jan 5 14:50:41 hanode1 pengine: [13197]: notice: LogActions: Leave resource prmPingd:0 (Stopped)
3001+ Jan 5 14:50:41 x3650a pengine: [13197]: notice: LogActions: Leave prmPingd:0 (Stopped)
26283002 '''
26293003 def add_no_action(self, outputobj, logelm, lconvfrm):
26303004 try:
26313005 wordlist = logelm.halogmsg.split()
2632- rscid = wordlist[3]
2633- status = self.trimmark(wordlist[4])
3006+ rscid = wordlist[2]
3007+ status = self.trimmark(wordlist[3])
26343008 node = ""
2635- if len(wordlist) >= 6:
2636- node = self.trimmark(wordlist[5])
3009+ if len(wordlist) >= 5:
3010+ node = self.trimmark(wordlist[4])
26373011 except:
26383012 return CONV_PARSE_ERROR
26393013 if self.is_empty(rscid, status):
26403014 return CONV_ITEM_EMPTY
26413015
2642- # Set the resource's status to the list.
2643- if node != "":
2644- statstr = ("%s on %s" % (status, node))
2645- else:
2646- statstr = ("%s" % (status))
2647- self.set_rscstat(rscid, statstr, None, None)
2648-
2649- if statstr == "Stopped":
3016+ # Set the resource's status flag to the list.
3017+ unmanaged = None
3018+ if node == "unmanaged":
3019+ status = None
3020+ unmanaged = True
3021+ elif node != "":
3022+ status = ("%s on %s" % (status, node))
3023+ self.set_rscstat(rscid, status, unmanaged, None)
3024+
3025+ if status == "Stopped":
26503026 if rscid in actRscList:
26513027 cstat.ACTRSC_MOVE = FAIL_STPD
26523028 if cstat.FAILURE_OCCURRED == FAIL_NODE:
@@ -2654,68 +3030,21 @@
26543030 return CONV_OK
26553031
26563032 '''
2657- Detect resouce cannot run anywhere.
2658- This is to get resource status when F/O finished.
2659- So it outputs nothing.
2660-
2661- MsgNo. F11-4)
2662- Jan 5 15:19:20 hanode1 pengine: [17658]: WARN: native_color: Resource prmApPostgreSQLDB cannot run anywhere
2663- '''
2664- def detect_cannot_run_anywhere(self, outputobj, logelm, lconvfrm):
2665- try:
2666- wordlist = logelm.halogmsg.split()
2667- rscid = wordlist[2]
2668- except:
2669- return CONV_PARSE_ERROR
2670- if self.is_empty(rscid):
2671- return CONV_ITEM_EMPTY
2672-
2673- # Set the resource's status to the list.
2674- self.set_rscstat(rscid, None, True, None)
2675- return CONV_OK
2676-
2677- '''
2678- Detect resouce became unmanaged.
2679- This is to get resource status when F/O finished.
2680- So it outputs nothing.
2681- When resource become *managed*, no particular log appears like
2682- "resource A is managed", the cluster just becomes S_POLICY_ENGINE and
2683- starts PE calcuration.
2684- So, to clear the "unmanaged" flag in RscStat,
2685- initialize the rscstatusList object in detect_pe_calc().
2686-
2687- MsgNo. F11-5)
2688- Jan 5 10:04:09 hanode1 pengine: [9727]: info: native_color: Unmanaged resource prmApPostgreSQLDB allocated to 'nowhere': inactive
2689- '''
2690- def detect_rsc_unmanaged(self, outputobj, logelm, lconvfrm):
2691- try:
2692- wordlist = logelm.halogmsg.split()
2693- rscid = wordlist[3]
2694- except:
2695- return CONV_PARSE_ERROR
2696- if self.is_empty(rscid):
2697- return CONV_ITEM_EMPTY
2698-
2699- # Set the resource's status to the list.
2700- self.set_rscstat(rscid, None, None, True)
2701- return CONV_OK
2702-
2703- '''
27043033 Detect resource move action added.
27053034 This is to get resource status when F/O started.
27063035
27073036 MsgNo. F11-6)
2708- Jan 5 15:12:27 hanode1 pengine: [16657]: notice: LogActions: Move resource prmExPostgreSQLDB (Started hanode1 -> hanode2)
3037+ Jan 5 15:12:27 x3650a pengine: [16657]: notice: LogActions: Move prmExPostgreSQLDB (Started x3650a -> x3650b)
27093038 '''
27103039 def add_rsc_move(self, outputobj, logelm, lconvfrm):
27113040 try:
27123041 wordlist = logelm.halogmsg.split()
27133042 a_nodename = self.trimmark(wordlist[-1])
27143043 f_nodename = self.trimmark(wordlist[-3])
2715- rscid = wordlist[3]
3044+ rscid = wordlist[2]
27163045 except:
27173046 return CONV_PARSE_ERROR
2718-
3047+
27193048 if self.is_empty(a_nodename, rscid):
27203049 return CONV_ITEM_EMPTY
27213050
@@ -2725,8 +3054,40 @@
27253054
27263055 if rscid in actRscList:
27273056 cstat.ACTRSC_MOVE = FAIL_MOVE
2728- if cstat.FAILURE_OCCURRED == FAIL_RSC or cstat.FAILURE_OCCURRED == FAIL_SCORE:
3057+ if cstat.FAILURE_OCCURRED == False and self.check_unmatch_attr_rule() == True:
3058+ cstat.FAILURE_OCCURRED = FAIL_SCORE
3059+ if \
3060+ cstat.FAILURE_OCCURRED == FAIL_RSC or \
3061+ cstat.FAILURE_OCCURRED == FAIL_SCORE or \
3062+ cstat.FAILURE_OCCURRED == FAIL_NODE:
27293063 self.detect_fo_start(outputobj)
3064+ return CONV_OK
3065+
3066+ '''
3067+ Resource initiating action.
3068+ This is to get resource status when F/O finished.
3069+ So it outputs nothing.
3070+
3071+ MsgNo. F11-10)
3072+ May 27 11:23:50 x3650a crmd: [8108]: info: te_rsc_command: Initiating action 25: start prmExPostgreSQLDB_start_0 on x3650a (local)
3073+ May 27 11:23:50 x3650a crmd: [8108]: info: te_rsc_command: Initiating action 25: start prmExPostgreSQLDB_start_0 on x3650b
3074+ '''
3075+ def rsc_init_action(self, outputobj, logelm, lconvfrm):
3076+ if cstat.IN_FO_PROCESS == False:
3077+ return CONV_OK
3078+
3079+ try:
3080+ rscid, op = self.parse_opid(logelm.halogmsg.split()[5])[:2]
3081+ if op == "monitor":
3082+ return CONV_OK
3083+ except:
3084+ return CONV_PARSE_ERROR
3085+
3086+ if self.is_empty(rscid):
3087+ return CONV_ITEM_EMPTY
3088+
3089+ if rscid in actRscList:
3090+ self.set_rscstat(rscid, None, None, True)
27303091
27313092 return CONV_OK
27323093
@@ -2737,7 +3098,7 @@
27373098 Convert log message which means DC election is complete.
27383099
27393100 MsgNo.13-2)
2740- Jan 6 14:16:18 dl380g5a crmd: [9874]: info: update_dc: Set DC to dl380g5a (3.0.1)
3101+ Jan 6 14:16:18 x3650a crmd: [9874]: info: update_dc: Set DC to x3650a (3.0.1)
27413102 '''
27423103 def dc_election_complete(self, outputobj, logelm, lconvfrm):
27433104 try:
@@ -2755,7 +3116,7 @@
27553116 Convert log message which means unset DC node.
27563117
27573118 MsgNo.13-5)
2758- Jan 12 11:22:18 dl380g5b crmd: [5796]: info: update_dc: Unset DC dl380g5b
3119+ Jan 12 11:22:18 x3650a crmd: [5796]: info: update_dc: Unset DC x3650a
27593120 '''
27603121 def detect_unset_dc(self, outputobj, logelm, lconvfrm):
27613122 try:
@@ -2770,14 +3131,27 @@
27703131 return CONV_OK
27713132
27723133 ##########
2773- # For pacemaker and corosync service shutdown.
3134+ # For Pacemaker and Corosync service shutdown.
27743135 ##########
27753136 '''
2776- Convert log message which means pacemaker service on the node
3137+ Detect Corosync service on localhost shutdown complete.
3138+ Output message is static, but to remove the node name from
3139+ node list, detect the message with peculiar function.
3140+
3141+ MsgNo.14-2)
3142+ Jan 18 10:49:13 x3650a corosync[3580]: [MAIN ] Corosync Cluster Engine exiting with status 0 at main.c:184.
3143+ '''
3144+ def detect_cs_shutdown(self, outputobj, logelm, lconvfrm):
3145+ outputobj.output_log(lconvfrm.loglevel, lconvfrm.rulename)
3146+ cstat.nodeDict.clear()
3147+ return CONV_OK
3148+
3149+ '''
3150+ Convert log message which means Pacemaker service on the node
27773151 in the cluster send shutdown request.
27783152
2779- MsgNo.14-1)
2780- Jan 18 10:35:08 dl380g5a crmd: [10975]: info: handle_shutdown_request: Creating shutdown request for dl380g5b (state=S_IDLE)
3153+ MsgNo.14-5)
3154+ Jan 18 10:35:08 x3650a crmd: [10975]: info: handle_shutdown_request: Creating shutdown request for x3650b (state=S_IDLE)
27813155 '''
27823156 def detect_shutdown_request(self, outputobj, logelm, lconvfrm):
27833157 try:
@@ -2787,45 +3161,16 @@
27873161 if self.is_empty(nodename):
27883162 return CONV_ITEM_EMPTY
27893163
2790- cstat.shutNodeSet.add(nodename)
27913164 convertedlog = ("Pacemaker on %s is shutting down." % (nodename))
27923165 outputobj.output_log(lconvfrm.loglevel, convertedlog)
27933166 return CONV_OK
27943167
27953168 '''
2796- Detect corosync service on localhost shutdown complete.
2797- Output message is static, but to remove the node name from
2798- shutting down node list, detect the message with
2799- peculiar function.
2800-
2801- MsgNo.14-2)
2802- Jan 18 10:49:13 dl380g5a corosync[10963]: [MAIN ] Corosync Cluster Engine exiting with status -1 at main.c:163.
2803- '''
2804- def detect_cs_shutdown(self, outputobj, logelm, lconvfrm):
2805- outputobj.output_log(lconvfrm.loglevel, lconvfrm.rulename)
2806- cstat.shutNodeSet.discard(HOSTNAME)
2807- return CONV_OK
2808-
2809- '''
2810- Detect pacemaker service on localhost starts to shutdown.
2811- Output message is static, but to add localhost name to
2812- shutting down node list, detect the message with
2813- peculiar function.
2814-
2815- MsgNo.14-3)
2816- Jan 18 10:36:18 dl380g5b crmd: [12294]: info: crm_shutdown: Requesting shutdown
2817- '''
2818- def detect_pcmk_shutting_down(self, outputobj, logelm, lconvfrm):
2819- cstat.shutNodeSet.add(HOSTNAME)
2820- outputobj.output_log(lconvfrm.loglevel, lconvfrm.rulename)
2821- return CONV_OK
2822-
2823- '''
2824- Convert log message which means pacemaker service on node
3169+ Convert log message which means Pacemaker service on node
28253170 send shutdown request.
28263171
2827- MsgNo.14-4)
2828- Jan 18 10:35:26 dl380g5a cib: [10971]: info: cib_process_shutdown_req: Shutdown REQ from dl380g5b
3172+ MsgNo.14-6)
3173+ Jan 18 10:35:26 x3650a cib: [10971]: info: cib_process_shutdown_req: Shutdown REQ from x3650b
28293174 '''
28303175 def detect_dc_shutdown_request(self, outputobj, logelm, lconvfrm):
28313176 try:
@@ -2835,7 +3180,7 @@
28353180 if self.is_empty(nodename):
28363181 return CONV_ITEM_EMPTY
28373182
2838- cstat.shutNodeSet.add(nodename)
3183+ cstat.nodeDict[nodename] = "shutting down"
28393184 return CONV_OK
28403185
28413186 ##########
@@ -2850,7 +3195,7 @@
28503195 Get resource id and operation type which lrmd detected timed out.
28513196
28523197 MsgNo.17-4)
2853- Jan 7 11:02:43 dl380g5a lrmd: [7180]: WARN: prmStonith2-3:start process (PID 7351) timed out (try 1). Killing with signal SIGTERM (15).
3198+ Jan 7 11:02:43 x3650a lrmd: [7180]: WARN: prmStonith2-3:start process (PID 7351) timed out (try 1). Killing with signal SIGTERM (15).
28543199 '''
28553200 def detect_rscop_timedout_lrmd(self, outputobj, logelm, lconvfrm):
28563201 try:
@@ -2868,7 +3213,7 @@
28683213 Get resource id and operation type which stonithd detected timed out.
28693214
28703215 MsgNo.19-3)
2871- Jan 7 14:20:16 dl380g5a stonithd: [14714]: WARN: external_prmStonith2-3_monitor process (PID 16383) timed out (try 1). Killing with signal SIGTERM (15).
3216+ Jan 7 14:20:16 x3650a stonithd: [14714]: WARN: external_prmStonith2-3_monitor process (PID 16383) timed out (try 1). Killing with signal SIGTERM (15).
28723217 '''
28733218 def detect_rscop_timedout_stonithd(self, outputobj, logelm, lconvfrm):
28743219 try:
@@ -2882,7 +3227,7 @@
28823227 op = wordlist[-1]
28833228 except:
28843229 return CONV_PARSE_ERROR
2885- if self.is_empty(rscid,op):
3230+ if self.is_empty(rscid, op):
28863231 return CONV_ITEM_EMPTY
28873232
28883233 rscid_and_op = ("%s:%s" % (rscid, op))
@@ -2896,87 +3241,125 @@
28963241 '''
28973242 Convert log message which means fence operation started.
28983243
2899- MsgNo.20-1, No21-1)
2900- Jan 13 15:23:28 dl380g5a stonithd: [23731]: info: stonith_operate_locally::2713: sending fencing op RESET for dl380g5b to prmStonith2-1 (external/ssh) (pid=23852)
3244+ MsgNo.21-1)
3245+ Jul 22 11:24:58 x3650a crmd: [1997]: info: te_fence_node: Executing reboot fencing operation (28) on x3650b (timeout=40000)
29013246 '''
29023247 def fence_op_started(self, outputobj, logelm, lconvfrm):
29033248 try:
29043249 wordlist = logelm.halogmsg.split()
2905- op = wordlist[4]
2906- target = wordlist[6]
2907- msg = ' '.join(wordlist[8:])
3250+ op = wordlist[2]
3251+ target = wordlist[7]
29083252 except:
29093253 return CONV_PARSE_ERROR
2910- if self.is_empty(op, target, msg):
3254+ if self.is_empty(op, target):
29113255 return CONV_ITEM_EMPTY
29123256
2913- convertedlog = ("Try to STONITH (%s) the Node %s to %s" % (op, target, msg))
3257+ convertedlog = ("Try to STONITH(%s) %s." % (op, target))
29143258 outputobj.output_log(lconvfrm.loglevel, convertedlog)
29153259 return CONV_OK
29163260
29173261 '''
29183262 Convert log message which means fence operation succeeded.
29193263
2920- MsgNo.20-2)
2921- Jan 13 12:51:46 dl380g5a stonithd: [15595]: info: Succeeded to STONITH the node dl380g5b: optype=RESET. whodoit: dl380g5a
3264+ MsgNo.21-2)
3265+ Jul 22 11:25:06 x3650a crmd: [1997]: info: tengine_stonith_notify:
3266+ Peer x3650b was terminated (reboot) by x3650c for x3650a
3267+ (ref=cce14621-fe86-4342-bd8e-c49c510033a3): OK
29223268 '''
29233269 def fence_op_succeeded(self, outputobj, logelm, lconvfrm):
29243270 try:
29253271 wordlist = logelm.halogmsg.split()
2926- target = self.trimmark(wordlist[5])
2927-
2928- oplist = wordlist[6].split('=')
2929- op = self.trimmark(oplist[1])
2930-
2931- sniper = wordlist[-1]
3272+ tgt_node = wordlist[2]
3273+ op = self.trimmark(wordlist[5])
3274+ by_node = wordlist[7]
3275+ for_node = wordlist[9]
29323276 except:
29333277 return CONV_PARSE_ERROR
2934- if self.is_empty(target, sniper, op):
3278+ if self.is_empty(tgt_node, op, by_node, for_node):
29353279 return CONV_ITEM_EMPTY
29363280
2937- convertedlog = ("Succeeded to STONITH (%s) " % (op) + "the Node %s by Node %s." % (target, sniper))
2938- outputobj.output_log(lconvfrm.loglevel, convertedlog)
3281+ if for_node == HOSTNAME:
3282+ convertedlog = ("Succeeded to STONITH(%s) %s by %s." % (op, tgt_node, by_node))
3283+ outputobj.output_log(lconvfrm.loglevel, convertedlog)
29393284 return CONV_OK
29403285
29413286 '''
29423287 Convert log message which means fence operation failed.
29433288
2944- MsgNo.20-3, 21-3)
2945- Jan 13 15:48:06 dl380g5a stonithd: [25195]: info: failed to STONITH node dl380g5b with local device prmStonith2-1 (exitcode 5), gonna try the next local device
3289+ MsgNo.21-3)
3290+ Jul 22 11:27:06 x3650a crmd: [1997]: ERROR: tengine_stonith_notify:
3291+ Peer x3650b could not be terminated (reboot) by <anyone> for x3650a
3292+ (ref=815cec65-51ac-45b2-80bd-c17a1457bad6): Operation timed out
29463293 '''
29473294 def fence_op_failed(self, outputobj, logelm, lconvfrm):
29483295 try:
29493296 wordlist = logelm.halogmsg.split()
2950- nodename = wordlist[4]
2951- exitcode = self.trimmark(wordlist[10])
3297+ tgt_node = wordlist[2]
3298+ op = self.trimmark(wordlist[7])
3299+ for_node = wordlist[11]
3300+ result = logelm.halogmsg[logelm.halogmsg.rindex("): ") + 3:]
29523301 except:
29533302 return CONV_PARSE_ERROR
2954- if self.is_empty(nodename, exitcode):
3303+ if self.is_empty(tgt_node, op, for_node, result):
29553304 return CONV_ITEM_EMPTY
29563305
2957- convertedlog = ("Failed to STONITH the Node %s " % (nodename) + "with one local device (exitcode=%s). " % (exitcode) + "Will try to use the next local device.")
3306+ if for_node == HOSTNAME:
3307+ convertedlog = ("Failed to STONITH(%s) %s (%s)." % (op, tgt_node, result))
3308+ outputobj.output_log(lconvfrm.loglevel, convertedlog)
3309+ return CONV_OK
3310+
3311+ '''
3312+ Convert log message which means executing stonith device started.
3313+
3314+ MsgNo.21-5)
3315+ Jul 22 11:30:31 dl380g5a stonith-ng: [2123]: info: stonith_fence: Exec
3316+ <stonith_command t="stonith-ng" st_async_id="0b22c6aa-4bd6-4937-bd30-847f98386786"
3317+ st_op="st_fence" st_callid="0" st_callopt="0" st_remote_op="0b22c6aa-4bd6-4937-bd30-847f98386786"
3318+ st_target="dl380g5b" st_device_action="reboot" st_timeout="36000" src="dl380g5a" seq="111" />
3319+ '''
3320+ def exec_st_device_started(self, outputobj, logelm, lconvfrm):
3321+ try:
3322+ for word in logelm.halogmsg.split(" "):
3323+ if word.startswith("st_target="):
3324+ target = self.trimmark(word.split("=")[1], plus='"')
3325+ elif word.startswith("st_device_action="):
3326+ op = self.trimmark(word.split("=")[1], plus='"')
3327+
3328+ except:
3329+ return CONV_PARSE_ERROR
3330+ if self.is_empty(op, target):
3331+ return CONV_ITEM_EMPTY
3332+
3333+ convertedlog = ("Try to exec STONITH device for %s %s." % (op, target))
29583334 outputobj.output_log(lconvfrm.loglevel, convertedlog)
29593335 return CONV_OK
29603336
29613337 '''
2962- Convert log message which means fence operation timed out.
2963-
2964- MsgNo.20-4, 21-4)
2965- Jan 13 14:08:01 dl380g5a stonithd: [20372]: ERROR: Failed to STONITH the node dl380g5b: optype=RESET, op_result=TIMEOUT
3338+ Convert log message which means executing stonith device completed.
3339+
3340+ MsgNo.21-6)
3341+ Jul 22 11:25:06 x3650a stonith-ng: [2123]: info: log_operation:
3342+ Operation 'reboot' [9168] (call 0 from (null)) for host 'x3650b' with device 'prmStonith2-1' returned: 0
3343+ MsgNo.21-7)
3344+ Jul 22 11:31:07 x3650a stonith-ng: [2123]: ERROR: log_operation:
3345+ Operation 'reboot' [9928] (call 0 from (null)) for host 'x3650b' with device 'prmStonith2-1' returned: -1
29663346 '''
2967- def fence_op_timedout(self, outputobj, logelm, lconvfrm):
3347+ def exec_st_device_completed(self, outputobj, logelm, lconvfrm):
29683348 try:
29693349 wordlist = logelm.halogmsg.split()
2970- nodename = self.trimmark(wordlist[5])
2971-
2972- oplist = wordlist[6].split('=')
2973- op = self.trimmark(oplist[1])
3350+ op = self.trimmark(wordlist[wordlist.index("Operation") + 1])
3351+ target = self.trimmark(wordlist[wordlist.index("host") + 1])
3352+ rsc = self.trimmark(wordlist[wordlist.index("device") + 1])
3353+ rtn = self.trimmark(wordlist[wordlist.index("returned:") + 1])
29743354 except:
29753355 return CONV_PARSE_ERROR
2976- if self.is_empty(nodename, op):
3356+ if self.is_empty(op, target, rsc, rtn):
29773357 return CONV_ITEM_EMPTY
29783358
2979- convertedlog = ("Failed to STONITH (%s) " % (op) + "the Node %s (Timed Out)." % (nodename))
3359+ if rtn == "0":
3360+ convertedlog = ("Succeeded to exec STONITH device(%s) for %s %s." % (rsc, op, target))
3361+ else:
3362+ convertedlog = ("Failed to exec STONITH device(%s) for %s %s." % (rsc, op, target))
29803363 outputobj.output_log(lconvfrm.loglevel, convertedlog)
29813364 return CONV_OK
29823365
@@ -2987,7 +3370,7 @@
29873370 Convert log message which means attribute value on own node updated.
29883371
29893372 MsgNo.22-1)
2990- Jun 24 09:49:58 dl380g5a attrd: [16121]: info: attrd_perform_update: Sent update 45: diskcheck_status_internal=ERROR
3373+ Jun 24 09:49:58 x3650a attrd: [16121]: notice: attrd_perform_update: Sent update 45: diskcheck_status_internal=ERROR
29913374 '''
29923375 def detect_attr_updated(self, outputobj, logelm, lconvfrm):
29933376 try:
@@ -3011,12 +3394,12 @@
30113394 '''
30123395 Convert log message which means attribute value on own node deleted.
30133396
3014- MsgNo.22-1)
3015- Jun 24 19:43:39 dl380g5a attrd: [10425]: info: attrd_perform_update: Sent delete 34: node=dl380g5a, attr=diskcheck_status, id=<n/a>, set=(null), section=status
3397+ MsgNo.22-2)
3398+ Jun 24 19:43:39 x3650a attrd: [10425]: notice: attrd_perform_update: Sent delete 34: node=x3650a, attr=diskcheck_status, id=<n/a>, set=(null), section=status
30163399 '''
30173400 def detect_attr_deleted(self, outputobj, logelm, lconvfrm):
30183401 try:
3019- attrname = logelm.halogmsg.split(',')[1].strip().split("=")[1]
3402+ attrname = logelm.halogmsg.split(',')[1].strip().split("=")[1]
30203403 except:
30213404 return CONV_PARSE_ERROR
30223405 if self.is_empty(attrname):
@@ -3026,14 +3409,43 @@
30263409 outputobj.output_log(lconvfrm.loglevel, convertedlog)
30273410 return CONV_OK
30283411
3412+ '''
3413+ Detect cib updated or added.
3414+
3415+ MsgNo. 22-3)
3416+ Jul 8 11:30:24 x3650a crmd: [4118]: info: abort_transition_graph: \
3417+ te_update_diff:150 - Triggered transition abort \
3418+ (complete=1, tag=nvpair, id=status-x3650b-default_ping_set, name=default_ping_set, value=100, magic=NA, cib=0.10.47) \
3419+ : Transient attribute: update
3420+ '''
3421+ def detect_cib_updated(self, outputobj, logelm, lconvfrm):
3422+ try:
3423+ attrval=None
3424+ for word in logelm.halogmsg.split(", "):
3425+ if word.startswith("id="):
3426+ uuid_attrname = word.split("=")[1].split("-", 1)[1]
3427+ elif word.startswith("name="):
3428+ attrname = word.split("=")[1]
3429+ elif word.startswith("value="):
3430+ attrval = word.split("=")[1]
3431+ nodename = uuid_attrname.replace("-" + attrname, "")
3432+ except:
3433+ return CONV_PARSE_ERROR
3434+
3435+ if self.is_empty(nodename, attrname, attrval):
3436+ return CONV_ITEM_EMPTY
3437+
3438+ cstat.attrDict[nodename, attrname] = attrval
3439+ return CONV_OK
3440+
30293441 ##########
3030- # For corosync service starts.
3442+ # For Corosync service starts.
30313443 ##########
30323444 '''
3033- Convert log message which means corosync service is starting.
3445+ Convert log message which means Corosync service is starting.
30343446
30353447 MsgNo.23-1)
3036- Jan 15 19:30:19 dl380g5a corosync[15232]: [MAIN ] main.c:1236 Corosync Cluster Engine ('1.2.0'): started and ready to provide service.
3448+ Jan 15 19:30:19 x3650a corosync[2657]: [MAIN ] Corosync Cluster Engine ('1.3.2'): started and ready to provide service.
30373449 '''
30383450 def detect_cs_start(self, outputobj, logelm, lconvfrm):
30393451 try:
@@ -3045,32 +3457,39 @@
30453457 if self.is_empty(version):
30463458 return CONV_ITEM_EMPTY
30473459
3460+ self.clear_status()
30483461 convertedlog = ("Starting Corosync %s." % (version))
30493462 outputobj.output_log(lconvfrm.loglevel, convertedlog)
30503463 return CONV_OK
30513464
30523465 '''
3053- Detect localhost status is set to up.
3054- Then clear all status (exclude ino, and offset).
3055- The message which is detected by detect_hb_start() appears when
3056- service corosync start on the node which corosync is already running,
3057- too.
3058- So, detect the following message to clear all status.
3059-
3060- MsgNo.23-3)
3061- Jan 28 17:51:39 dl380g5a corosync[8036]: [pcmk ] plugin.c:517 info: pcmk_startup: CRM: Initialized
3466+ Convert log message which means Pacemaker is starting.
3467+
3468+ MsgNo.23-4)
3469+ Feb 1 13:09:28 x3650a pacemakerd: [3644]: info: main: Starting Pacemaker 1.1.5 (Build: 8166a0a5011f+): \
3470+ generated-manpages agent-manpages ncurses corosync-quorum heartbeat corosync snmp libesmtp
30623471 '''
3063- def detect_localstat_up(self, outputobj, logelm, lconvfrm):
3472+ def detect_pcmk_start(self, outputobj, logelm, lconvfrm):
3473+ try:
3474+ wordlist = logelm.halogmsg.split()
3475+ version = wordlist[wordlist.index("Pacemaker") + 1].split("-")[0]
3476+ except:
3477+ return CONV_PARSE_ERROR
3478+ if self.is_empty(version):
3479+ return CONV_ITEM_EMPTY
3480+
30643481 self.clear_status()
3482+ convertedlog = ("Starting Pacemaker %s." % (version))
3483+ outputobj.output_log(lconvfrm.loglevel, convertedlog)
30653484 return CONV_OK
30663485
30673486 '''
3068- Convert log message which means Pacemaker service is starting.
3069-
3070- MsgNo.23-4)
3071- Feb 1 13:09:28 dl380g5a corosync[27247]: [SERV ] service.c:252 Service engine loaded: Pacemaker Cluster Manager 1.0.7
3487+ Convert log message which means Pacemaker service is loaded.
3488+
3489+ MsgNo.23-5)
3490+ Feb 1 13:09:28 x3650a corosync[19457]: [SERV ] Service engine loaded: Pacemaker Cluster Manager 1.1.5
30723491 '''
3073- def detect_pcmk_start(self, outputobj, logelm, lconvfrm):
3492+ def detect_pcmk_loaded(self, outputobj, logelm, lconvfrm):
30743493 try:
30753494 wordlist = logelm.halogmsg.split()
30763495 version = wordlist[-1]
@@ -3079,50 +3498,11 @@
30793498 if self.is_empty(version):
30803499 return CONV_ITEM_EMPTY
30813500
3082- convertedlog = ("Starting Pacemaker %s." % (version))
3501+ convertedlog = ("Loaded service Pacemaker %s." % (version))
30833502 outputobj.output_log(lconvfrm.loglevel, convertedlog)
30843503 return CONV_OK
30853504
30863505
3087- ##########
3088- # For pacemaker child process event.
3089- ##########
3090- '''
3091- Convert log message which means child process exits
3092- with errors.
3093-
3094- MsgNo.29-3)
3095- Jan 14 18:06:29 dl380g5a corosync[21607]: [pcmk ] notice: pcmk_wait_dispatch: Child process pengine exited (pid=21617, rc=0)
3096- Jan 14 18:08:33 dl380g5a corosync[21607]: [pcmk ] ERROR: pcmk_wait_dispatch: Child process pengine terminated with signal 9 (pid=21907, core=false)
3097- '''
3098- def pcmk_subsystem_error_exit(self, outputobj, logelm, lconvfrm):
3099- try:
3100- wordlist = logelm.halogmsg.split()
3101- idx = wordlist.index("process") + 1
3102- procname = wordlist[idx]
3103- output = ' '.join(wordlist[idx+1:-2])
3104- except:
3105- return CONV_PARSE_ERROR
3106- if self.is_empty(output):
3107- return CONV_ITEM_EMPTY
3108-
3109- convertedlog = ("Pacemaker child process \"%s\" %s " % (procname,output))
3110- outputobj.output_log(lconvfrm.loglevel, convertedlog)
3111- return CONV_OK
3112-
3113- ##########
3114- # Others.
3115- ##########
3116- '''
3117- Detect a request for getting DC node name and DC status.
3118- For auto reset function.
3119-
3120- MsgNo.27-1)
3121- Jan 6 19:55:28 dl380g5a crmd: [28183]: info: handle_request: Current ping state: S_IDLE
3122- '''
3123- def detect_dcstat_req(self, outputobj, logelm, lconvfrm):
3124- return CONV_OK
3125-
31263506 if __name__ == "__main__":
31273507 pm_log = LogconvLog(LogconvLog.LOG_INFO, None)
31283508 sys.exit(LogConvert().main())
diff -r 37a129a4a6e9 -r 27a51b3e76ea pm_logconv.spec
--- a/pm_logconv.spec Fri Jun 25 17:26:20 2010 +0900
+++ b/pm_logconv.spec Thu Feb 09 09:14:02 2012 +0900
@@ -1,16 +1,19 @@
11 ########################################
22 # Derived definitions
33 ########################################
4-%define name pm-logconv
5-%define version 1.00
6-%define release 1.el5
4+%define name pm_logconv
5+%define cluster cs
6+%define version 1.0
7+%define release 1
78 %define prefix /usr
9+%define instdir pm_logconv
10+%define ORGARCH %{name}-%{version}
811 #
912 #
1013 Summary: Pacemaker and Corosync log converter
11-Name: %{name}
14+Name: %{name}-%{cluster}
1215 Version: %{version}
13-Release: %{release}
16+Release: %{release}%{?dist}
1417 Group: Applications
1518 Source: %{name}-%{version}.tar.gz
1619 License: GPL
@@ -18,14 +21,16 @@
1821 BuildRoot: %{_tmppath}/%{name}-%{version}
1922 BuildRequires: make
2023 BuildArch: noarch
21-Requires: python >= 2.4
24+Requires: python >= 2.4, python < 3.0
25+Requires: pacemaker >= 1.1.5
26+Requires: corosync >= 1.4.1
2227
2328 ########################################
2429 %description
2530 Log message converter for Pacemaker and Corosync.
2631 support version
27- Pacemaker : stable-1.0 (1.0.7 or more)
28- Corosync : stable-1 (1.2.0 or more)
32+ Pacemaker : stable-1.1 (1.1.5 or more)
33+ Corosync : stable-1.4 (1.4.1 or more)
2934
3035 ########################################
3136 %prep
@@ -61,7 +66,7 @@
6166 then
6267 rm -rf $RPM_BUILD_ROOT
6368 fi
64-rm -rf $RPM_BUILD_DIR/%{name}-%{version}
69+rm -rf $RPM_BUILD_DIR/%{ORGARCH}
6570
6671 ########################################
6772 %post
@@ -80,10 +85,9 @@
8085 %files
8186 ########################################
8287 %defattr(-,root,root)
83-%dir /etc/corosync
84-%config /etc/corosync/pm_logconv.cf
85-%dir %{prefix}/share/pacemaker/%{name}
86-%{prefix}/share/pacemaker/%{name}/pm_logconv.py
87-%{prefix}/share/pacemaker/%{name}/pm_logconv.cf.sample
88-%ghost %{prefix}/share/pacemaker/%{name}/pm_logconv.pyc
89-%ghost %{prefix}/share/pacemaker/%{name}/pm_logconv.pyo
88+%dir /etc
89+%config /etc/pm_logconv.conf
90+%dir %{prefix}/share/pacemaker/%{instdir}
91+%{prefix}/share/pacemaker/%{instdir}/pm_logconv.py
92+%ghost %{prefix}/share/pacemaker/%{instdir}/pm_logconv.pyc
93+%ghost %{prefix}/share/pacemaker/%{instdir}/pm_logconv.pyo
Show on old repository browser