diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-03 17:01:24 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-03 17:01:24 +0000 |
commit | 6dd3dfb79125cd02d02efbce435a6c82e5af92ef (patch) | |
tree | 45084fc83278586f6bbafcb935f92d53f71a6b03 /conf | |
parent | Initial commit. (diff) | |
download | corosync-6dd3dfb79125cd02d02efbce435a6c82e5af92ef.tar.xz corosync-6dd3dfb79125cd02d02efbce435a6c82e5af92ef.zip |
Adding upstream version 3.1.8.upstream/3.1.8upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'conf')
-rw-r--r-- | conf/COROSYNC-MIB.txt | 239 | ||||
-rw-r--r-- | conf/Makefile.am | 67 | ||||
-rw-r--r-- | conf/Makefile.in | 883 | ||||
-rw-r--r-- | conf/corosync-signals.conf | 26 | ||||
-rw-r--r-- | conf/corosync.conf.example | 71 | ||||
-rw-r--r-- | conf/lenses/corosync.aug | 184 | ||||
-rw-r--r-- | conf/lenses/tests/test_corosync.aug | 167 | ||||
-rw-r--r-- | conf/logrotate/Makefile.am | 45 | ||||
-rw-r--r-- | conf/logrotate/Makefile.in | 577 | ||||
-rw-r--r-- | conf/logrotate/corosync-copytruncate.in | 9 | ||||
-rw-r--r-- | conf/logrotate/corosync-reopen.in | 17 | ||||
-rw-r--r-- | conf/xml2conf.xsl | 94 |
12 files changed, 2379 insertions, 0 deletions
diff --git a/conf/COROSYNC-MIB.txt b/conf/COROSYNC-MIB.txt new file mode 100644 index 0000000..2ceca98 --- /dev/null +++ b/conf/COROSYNC-MIB.txt @@ -0,0 +1,239 @@ +COROSYNC-MIB DEFINITIONS ::= BEGIN + +-- +-- MIB objects for Corosync +-- + +IMPORTS + MODULE-IDENTITY,NOTIFICATION-TYPE, + Integer32,enterprises,OBJECT-TYPE, + Counter64 FROM SNMPv2-SMI + MODULE-COMPLIANCE, OBJECT-GROUP, + NOTIFICATION-GROUP FROM SNMPv2-CONF +; + +corosync MODULE-IDENTITY + LAST-UPDATED "201801121241Z" + ORGANIZATION "www.corosync.org" + CONTACT-INFO "name: Yuki Sato + email: users@clusterlabs.org" + DESCRIPTION "*RRP* related staff has changed to *Link* staff" + REVISION "201801121241Z" + DESCRIPTION "Add cluster quorum traps, fix smilint errors, and fix notification block ID" + REVISION "201101211300Z" + DESCRIPTION "MIB objects for Corosync" + REVISION "201003251209Z" + DESCRIPTION "First draft" + REVISION "200911061318Z" + DESCRIPTION + "Private Enterprise Number has been assigned." + ::= { enterprises 35488 } + +-- +-- top level structure +-- +corosyncNotices OBJECT IDENTIFIER ::= { corosync 0 } +corosyncObjects OBJECT IDENTIFIER ::= { corosync 1 } +corosyncConformance OBJECT IDENTIFIER ::= { corosync 200 } + +-- +-- Corosync MIB entries +-- + +-- +-- Node Information +-- +corosyncObjectsNodeName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..64)) + MAX-ACCESS accessible-for-notify + STATUS current + DESCRIPTION "Hostname of the cluster node." +::= { corosyncObjects 1 } + +corosyncObjectsNodeID OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS accessible-for-notify + STATUS current + DESCRIPTION "The unique integer of the node." +::= { corosyncObjects 2 } + +corosyncObjectsNodeStatus OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS accessible-for-notify + STATUS current + DESCRIPTION + "The status of the node." +::= { corosyncObjects 3 } + +corosyncObjectsNodeAddress OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS accessible-for-notify + STATUS current + DESCRIPTION "The address of the node." +::= { corosyncObjects 4 } + +corosyncObjectsLocalNodeID OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS accessible-for-notify + STATUS current + DESCRIPTION "The unique integer of local node." +::= { corosyncObjects 5 } + +-- +-- Quorum Information +-- +-- + +-- not currently used, but here for future use +corosyncObjectsRingSeq OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS accessible-for-notify + STATUS current + DESCRIPTION + "Ring ID Sequence number" +::= { corosyncObjects 20 } + +corosyncObjectsQuorumStatus OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS accessible-for-notify + STATUS current + DESCRIPTION + "Quorum Status" +::= { corosyncObjects 21 } + +-- +-- Link Information +--- + +corosyncObjectsIfaceNo OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS accessible-for-notify + STATUS current + DESCRIPTION "The integer of interface." +::= { corosyncObjects 60 } + +corosyncObjectsLinkStatus OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS accessible-for-notify + STATUS current + DESCRIPTION + "Link Status" +::= { corosyncObjects 61 } + +-- +-- Application Information +-- +corosyncObjectsAppName OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS accessible-for-notify + STATUS current + DESCRIPTION + "Application name" +::= { corosyncObjects 40 } + +corosyncObjectsAppStatus OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS accessible-for-notify + STATUS current + DESCRIPTION + "Application status" +::= { corosyncObjects 41 } + +-- +-- Notification Information +-- +corosyncNoticesNodeStatus NOTIFICATION-TYPE + OBJECTS { corosyncObjectsNodeName, + corosyncObjectsNodeID, + corosyncObjectsNodeAddress, + corosyncObjectsNodeStatus } + STATUS current + DESCRIPTION + "Produced when a node 'corosyncObjectsNodeName' joins or leaves + the cluster. + + The notification includes the node name, nodeid, the node's + IP address and the status (either 'joined' or 'left')." +::= { corosyncNotices 1 } + +corosyncNoticesQuorumStatus NOTIFICATION-TYPE + OBJECTS { corosyncObjectsNodeName, + corosyncObjectsNodeID, + corosyncObjectsQuorumStatus } + STATUS current + DESCRIPTION + "Produced when the quorum state changes. + + The notification also includes the node name, nodeid + and the new state (either 'quorate' or 'NOT quorate')." +::= { corosyncNotices 2 } + +corosyncNoticesAppStatus NOTIFICATION-TYPE + OBJECTS { corosyncObjectsNodeName, + corosyncObjectsNodeID, + corosyncObjectsAppName, + corosyncObjectsAppStatus } + STATUS current + DESCRIPTION + "Produced when a client application 'corosyncObjectsAppName' connects or + disconnects from Corosync. + + The notification also includes the node name, nodeid, the application + name and the new state (either 'connected' or 'disconnected')." +::= { corosyncNotices 3 } + +corosyncNoticesLinkStatus NOTIFICATION-TYPE + OBJECTS { corosyncObjectsNodeName, + corosyncObjectsLocalNodeID, + corosyncObjectsNodeID, + corosyncObjectsIfaceNo, + corosyncObjectsLinkStatus } + STATUS current + DESCRIPTION + "Produced when the interface of Link is marked failed or operational. + + The notification also includes the node name, nodeid, iface number + and the new state (either 'failed' or 'operational')." +::= { corosyncNotices 4 } + +-- +-- Compliance Information +-- +corosyncCompliances OBJECT IDENTIFIER ::= { corosyncConformance 1 } + +corosyncConformanceGroups OBJECT IDENTIFIER ::= { corosyncConformance 2 } + +corosyncCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION "Corosync compliance information" + MODULE -- this module + MANDATORY-GROUPS { corosyncObjectGroup, corosyncNotificationGroup } +::= { corosyncCompliances 1 } + +corosyncObjectGroup OBJECT-GROUP + OBJECTS { corosyncObjectsNodeName, + corosyncObjectsNodeID, + corosyncObjectsNodeStatus, + corosyncObjectsNodeAddress, + corosyncObjectsRingSeq, + corosyncObjectsQuorumStatus, + corosyncObjectsAppName, + corosyncObjectsAppStatus, + corosyncObjectsIfaceNo, + corosyncObjectsLinkStatus + } + STATUS current + DESCRIPTION "Corosync Object Conformance Group" +::= { corosyncConformanceGroups 1 } + +corosyncNotificationGroup NOTIFICATION-GROUP + NOTIFICATIONS { corosyncNoticesNodeStatus, + corosyncNoticesQuorumStatus, + corosyncNoticesAppStatus, + corosyncNoticesLinkStatus + } + STATUS current + DESCRIPTION "Corosync Notification Conformance Group" +::= { corosyncConformanceGroups 2 } + +END diff --git a/conf/Makefile.am b/conf/Makefile.am new file mode 100644 index 0000000..44581eb --- /dev/null +++ b/conf/Makefile.am @@ -0,0 +1,67 @@ +# Copyright (c) 2009 Red Hat, Inc. +# +# Authors: Andrew Beekhof +# Steven Dake (sdake@redhat.com) +# +# This software licensed under BSD license, the text of which follows: +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# - Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# - Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# - Neither the name of the MontaVista Software, Inc. nor the names of its +# contributors may be used to endorse or promote products derived from this +# software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +# THE POSSIBILITY OF SUCH DAMAGE. + +MAINTAINERCLEANFILES = Makefile.in + +EXTRA_DIST = COROSYNC-MIB.txt corosync-signals.conf \ + corosync.conf.example \ + xml2conf.xsl \ + lenses/corosync.aug \ + lenses/tests/test_corosync.aug + +corosysconfdir = ${COROSYSCONFDIR} + +corosysconf_DATA = corosync.conf.example + +if INSTALL_AUGEAS +corolensdir = ${datadir}/augeas/lenses +corolens_DATA = lenses/corosync.aug + +corolenstestdir = ${corolensdir}/tests +corolenstest_DATA = lenses/tests/test_corosync.aug +endif + +if INSTALL_XMLCONF +corosysxmlxsltdir = ${datadir}/corosync +corosysxmlxslt_DATA = xml2conf.xsl +endif + +if INSTALL_MIB +mibdir = $(datadir)/snmp/mibs +mib_DATA = COROSYNC-MIB.txt +endif + +if INSTALL_DBUSCONF +dbusdir = $(sysconfdir)/dbus-1/system.d +dbus_DATA = corosync-signals.conf +endif + +SUBDIRS = logrotate diff --git a/conf/Makefile.in b/conf/Makefile.in new file mode 100644 index 0000000..0d2ebe8 --- /dev/null +++ b/conf/Makefile.in @@ -0,0 +1,883 @@ +# Makefile.in generated by automake 1.13.4 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2009 Red Hat, Inc. +# +# Authors: Andrew Beekhof +# Steven Dake (sdake@redhat.com) +# +# This software licensed under BSD license, the text of which follows: +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# - Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# - Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# - Neither the name of the MontaVista Software, Inc. nor the names of its +# contributors may be used to endorse or promote products derived from this +# software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +# THE POSSIBILITY OF SUCH DAMAGE. + +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = conf +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/lib/libcfg.verso $(top_srcdir)/lib/libcpg.verso \ + $(top_srcdir)/lib/libquorum.verso \ + $(top_srcdir)/lib/libsam.verso \ + $(top_srcdir)/lib/libvotequorum.verso \ + $(top_srcdir)/lib/libcmap.verso $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/include/corosync/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(corolensdir)" \ + "$(DESTDIR)$(corolenstestdir)" "$(DESTDIR)$(corosysconfdir)" \ + "$(DESTDIR)$(corosysxmlxsltdir)" "$(DESTDIR)$(dbusdir)" \ + "$(DESTDIR)$(mibdir)" +DATA = $(corolens_DATA) $(corolenstest_DATA) $(corosysconf_DATA) \ + $(corosysxmlxslt_DATA) $(dbus_DATA) $(mib_DATA) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUGTOOL = @AUGTOOL@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BASHPATH = @BASHPATH@ +BINDGEN = @BINDGEN@ +CARGO = @CARGO@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFG_SONAME = @CFG_SONAME@ +CFLAGS = @CFLAGS@ +CLIPPY = @CLIPPY@ +CMAP_SONAME = @CMAP_SONAME@ +COROSYSCONFDIR = @COROSYSCONFDIR@ +CPG_SONAME = @CPG_SONAME@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DBUS_CFLAGS = @DBUS_CFLAGS@ +DBUS_LIBS = @DBUS_LIBS@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DOT = @DOT@ +DOXYGEN = @DOXYGEN@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +GROFF = @GROFF@ +INITCONFIGDIR = @INITCONFIGDIR@ +INITDDIR = @INITDDIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBQB_CFLAGS = @LIBQB_CFLAGS@ +LIBQB_LIBS = @LIBQB_LIBS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LINT_FLAGS = @LINT_FLAGS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOGDIR = @LOGDIR@ +LOGROTATEDIR = @LOGROTATEDIR@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +QUORUM_SONAME = @QUORUM_SONAME@ +RANLIB = @RANLIB@ +RUSTC = @RUSTC@ +RUSTDOC = @RUSTDOC@ +RUSTFMT = @RUSTFMT@ +RUST_FLAGS = @RUST_FLAGS@ +RUST_TARGET_DIR = @RUST_TARGET_DIR@ +SAM_SONAME = @SAM_SONAME@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SNMPCONFIG = @SNMPCONFIG@ +SNMP_LIBS = @SNMP_LIBS@ +SOMAJOR = @SOMAJOR@ +SOMICRO = @SOMICRO@ +SOMINOR = @SOMINOR@ +SONAME = @SONAME@ +STRIP = @STRIP@ +SYSTEMDDIR = @SYSTEMDDIR@ +VERSCRIPT_LDFLAGS = @VERSCRIPT_LDFLAGS@ +VERSION = @VERSION@ +VOTEQUORUM_SONAME = @VOTEQUORUM_SONAME@ +WITH_LIST = @WITH_LIST@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +corosyncrustver = @corosyncrustver@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +knet_CFLAGS = @knet_CFLAGS@ +knet_LIBS = @knet_LIBS@ +libdir = @libdir@ +libexecdir = @libexecdir@ +libsystemd_CFLAGS = @libsystemd_CFLAGS@ +libsystemd_LIBS = @libsystemd_LIBS@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +nozzle_CFLAGS = @nozzle_CFLAGS@ +nozzle_LIBS = @nozzle_LIBS@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +statgrab_CFLAGS = @statgrab_CFLAGS@ +statgrab_LIBS = @statgrab_LIBS@ +statgrabge090_CFLAGS = @statgrabge090_CFLAGS@ +statgrabge090_LIBS = @statgrabge090_LIBS@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +MAINTAINERCLEANFILES = Makefile.in +EXTRA_DIST = COROSYNC-MIB.txt corosync-signals.conf \ + corosync.conf.example \ + xml2conf.xsl \ + lenses/corosync.aug \ + lenses/tests/test_corosync.aug + +corosysconfdir = ${COROSYSCONFDIR} +corosysconf_DATA = corosync.conf.example +@INSTALL_AUGEAS_TRUE@corolensdir = ${datadir}/augeas/lenses +@INSTALL_AUGEAS_TRUE@corolens_DATA = lenses/corosync.aug +@INSTALL_AUGEAS_TRUE@corolenstestdir = ${corolensdir}/tests +@INSTALL_AUGEAS_TRUE@corolenstest_DATA = lenses/tests/test_corosync.aug +@INSTALL_XMLCONF_TRUE@corosysxmlxsltdir = ${datadir}/corosync +@INSTALL_XMLCONF_TRUE@corosysxmlxslt_DATA = xml2conf.xsl +@INSTALL_MIB_TRUE@mibdir = $(datadir)/snmp/mibs +@INSTALL_MIB_TRUE@mib_DATA = COROSYNC-MIB.txt +@INSTALL_DBUSCONF_TRUE@dbusdir = $(sysconfdir)/dbus-1/system.d +@INSTALL_DBUSCONF_TRUE@dbus_DATA = corosync-signals.conf +SUBDIRS = logrotate +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign conf/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign conf/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-corolensDATA: $(corolens_DATA) + @$(NORMAL_INSTALL) + @list='$(corolens_DATA)'; test -n "$(corolensdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(corolensdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(corolensdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(corolensdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(corolensdir)" || exit $$?; \ + done + +uninstall-corolensDATA: + @$(NORMAL_UNINSTALL) + @list='$(corolens_DATA)'; test -n "$(corolensdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(corolensdir)'; $(am__uninstall_files_from_dir) +install-corolenstestDATA: $(corolenstest_DATA) + @$(NORMAL_INSTALL) + @list='$(corolenstest_DATA)'; test -n "$(corolenstestdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(corolenstestdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(corolenstestdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(corolenstestdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(corolenstestdir)" || exit $$?; \ + done + +uninstall-corolenstestDATA: + @$(NORMAL_UNINSTALL) + @list='$(corolenstest_DATA)'; test -n "$(corolenstestdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(corolenstestdir)'; $(am__uninstall_files_from_dir) +install-corosysconfDATA: $(corosysconf_DATA) + @$(NORMAL_INSTALL) + @list='$(corosysconf_DATA)'; test -n "$(corosysconfdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(corosysconfdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(corosysconfdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(corosysconfdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(corosysconfdir)" || exit $$?; \ + done + +uninstall-corosysconfDATA: + @$(NORMAL_UNINSTALL) + @list='$(corosysconf_DATA)'; test -n "$(corosysconfdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(corosysconfdir)'; $(am__uninstall_files_from_dir) +install-corosysxmlxsltDATA: $(corosysxmlxslt_DATA) + @$(NORMAL_INSTALL) + @list='$(corosysxmlxslt_DATA)'; test -n "$(corosysxmlxsltdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(corosysxmlxsltdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(corosysxmlxsltdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(corosysxmlxsltdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(corosysxmlxsltdir)" || exit $$?; \ + done + +uninstall-corosysxmlxsltDATA: + @$(NORMAL_UNINSTALL) + @list='$(corosysxmlxslt_DATA)'; test -n "$(corosysxmlxsltdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(corosysxmlxsltdir)'; $(am__uninstall_files_from_dir) +install-dbusDATA: $(dbus_DATA) + @$(NORMAL_INSTALL) + @list='$(dbus_DATA)'; test -n "$(dbusdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(dbusdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(dbusdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dbusdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(dbusdir)" || exit $$?; \ + done + +uninstall-dbusDATA: + @$(NORMAL_UNINSTALL) + @list='$(dbus_DATA)'; test -n "$(dbusdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(dbusdir)'; $(am__uninstall_files_from_dir) +install-mibDATA: $(mib_DATA) + @$(NORMAL_INSTALL) + @list='$(mib_DATA)'; test -n "$(mibdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(mibdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(mibdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(mibdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(mibdir)" || exit $$?; \ + done + +uninstall-mibDATA: + @$(NORMAL_UNINSTALL) + @list='$(mib_DATA)'; test -n "$(mibdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(mibdir)'; $(am__uninstall_files_from_dir) + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile $(DATA) +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(corolensdir)" "$(DESTDIR)$(corolenstestdir)" "$(DESTDIR)$(corosysconfdir)" "$(DESTDIR)$(corosysxmlxsltdir)" "$(DESTDIR)$(dbusdir)" "$(DESTDIR)$(mibdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: install-corolensDATA install-corolenstestDATA \ + install-corosysconfDATA install-corosysxmlxsltDATA \ + install-dbusDATA install-mibDATA + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-corolensDATA uninstall-corolenstestDATA \ + uninstall-corosysconfDATA uninstall-corosysxmlxsltDATA \ + uninstall-dbusDATA uninstall-mibDATA + +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-corolensDATA \ + install-corolenstestDATA install-corosysconfDATA \ + install-corosysxmlxsltDATA install-data install-data-am \ + install-dbusDATA install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-mibDATA install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-corolensDATA \ + uninstall-corolenstestDATA uninstall-corosysconfDATA \ + uninstall-corosysxmlxsltDATA uninstall-dbusDATA \ + uninstall-mibDATA + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/conf/corosync-signals.conf b/conf/corosync-signals.conf new file mode 100644 index 0000000..4112d0c --- /dev/null +++ b/conf/corosync-signals.conf @@ -0,0 +1,26 @@ +<!DOCTYPE busconfig PUBLIC + "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN" + "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> +<busconfig> + + <!-- Only root can own the corosync service. --> + <policy user="root"> + <allow own="org.corosync"/> + </policy> + + <policy context="default"> + <allow send_destination="org.corosync" + send_path="/org/corosync" + send_interface="org.corosync" + send_member="NodeStateChange"/> + <allow send_destination="org.corosync" + send_path="/org/corosync" + send_interface="org.corosync" + send_member="ConnectionStateChange"/> + <allow send_destination="org.corosync" + send_path="/org/corosync" + send_interface="org.corosync" + send_member="QuorumStateChange"/> + </policy> + +</busconfig> diff --git a/conf/corosync.conf.example b/conf/corosync.conf.example new file mode 100644 index 0000000..4658a86 --- /dev/null +++ b/conf/corosync.conf.example @@ -0,0 +1,71 @@ +# Please read the corosync.conf.5 manual page +totem { + version: 2 + + # Set name of the cluster + cluster_name: ExampleCluster + + # crypto_cipher and crypto_hash: Used for mutual node authentication. + # If you choose to enable this, then do remember to create a shared + # secret with "corosync-keygen". + # enabling crypto_cipher, requires also enabling of crypto_hash. + # crypto works only with knet transport + crypto_cipher: none + crypto_hash: none +} + +logging { + # Log the source file and line where messages are being + # generated. When in doubt, leave off. Potentially useful for + # debugging. + fileline: off + # Log to standard error. When in doubt, set to yes. Useful when + # running in the foreground (when invoking "corosync -f") + to_stderr: yes + # Log to a log file. When set to "no", the "logfile" option + # must not be set. + to_logfile: yes + logfile: /var/log/cluster/corosync.log + # Log to the system log daemon. When in doubt, set to yes. + to_syslog: yes + # Log debug messages (very verbose). When in doubt, leave off. + debug: off + # Log messages with time stamps. When in doubt, set to hires (or on) + #timestamp: hires + logger_subsys { + subsys: QUORUM + debug: off + } +} + +quorum { + # Enable and configure quorum subsystem (default: off) + # see also corosync.conf.5 and votequorum.5 + #provider: corosync_votequorum +} + +nodelist { + # Change/uncomment/add node sections to match cluster configuration + + node { + # Hostname of the node + name: node1 + # Cluster membership node identifier + nodeid: 1 + # Address of first link + #ring0_addr: 192.168.0.1 + # When knet transport is used it's possible to define up to 8 links + #ring1_addr: 192.168.1.1 + } + node { + # Hostname of the node + name: node2 + # Cluster membership node identifier + nodeid: 2 + # Address of first link + #ring0_addr: 192.168.0.2 + # When knet transport is used it's possible to define up to 8 links + #ring1_addr: 192.168.1.2 + } + # ... +} diff --git a/conf/lenses/corosync.aug b/conf/lenses/corosync.aug new file mode 100644 index 0000000..edeb4fb --- /dev/null +++ b/conf/lenses/corosync.aug @@ -0,0 +1,184 @@ +(* Process /etc/corosync/corosync.conf *) +(* The lens is based on the corosync.conf(5) man page *) +module Corosync = + +autoload xfm + +let comment = Util.comment +let empty = Util.empty +let dels = Util.del_str +let eol = Util.eol + +let ws = del /[ \t]+/ " " +let wsc = del /:[ \t]+/ ": " +let indent = del /[ \t]*/ "" +(* We require that braces are always followed by a newline *) +let obr = del /\{([ \t]*)\n/ "{\n" +let cbr = del /[ \t]*}[ \t]*\n/ "}\n" + +let ikey (k:regexp) = indent . key k + +let section (n:regexp) (b:lens) = + [ ikey n . ws . obr . (b|empty|comment)* . cbr ] + +let kv (k:regexp) (v:regexp) = + [ ikey k . wsc . store v . eol ] + +(* FIXME: it would be much more concise to write *) +(* [ key k . ws . (bare | quoted) ] *) +(* but the typechecker trips over that *) +let qstr (k:regexp) = + let delq = del /['"]/ "\"" in + let bare = del /["']?/ "" . store /[^"' \t\n]+/ . del /["']?/ "" in + let quoted = delq . store /.*[ \t].*/ . delq in + [ ikey k . wsc . bare . eol ] + |[ ikey k . wsc . quoted . eol ] + +(* A integer subsection *) +let interface = + let setting = + kv "ringnumber" Rx.integer + |kv "mcastport" Rx.integer + |kv "ttl" Rx.integer + |kv "broadcast" /yes|no/ + |qstr /bindnetaddr|mcastaddr/ in + section "interface" setting + +(* The totem section *) +let totem = + let setting = + kv "clear_node_high_bit" /yes|no/ + |kv "rrp_mode" /none|active|passive/ + |kv "vsftype" /none|ykd/ + |kv "secauth" /on|off/ + |kv "crypto_model" /nss|openssl/ + |kv "crypto_cipher" /none|nss|aes256|aes192|aes128/ + |kv "crypto_hash" /none|md5|sha1|sha256|sha384|sha512/ + |kv "transport" /udp|iba|udpu/ + |kv "version" Rx.integer + |kv "nodeid" Rx.integer + |kv "threads" Rx.integer + |kv "netmtu" Rx.integer + |kv "token" Rx.integer + |kv "token_retransmit" Rx.integer + |kv "hold" Rx.integer + |kv "token_retransmits_before_loss_const" Rx.integer + |kv "join" Rx.integer + |kv "send_join" Rx.integer + |kv "consensus" Rx.integer + |kv "merge" Rx.integer + |kv "downcheck" Rx.integer + |kv "fail_to_recv_const" Rx.integer + |kv "seqno_unchanged_const" Rx.integer + |kv "heartbeat_failures_allowed" Rx.integer + |kv "max_network_delay" Rx.integer + |kv "max_messages" Rx.integer + |kv "window_size" Rx.integer + |kv "rrp_problem_count_timeout" Rx.integer + |kv "rrp_problem_count_threshold" Rx.integer + |kv "rrp_token_expired_timeout" Rx.integer + |qstr /cluster_name/ + |interface in + section "totem" setting + +let common_logging = + kv "to_syslog" /yes|no|on|off/ + |kv "to_stderr" /yes|no|on|off/ + |kv "to_logfile" /yes|no|on|off/ + |kv "debug" /yes|no|on|off|trace/ + |kv "logfile_priority" /alert|crit|debug|emerg|err|info|notice|warning/ + |kv "syslog_priority" /alert|crit|debug|emerg|err|info|notice|warning/ + |kv "syslog_facility" /daemon|local0|local1|local2|local3|local4|local5|local6|local7/ + |qstr /logfile|tags/ + +(* A logger_subsys subsection *) +let logger_subsys = + let setting = + qstr /subsys/ + |common_logging in + section "logger_subsys" setting + + +(* The logging section *) +let logging = + let setting = + kv "fileline" /yes|no|on|off/ + |kv "function_name" /yes|no|on|off/ + |kv "timestamp" /yes|no|on|off/ + |common_logging + |logger_subsys in + section "logging" setting + + +(* The resource section *) +let common_resource = + kv "max" Rx.decimal + |kv "poll_period" Rx.integer + |kv "recovery" /reboot|shutdown|watchdog|none/ + +let memory_used = + let setting = + common_resource in + section "memory_used" setting + + +let load_15min = + let setting = + common_resource in + section "load_15min" setting + +let system = + let setting = + load_15min + |memory_used in + section "system" setting + +(* The resources section *) +let resources = + let setting = + system in + section "resources" setting + +(* The quorum section *) +let quorum = + let setting = + qstr /provider/ + |kv "expected_votes" Rx.integer + |kv "votes" Rx.integer + |kv "wait_for_all" Rx.integer + |kv "last_man_standing" Rx.integer + |kv "last_man_standing_window" Rx.integer + |kv "auto_tie_breaker" Rx.integer + |kv "two_node" Rx.integer in + section "quorum" setting + +(* The service section *) +let service = + let setting = + qstr /name|ver/ in + section "service" setting + +(* The uidgid section *) +let uidgid = + let setting = + qstr /uid|gid/ in + section "uidgid" setting + +(* The node section *) +let node = + let setting = + qstr /ring[0-9]_addr/ + |kv "nodeid" Rx.integer + |kv "name" Rx.hostname + |kv "quorum_votes" Rx.integer in + section "node" setting + +(* The nodelist section *) +let nodelist = + let setting = + node in + section "nodelist" setting + +let lns = (comment|empty|totem|quorum|logging|resources|service|uidgid|nodelist)* + +let xfm = transform lns (incl "/etc/corosync/corosync.conf") diff --git a/conf/lenses/tests/test_corosync.aug b/conf/lenses/tests/test_corosync.aug new file mode 100644 index 0000000..cbc40a3 --- /dev/null +++ b/conf/lenses/tests/test_corosync.aug @@ -0,0 +1,167 @@ +module Test_corosync = + + let conf = "# Please read the corosync.conf.5 manual page + +totem { + version: 2 + secauth: off + crypto_cipher: none + crypto_hash: none + threads: 0 + clear_node_high_bit: no + rrp_mode: none + transport: udp + token: 1000 + interface { + ringnumber: 0 + bindnetaddr: 192.168.122.1 + mcastaddr: 226.94.1.1 + ttl: 45 + mcastport: 5405 + } +} + +logging { + fileline: off + function_name: on + to_stderr: yes + to_logfile: yes + to_syslog: yes + logfile: /tmp/corosync.log + debug: off + timestamp: on + logger_subsys { + to_syslog: no + subsys: CPG + debug: on + } + logger_subsys { + to_stderr: no + logfile: /tmp/corosync-msg.log + subsys: MSG + debug: on + tags: enter|trace4 + } +} + +quorum { + provider: corosync_votequorum + expected_votes: 5 + votes: 2 + two_node: 1 + wait_for_all: 1 + last_man_standing: 1 + last_man_standing_window: 10000 + auto_tie_breaker: 1 +} + +resources { + system { + memory_used { + recovery: reboot + max: 80 + } + load_15min { + recovery: watchdog + max: 8.56 + } + } +} + +uidgid { + uid: 0 + gid: 0 +} + +nodelist { + node { + ring0_addr: 192.168.122.1 + nodeid: 1 + name: balalaika + quorum_votes: 2 + } + + node { + ring0_addr: 192.168.122.2 + ring1_addr: 192.168.123.1 + nodeid: 2 + name: cythara + } +}\n" + +test Corosync.lns get conf = + + { "#comment" = "Please read the corosync.conf.5 manual page" } + { } + { "totem" + { "version" = "2" } + { "secauth" = "off" } + { "crypto_cipher" = "none" } + { "crypto_hash" = "none" } + { "threads" = "0" } + { "clear_node_high_bit" = "no" } + { "rrp_mode" = "none" } + { "transport" = "udp" } + { "token" = "1000" } + { "interface" + { "ringnumber" = "0" } + { "bindnetaddr" = "192.168.122.1" } + { "mcastaddr" = "226.94.1.1" } + { "ttl" = "45" } + { "mcastport" = "5405" } } } + { } + { "logging" + { "fileline" = "off" } + { "function_name" = "on" } + { "to_stderr" = "yes" } + { "to_logfile" = "yes" } + { "to_syslog" = "yes" } + { "logfile" = "/tmp/corosync.log" } + { "debug" = "off" } + { "timestamp" = "on" } + { "logger_subsys" + { "to_syslog" = "no" } + { "subsys" = "CPG" } + { "debug" = "on" } } + { "logger_subsys" + { "to_stderr" = "no" } + { "logfile" = "/tmp/corosync-msg.log" } + { "subsys" = "MSG" } + { "debug" = "on" } + { "tags" = "enter|trace4" } } } + { } + { "quorum" + { "provider" = "corosync_votequorum" } + { "expected_votes" = "5" } + { "votes" = "2" } + { "two_node" = "1" } + { "wait_for_all" = "1" } + { "last_man_standing" = "1" } + { "last_man_standing_window" = "10000" } + { "auto_tie_breaker" = "1" } } + { } + { "resources" + { "system" + { "memory_used" + { "recovery" = "reboot" } + { "max" = "80" } } + { "load_15min" + { "recovery" = "watchdog" } + { "max" = "8.56" } } } } + { } + { "uidgid" + { "uid" = "0" } + { "gid" = "0" } } + { } + { "nodelist" + { "node" + { "ring0_addr" = "192.168.122.1" } + { "nodeid" = "1" } + { "name" = "balalaika" } + { "quorum_votes" = "2" } } + { } + { "node" + { "ring0_addr" = "192.168.122.2" } + { "ring1_addr" = "192.168.123.1" } + { "nodeid" = "2" } + { "name" = "cythara" } } } diff --git a/conf/logrotate/Makefile.am b/conf/logrotate/Makefile.am new file mode 100644 index 0000000..35efa2d --- /dev/null +++ b/conf/logrotate/Makefile.am @@ -0,0 +1,45 @@ +# Copyright (c) 2009 Red Hat, Inc. +# +# Authors:Jan Friesse (jfriesse@redhat.com) +# Andrew Beekhof +# Steven Dake (sdake@redhat.com) +# +# This software licensed under BSD license, the text of which follows: +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# - Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# - Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# - Neither the name of the MontaVista Software, Inc. nor the names of its +# contributors may be used to endorse or promote products derived from this +# software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +# THE POSSIBILITY OF SUCH DAMAGE. + +MAINTAINERCLEANFILES = Makefile.in + +EXTRA_DIST = corosync-reopen.in corosync-copytruncate.in + +corosync: corosync-copytruncate.in + $(SED) -e 's#@''LOGDIR@#${LOGDIR}#g' \ + $< > $@ + +logrotatecorosyncdir = ${LOGROTATEDIR} +logrotatecorosync_DATA = corosync + +clean-local: + rm -f corosync diff --git a/conf/logrotate/Makefile.in b/conf/logrotate/Makefile.in new file mode 100644 index 0000000..8fea14b --- /dev/null +++ b/conf/logrotate/Makefile.in @@ -0,0 +1,577 @@ +# Makefile.in generated by automake 1.13.4 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (c) 2009 Red Hat, Inc. +# +# Authors:Jan Friesse (jfriesse@redhat.com) +# Andrew Beekhof +# Steven Dake (sdake@redhat.com) +# +# This software licensed under BSD license, the text of which follows: +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# - Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# - Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# - Neither the name of the MontaVista Software, Inc. nor the names of its +# contributors may be used to endorse or promote products derived from this +# software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +# THE POSSIBILITY OF SUCH DAMAGE. + +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = conf/logrotate +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/lib/libcfg.verso $(top_srcdir)/lib/libcpg.verso \ + $(top_srcdir)/lib/libquorum.verso \ + $(top_srcdir)/lib/libsam.verso \ + $(top_srcdir)/lib/libvotequorum.verso \ + $(top_srcdir)/lib/libcmap.verso $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/include/corosync/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(logrotatecorosyncdir)" +DATA = $(logrotatecorosync_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUGTOOL = @AUGTOOL@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BASHPATH = @BASHPATH@ +BINDGEN = @BINDGEN@ +CARGO = @CARGO@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFG_SONAME = @CFG_SONAME@ +CFLAGS = @CFLAGS@ +CLIPPY = @CLIPPY@ +CMAP_SONAME = @CMAP_SONAME@ +COROSYSCONFDIR = @COROSYSCONFDIR@ +CPG_SONAME = @CPG_SONAME@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DBUS_CFLAGS = @DBUS_CFLAGS@ +DBUS_LIBS = @DBUS_LIBS@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DOT = @DOT@ +DOXYGEN = @DOXYGEN@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +GROFF = @GROFF@ +INITCONFIGDIR = @INITCONFIGDIR@ +INITDDIR = @INITDDIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBQB_CFLAGS = @LIBQB_CFLAGS@ +LIBQB_LIBS = @LIBQB_LIBS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LINT_FLAGS = @LINT_FLAGS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOGDIR = @LOGDIR@ +LOGROTATEDIR = @LOGROTATEDIR@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +QUORUM_SONAME = @QUORUM_SONAME@ +RANLIB = @RANLIB@ +RUSTC = @RUSTC@ +RUSTDOC = @RUSTDOC@ +RUSTFMT = @RUSTFMT@ +RUST_FLAGS = @RUST_FLAGS@ +RUST_TARGET_DIR = @RUST_TARGET_DIR@ +SAM_SONAME = @SAM_SONAME@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SNMPCONFIG = @SNMPCONFIG@ +SNMP_LIBS = @SNMP_LIBS@ +SOMAJOR = @SOMAJOR@ +SOMICRO = @SOMICRO@ +SOMINOR = @SOMINOR@ +SONAME = @SONAME@ +STRIP = @STRIP@ +SYSTEMDDIR = @SYSTEMDDIR@ +VERSCRIPT_LDFLAGS = @VERSCRIPT_LDFLAGS@ +VERSION = @VERSION@ +VOTEQUORUM_SONAME = @VOTEQUORUM_SONAME@ +WITH_LIST = @WITH_LIST@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +corosyncrustver = @corosyncrustver@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +knet_CFLAGS = @knet_CFLAGS@ +knet_LIBS = @knet_LIBS@ +libdir = @libdir@ +libexecdir = @libexecdir@ +libsystemd_CFLAGS = @libsystemd_CFLAGS@ +libsystemd_LIBS = @libsystemd_LIBS@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +nozzle_CFLAGS = @nozzle_CFLAGS@ +nozzle_LIBS = @nozzle_LIBS@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +statgrab_CFLAGS = @statgrab_CFLAGS@ +statgrab_LIBS = @statgrab_LIBS@ +statgrabge090_CFLAGS = @statgrabge090_CFLAGS@ +statgrabge090_LIBS = @statgrabge090_LIBS@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +MAINTAINERCLEANFILES = Makefile.in +EXTRA_DIST = corosync-reopen.in corosync-copytruncate.in +logrotatecorosyncdir = ${LOGROTATEDIR} +logrotatecorosync_DATA = corosync +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign conf/logrotate/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign conf/logrotate/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-logrotatecorosyncDATA: $(logrotatecorosync_DATA) + @$(NORMAL_INSTALL) + @list='$(logrotatecorosync_DATA)'; test -n "$(logrotatecorosyncdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(logrotatecorosyncdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(logrotatecorosyncdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(logrotatecorosyncdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(logrotatecorosyncdir)" || exit $$?; \ + done + +uninstall-logrotatecorosyncDATA: + @$(NORMAL_UNINSTALL) + @list='$(logrotatecorosync_DATA)'; test -n "$(logrotatecorosyncdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(logrotatecorosyncdir)'; $(am__uninstall_files_from_dir) +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(logrotatecorosyncdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-libtool clean-local mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-logrotatecorosyncDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-logrotatecorosyncDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + clean-local cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am \ + install-logrotatecorosyncDATA install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ + uninstall-am uninstall-logrotatecorosyncDATA + + +corosync: corosync-copytruncate.in + $(SED) -e 's#@''LOGDIR@#${LOGDIR}#g' \ + $< > $@ + +clean-local: + rm -f corosync + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/conf/logrotate/corosync-copytruncate.in b/conf/logrotate/corosync-copytruncate.in new file mode 100644 index 0000000..cba17b0 --- /dev/null +++ b/conf/logrotate/corosync-copytruncate.in @@ -0,0 +1,9 @@ +@LOGDIR@/corosync.log { + missingok + compress + copytruncate + daily + rotate 31 + minsize 2048 + notifempty +} diff --git a/conf/logrotate/corosync-reopen.in b/conf/logrotate/corosync-reopen.in new file mode 100644 index 0000000..730fb74 --- /dev/null +++ b/conf/logrotate/corosync-reopen.in @@ -0,0 +1,17 @@ +# This logrotate method has two main problems and it's kept only for reference: +# 1. It does fail when corosync is not running (solvable by adding "|| true") +# 2. If (for some reason) cfgtool -L fails, logrotate fails and corosync keeps +# logging into old file. Added "|| true" makes situation even worse +# because logrotate removes file but corosync keeps logging into it. +@LOGDIR@/corosync.log { + missingok + compress + daily + rotate 31 + minsize 2048 + notifempty + nocreate + postrotate + @SBINDIR@/corosync-cfgtool -L + endscript +} diff --git a/conf/xml2conf.xsl b/conf/xml2conf.xsl new file mode 100644 index 0000000..c140d68 --- /dev/null +++ b/conf/xml2conf.xsl @@ -0,0 +1,94 @@ +<?xml version="1.0" encoding="utf-8"?> + +<!-- + Copyright (c) 2011 Red Hat, Inc. + + All rights reserved. + + Author: Jan Friesse (jfriesse@redhat.com) + + This software licensed under BSD license, the text of which follows: + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Red Hat, Inc. nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + THE POSSIBILITY OF SUCH DAMAGE. +--> + +<xsl:stylesheet version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:date="http://exslt.org/dates-and-times" extension-element-prefixes="date"> + +<xsl:output method="text" /> +<xsl:strip-space elements="*" /> +<xsl:param name="inputfile"/> + +<xsl:variable name='newline'><xsl:text> +</xsl:text></xsl:variable> + +<xsl:template match="/corosync"> + <xsl:text># Corosync configuration file generated from </xsl:text> + <xsl:value-of select="$inputfile"/><xsl:text> at </xsl:text> + <xsl:value-of select="date:date-time()"/> + + <xsl:apply-templates select="@*"/> + <xsl:apply-templates /> + <xsl:value-of select="$newline" /> +</xsl:template> + +<xsl:template match="/corosync//*"> + <xsl:value-of select="$newline" /> + <xsl:value-of select="$newline" /> + <xsl:call-template name="indent"> + <xsl:with-param name="depth" select="count(ancestor::*) - 1"/> + </xsl:call-template> + <xsl:value-of select="name()"/> {<xsl:apply-templates select="@*"/> + <xsl:apply-templates /> + <xsl:value-of select="$newline" /> + <xsl:call-template name="indent"> + <xsl:with-param name="depth" select="count(ancestor::*) - 1"/> + </xsl:call-template> + <xsl:text>}</xsl:text> +</xsl:template> + +<xsl:template match="@*"> + <xsl:value-of select="$newline" /> + <xsl:call-template name="indent"> + <xsl:with-param name="depth" select="count(ancestor::*) - 1"/> + </xsl:call-template> + <xsl:value-of select="name()"/><xsl:text>: </xsl:text><xsl:value-of select="."/> +</xsl:template> + +<xsl:template match="text()"> +</xsl:template> + +<xsl:template name="indent"> + <xsl:param name="depth"/> + <xsl:if test="$depth > 0"> + <xsl:text> </xsl:text> + <xsl:call-template name="indent"> + <xsl:with-param name="depth" select="$depth - 1"/> + </xsl:call-template> + </xsl:if> +</xsl:template> + +</xsl:stylesheet> |