diff --git a/.gitignore b/.gitignore
index af4ebe6929..8b46f4bcdc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,174 +1,174 @@
# Common
\#*
.\#*
GPATH
GRTAGS
GTAGS
TAGS
Makefile
Makefile.in
.deps
.libs
*.pc
*.pyc
*.bz2
*.tar.gz
*.rpm
*.la
*.lo
*.o
*~
*.gcda
*.gcno
# Autobuild
aclocal.m4
autoconf
autoheader
autom4te.cache/
automake
build.counter
compile
config.guess
config.log
config.status
config.sub
configure
depcomp
install-sh
include/stamp-*
libltdl.tar
libtool
libtool.m4
ltdl.m4
ltmain.sh
missing
py-compile
m4/ltoptions.m4
m4/ltsugar.m4
m4/ltversion.m4
m4/lt~obsolete.m4
test-driver
ylwrap
# Configure targets
Doxyfile
coverage.sh
cts/CTSvars.py
cts/HBDummy
cts/LSBDummy
cts/benchmark/clubench
cts/lxc_autogen.sh
extra/logrotate/pacemaker
include/config.h
include/config.h.in
include/crm_config.h
lrmd/pacemaker_remote
lrmd/pacemaker_remoted
lrmd/pacemaker_remote.service
mcp/pacemaker
mcp/pacemaker.combined.upstart
mcp/pacemaker.service
mcp/pacemaker.upstart
pengine/regression.core.sh
publican.cfg
shell/modules/help.py
shell/modules/ra.py
shell/modules/ui.py
shell/modules/vars.py
tools/cibsecret
tools/coverage.sh
tools/crm_error
tools/crm_mon.service
tools/crm_mon.upstart
tools/crm_report
tools/report.common
lrmd/regression.py
fencing/regression.py
# Build targets
*.7
*.7.xml
*.7.html
*.8
*.8.xml
*.8.html
attrd/attrd
doc/*/en-US/images/*.png
doc/*/tmp/**
doc/*/publish
cib/cib
cib/cibmon
cib/cibpipe
crmd/atest
crmd/crmd
doc/api/*
doc/Clusters_from_Scratch.txt
doc/Pacemaker_Explained.txt
doc/acls.html
doc/crm_fencing.html
+doc/publican-catalog*
fencing/stonith-test
fencing/stonith_admin
fencing/stonithd
fencing/stonithd.xml
lrmd/lrmd
lrmd/lrmd_internal_ctl
lrmd/lrmd_test
mcp/pacemakerd
pengine/pengine
pengine/pengine.xml
pengine/ptest
shell/regression/testcases/confbasic-xml.filter
scratch
tools/attrd_updater
tools/cibadmin
tools/crm_attribute
tools/crm_diff
tools/crm_mon
tools/crm_node
tools/crm_resource
tools/crm_shadow
tools/crm_simulate
tools/crm_uuid
tools/crm_verify
tools/crmadmin
tools/iso8601
tools/crm_ticket
tools/report.collector.1
xml/crm.dtd
xml/pacemaker*.rng
xml/versions.rng
doc/shared/en-US/*.xml
doc/Clusters_from_Scratch.build
doc/Clusters_from_Scratch/en-US/Ap-*.xml
doc/Clusters_from_Scratch/en-US/Ch-*.xml
doc/Pacemaker_Explained.build
doc/Pacemaker_Explained/en-US/Ch-*.xml
doc/Pacemaker_Explained/en-US/Ap-*.xml
doc/Pacemaker_Remote.build
doc/Pacemaker_Remote/en-US/Ch-*.xml
lib/gnu/libgnu.a
lib/gnu/stdalign.h
*.coverity
#Other
mock
HTML
pacemaker*.spec
pengine/.regression.failed.diff
coverity-*
compat_reports
.ABI-build
abi_dumps
logs
-xsl
*.patch
*.diff
*.sed
*.orig
*.rej
*.swp
pengine/test10/shadow.*
diff --git a/doc/Makefile.am b/doc/Makefile.am
index e7f037e8e4..959079edf6 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,206 +1,234 @@
#
# doc: Pacemaker code
#
# Copyright (C) 2008 Andrew Beekhof
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
include $(top_srcdir)/Makefile.common
helpdir = $(datadir)/$(PACKAGE)
ascii = crm_fencing.txt acls.txt
docbook = Pacemaker_Explained Clusters_from_Scratch Pacemaker_Remote
doc_DATA = $(ascii) $(generated_docs)
# rsync destination for www targets
RSYNC_DEST = root@www.clusterlabs.org:/var/www/html/doc/
publican_docs =
generated_docs =
generated_mans =
ASCIIDOC_CLI_TYPE := pcs
DOCBOOK_FORMATS := html-desktop
DOCBOOK_LANGS := en-US
DOTs = $(wildcard */en-US/images/*.dot)
SVG = $(wildcard */en-US/images/pcmk-*.svg) $(DOTs:%.dot=%.svg)
generated_PNGS = $(SVG:%.svg=%-small.png) $(SVG:%.svg=%.png) $(SVG:%.svg=%-large.png) \
Pacemaker_Explained/en-US/images/Policy-Engine-big.png \
Pacemaker_Explained/en-US/images/Policy-Engine-small.png
PNGS = $(generated_PNGS) \
Pacemaker_Remote/en-US/images/pcmk-ha-cluster-stack.png \
Pacemaker_Remote/en-US/images/pcmk-ha-remote-stack.png
BRAND_PNGS = publican-clusterlabs/en-US/images/title_logo.png \
publican-clusterlabs/en-US/images/image_left.png \
publican-clusterlabs/en-US/images/image_right.png \
publican-clusterlabs/en-US/images/h1-bg.png
graphics: $(PNGS)
%.png: %.svg
$(AM_V_IMG)$(INKSCAPE) --file=$< --export-dpi=90 -C --export-png=$@
%-small.png: %.svg
$(AM_V_IMG)$(INKSCAPE) --file=$< --export-dpi=45 -C --export-png=$@
%-large.png: %.svg
$(AM_V_IMG)$(INKSCAPE) --file=$< --export-dpi=180 -C --export-png=$@
if BUILD_ASCIIDOC
generated_docs += $(ascii:%.txt=%.html)
if BUILD_DOCBOOK
publican_docs += $(docbook)
endif
endif
EXTRA_DIST = $(docbook:%=%.xml)
%.html: %.txt
$(AM_V_ASCII)$(ASCIIDOC) --unsafe --backend=xhtml11 $<
-# publican-clusterlabs/xsl/html-single.xsl imports that of Publican
-# through this link during the build
-../xsl:
- ln -s /usr/share/publican/xsl "$@"
+# publican-clusterlabs/xsl/{html,html-single,pdf}.xsl refer to URIs
+# requiring Internet access, hence we shadow that with a XML catalog-based
+# redirect to local files brought with Publican installation;
+# this is what newer Publican normally does with the system-wide catalog
+# upon its installation, but let's provide a compatibility for older
+# or badly installed instances (via adding the created file into
+# XML_CATALOG_FILES for libxml2 backing Publican as a fallback);
+# note that nextCatalog arrangement needed so as to overcome
+# https://rt.cpan.org/Public/Bug/Display.html?id=113781
+publican-catalog-fallback:
+ @exec >$@-t \
+ && echo '' \
+ && echo '' \
+ && echo ''
+ $(AM_V_GEN)mv $@-t $@
+publican-catalog: publican-catalog-fallback
+ @exec >$@-t \
+ && echo '' \
+ && echo '' \
+ && echo '' \
+ && echo ''
+ $(AM_V_GEN)mv $@-t $@
SHARED_TXT=$(wildcard shared/en-US/*.txt)
SHARED_XML=$(SHARED_TXT:%.txt=%.xml)
CFS_SHARED_TXT=$(addprefix shared/en-US/,pacemaker-intro.txt)
CFS_SHARED_XML=$(CFS_SHARED_TXT:%.txt=%.xml)
CFS_TXT=$(wildcard Clusters_from_Scratch/en-US/*.txt)
CFS_XML=$(CFS_TXT:%.txt=%.xml)
$(CFS_XML): $(CFS_SHARED_XML)
# We have to hardcode the book name
# With '%' the test for 'newness' fails
-Clusters_from_Scratch.build: $(PNGS) $(wildcard Clusters_from_Scratch/en-US/*.xml) $(CFS_XML) $(CFS_SHARED_XML) ../xsl
+Clusters_from_Scratch.build: $(PNGS) $(wildcard Clusters_from_Scratch/en-US/*.xml) $(CFS_XML) $(CFS_SHARED_XML) publican-catalog
$(PCMK_V) @echo Building $(@:%.build=%) because of $?
rm -rf $(@:%.build=%)/publish/*
- $(AM_V_PUB)cd $(@:%.build=%) && RPM_BUILD_DIR="" $(PUBLICAN) build --publish --langs=$(DOCBOOK_LANGS) --formats=$(DOCBOOK_FORMATS) --brand_dir=../publican-clusterlabs $(PCMK_quiet)
+ $(AM_V_PUB)cd $(@:%.build=%) \
+ && RPM_BUILD_DIR="" XML_CATALOG_FILES="$(CURDIR)/publican-catalog" \
+ $(PUBLICAN) build --publish --langs=$(DOCBOOK_LANGS) --formats=$(DOCBOOK_FORMATS) --brand_dir=../publican-clusterlabs \
+ $(PCMK_quiet)
rm -rf $(@:%.build=%)/tmp
touch $@
PE_SHARED_TXT=$(addprefix shared/en-US/,pacemaker-intro.txt)
PE_SHARED_XML=$(PE_SHARED_TXT:%.txt=%.xml)
PE_TXT=$(wildcard Pacemaker_Explained/en-US/*.txt)
PE_XML=$(PE_TXT:%.txt=%.xml)
$(PE_XML): $(PE_SHARED_XML)
# We have to hardcode the book name
# With '%' the test for 'newness' fails
-Pacemaker_Explained.build: $(PNGS) $(wildcard Pacemaker_Explained/en-US/*.xml) $(PE_XML) $(PE_SHARED_XML) ../xsl
+Pacemaker_Explained.build: $(PNGS) $(wildcard Pacemaker_Explained/en-US/*.xml) $(PE_XML) $(PE_SHARED_XML) publican-catalog
$(PCMK_V) @echo Building $(@:%.build=%) because of $?
rm -rf $(@:%.build=%)/publish/*
- $(AM_V_PUB)cd $(@:%.build=%) && RPM_BUILD_DIR="" $(PUBLICAN) build --publish --langs=$(DOCBOOK_LANGS) --formats=$(DOCBOOK_FORMATS) --brand_dir=../publican-clusterlabs $(PCMK_quiet)
+ $(AM_V_PUB)cd $(@:%.build=%) \
+ && RPM_BUILD_DIR="" XML_CATALOG_FILES="$(CURDIR)/publican-catalog" \
+ $(PUBLICAN) build --publish --langs=$(DOCBOOK_LANGS) --formats=$(DOCBOOK_FORMATS) --brand_dir=../publican-clusterlabs \
+ $(PCMK_quiet)
rm -rf $(@:%.build=%)/tmp
touch $@
PR_TXT=$(wildcard Pacemaker_Remote/en-US/*.txt)
PR_XML=$(PR_TXT:%.txt=%.xml)
# We have to hardcode the book name
# With '%' the test for 'newness' fails
-Pacemaker_Remote.build: $(PNGS) $(wildcard Pacemaker_Remote/en-US/*.xml) $(PR_XML) ../xsl
+Pacemaker_Remote.build: $(PNGS) $(wildcard Pacemaker_Remote/en-US/*.xml) $(PR_XML) publican-catalog
$(PCMK_V) @echo Building $(@:%.build=%) because of $?
rm -rf $(@:%.build=%)/publish/*
- $(AM_V_PUB)cd $(@:%.build=%) && RPM_BUILD_DIR="" $(PUBLICAN) build --publish --langs=$(DOCBOOK_LANGS) --formats=$(DOCBOOK_FORMATS) --brand_dir=../publican-clusterlabs $(PCMK_quiet)
+ $(AM_V_PUB)cd $(@:%.build=%) \
+ && RPM_BUILD_DIR="" XML_CATALOG_FILES="$(CURDIR)/publican-catalog" \
+ $(PUBLICAN) build --publish --langs=$(DOCBOOK_LANGS) --formats=$(DOCBOOK_FORMATS) --brand_dir=../publican-clusterlabs \
+ $(PCMK_quiet)
rm -rf $(@:%.build=%)/tmp
touch $@
# Update the translation template
pot:
for book in $(docbook); do \
echo "Updating translation templates in: $$book"; \
( cd $$book && RPM_BUILD_DIR="" $(PUBLICAN) update_pot ); \
done
# Update the actual translations
po: pot
for book in $(docbook); do \
echo "Updating translations in: $$book"; \
( cd $$book && RPM_BUILD_DIR="" $(PUBLICAN) update_po --langs=all );\
done
if BUILD_DOCBOOK
docbook_build = $(docbook:%=%.build)
all-local: $(docbook_build) */publican.cfg
install-data-local: all-local
for book in $(docbook); do \
filelist=`find $$book/publish/* -print`; \
for f in $$filelist; do \
p=`echo $$f | sed s:publish/:: | sed s:Pacemaker/::`; \
if [ -d $$f ]; then \
$(INSTALL) -d -m 775 $(DESTDIR)$(docdir)/$$p; \
else \
$(INSTALL) -m 644 $$f $(DESTDIR)$(docdir)/$$p; \
fi \
done; \
done
endif
brand: $(BRAND_PNGS) $(wildcard publican-clusterlabs/en-US/*.xml)
cd publican-clusterlabs && publican build --formats=xml --langs=all --publish
echo "Installing..."
cd publican-clusterlabs && sudo publican install_brand --path=$(datadir)/publican/Common_Content
# find publican-clusterlabs -name "*.noarch.rpm" -exec rm -f \{\} \;
# cd publican-clusterlabs && $(PUBLICAN) package --binary
# find publican-clusterlabs -name "*.noarch.rpm" -exec sudo rpm -Uvh --force \{\} \;
pdf:
make DOCBOOK_FORMATS="pdf" ASCIIDOC_CLI_TYPE=$(ASCIIDOC_CLI_TYPE) all-local
www: clean-local $(generated_docs) $(ascii)
make www-cli
rsync -rtz --progress $(generated_docs) $(ascii) $(asciiman) $(RSYNC_DEST)
www-pcs: www-cli
www-cli:
for book in $(docbook); do \
sed -i.sed 's@brand:.*@brand: clusterlabs@' $$book/publican.cfg; \
sed -i.sed 's@version:.*@version: $(PACKAGE_SERIES)-$(ASCIIDOC_CLI_TYPE)@' $$book/publican.cfg; \
done
make DOCBOOK_FORMATS="pdf,html,html-single,epub" DOCBOOK_LANGS="all" ASCIIDOC_CLI_TYPE=$(ASCIIDOC_CLI_TYPE) all-local
echo Uploading current $(PACKAGE_SERIES)-$(ASCIIDOC_CLI_TYPE) documentation set to clusterlabs.org
if BUILD_DOCBOOK
for book in $(docbook); do \
echo Uploading $$book...; \
echo "Generated on `date` from version: $(shell git log --pretty="format:%h %d" -n 1)" >> $$book/publish/build-$(PACKAGE_SERIES)-$(ASCIIDOC_CLI_TYPE).txt; \
for lang in `ls -1 $$book/publish | grep [a-z][a-z]-[A-Z][A-Z]`; do \
mv $$book/publish/$$lang/Pacemaker/$(PACKAGE_SERIES)-$(ASCIIDOC_CLI_TYPE)/epub/$$book/Pacemaker-1.1{-$(ASCIIDOC_CLI_TYPE),}-$$book-$$lang.epub; \
mv $$book/publish/$$lang/Pacemaker/$(PACKAGE_SERIES)-$(ASCIIDOC_CLI_TYPE)/pdf/$$book/Pacemaker-1.1{-$(ASCIIDOC_CLI_TYPE),}-$$book-$$lang.pdf; \
done; \
rsync -rtz --progress $$book/publish/* $(RSYNC_DEST); \
sed -i.sed 's@version:.*@version: $(PACKAGE_SERIES)@' $$book/publican.cfg; \
done
endif
clean-local:
- -rm -rf $(generated_docs) $(generated_mans) $(docbook_build) ../xsl $(generated_PNGS)
+ -rm -rf $(generated_docs) $(generated_mans) $(docbook_build) $(generated_PNGS)
-rm -rf $(SHARED_XML) $(CFS_XML) $(PE_XML) $(PR_XML)
+ -rm -rf publican-catalog-fallback publican-catalog
for book in $(docbook); do rm -rf $$book/tmp $$book/publish; done
diff --git a/doc/publican-clusterlabs/xsl/html-single.xsl b/doc/publican-clusterlabs/xsl/html-single.xsl
index c55bf35db5..0a4839b54c 100644
--- a/doc/publican-clusterlabs/xsl/html-single.xsl
+++ b/doc/publican-clusterlabs/xsl/html-single.xsl
@@ -1,24 +1,24 @@
]>
-
+
diff --git a/doc/publican-clusterlabs/xsl/html.xsl b/doc/publican-clusterlabs/xsl/html.xsl
index 62f8728207..c4c44218a1 100644
--- a/doc/publican-clusterlabs/xsl/html.xsl
+++ b/doc/publican-clusterlabs/xsl/html.xsl
@@ -1,34 +1,34 @@
]>
-
+
diff --git a/doc/publican-clusterlabs/xsl/pdf.xsl b/doc/publican-clusterlabs/xsl/pdf.xsl
index 5d2f25c339..9690ecca87 100644
--- a/doc/publican-clusterlabs/xsl/pdf.xsl
+++ b/doc/publican-clusterlabs/xsl/pdf.xsl
@@ -1,26 +1,26 @@
]>
-
+