diff --git a/.gitignore b/.gitignore
index 27410f884b5..93fcc668379 100644
--- a/.gitignore
+++ b/.gitignore
@@ -223,7 +223,6 @@ TAGS
/doc/sphinx/*/conf.py
/doc/sphinx/*/generated
/doc/sphinx/build-[0-9]*.txt
-/doc/sphinx/shared/images/*.png
# Test artifacts (from unit tests, regression tests, static analysis, etc.)
*.coverity
diff --git a/INSTALL.md b/INSTALL.md
index 26524d1aee3..a536eb7ff81 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -49,7 +49,6 @@ Also:
| Linux-HA style fencing agents | | cluster-glue-libs-devel | libglue-devel | cluster-glue-dev |
| documentation | | asciidoc or asciidoctor | asciidoc or asciidoctor | asciidoc or asciidoctor |
| documentation | | help2man | help2man | help2man |
-| documentation | | inkscape | inkscape | inkscape |
| documentation | | docbook-style-xsl | docbook-xsl-stylesheets | docbook-xsl |
| documentation | | python3-sphinx | python3-sphinx | python3-sphinx |
| documentation (PDF) | | latexmk texlive texlive-capt-of texlive-collection-xetex texlive-fncychap texlive-framed texlive-multirow texlive-needspace texlive-tabulary texlive-titlesec texlive-threeparttable texlive-upquote texlive-wrapfig texlive-xetex | texlive texlive-latex | texlive texlive-latex-extra |
diff --git a/configure.ac b/configure.ac
index 1567f9ac86c..e62c3e5ec79 100644
--- a/configure.ac
+++ b/configure.ac
@@ -938,7 +938,6 @@ dnl ==============================================
AC_PATH_PROGS([ASCIIDOC_CONV], [asciidoc asciidoctor])
AC_PATH_PROG([HELP2MAN], [help2man])
AC_PATH_PROG([SPHINX], [sphinx-build])
-AC_PATH_PROG([INKSCAPE], [inkscape])
AC_PATH_PROG([XSLTPROC], [xsltproc])
AC_PATH_PROG([XMLCATALOG], [xmlcatalog])
@@ -983,8 +982,7 @@ AM_CONDITIONAL([BUILD_ASCIIDOC], [test "x${ASCIIDOC_CONV}" != x])
AS_IF([test x"${ASCIIDOC_CONV}" != x""],
[PCMK_FEATURES="$PCMK_FEATURES ascii-docs"])
-AM_CONDITIONAL([BUILD_SPHINX_DOCS],
- [test x"${SPHINX}" != x"" && test x"${INKSCAPE}" != x""])
+AM_CONDITIONAL([BUILD_SPHINX_DOCS], [test x"${SPHINX}" != x""])
AM_COND_IF([BUILD_SPHINX_DOCS], [PCMK_FEATURES="$PCMK_FEATURES books"])
dnl Pacemaker's shell scripts (and thus man page builders) rely on GNU getopt
diff --git a/doc/sphinx/Makefile.am b/doc/sphinx/Makefile.am
index e6845f3ad9a..da938132a23 100644
--- a/doc/sphinx/Makefile.am
+++ b/doc/sphinx/Makefile.am
@@ -43,32 +43,31 @@ SPHINXFLAGS ?=
# End of useful overrides
-# Example scheduler transition graphs
-# @TODO The original CIB XML for these is long lost. Ideally, we would recreate
-# something similar and keep those here instead of the DOTs (or use a couple of
-# scheduler regression test inputs instead), then regenerate the SVG
-# equivalents using crm_simulate and dot when making a release.
-DOTS = $(wildcard shared/images/*.dot)
-
-# Vector sources for generated PNGs (including SVG equivalents of DOTS, created
-# manually using dot)
-SVGS = $(wildcard shared/images/pcmk-*.svg) \
- $(DOTS:%.dot=%.svg)
-
-# PNG images generated from SVGS
+# All images needed by the documentation are PNGs (added to the source
+# repository and distributions). Some of these PNGs can be regenerated
+# manually from DOT and/or SVG sources (also in the source repository, but
+# not distributed).
#
-# These will not be accessible in a VPATH build, which will generate warnings
-# when building the documentation, but the make will still succeed. It is
-# nontrivial to get them working for VPATH builds and not worth the effort.
-PNGS_GENERATED = $(SVGS:%.svg=%.png)
-
-# Original PNG image sources
-PNGS_Clusters_from_Scratch = $(wildcard Clusters_from_Scratch/images/*.png)
-PNGS_Pacemaker_Explained = $(wildcard Pacemaker_Explained/images/*.png)
+# To regenerate an SVG from a DOT, you can use dot:
+#
+# dot $NAME.dot -Tsvg > $NAME.svg
+#
+# To regenerate a PNG from an SVG, you can use Inkscape (>= 1.0):
+#
+# inkscape --export-dpi=90 -C --export-filename=$NAME.png $NAME.svg
+#
+# @TODO The original CIB XML for the example scheduler transitions
+# (Policy-Engine-*) is long lost. Ideally, we would recreate something similar
+# and keep that XML here (or use a couple of scheduler regression test inputs
+# instead). Then the DOTs could be regenerated as well, using crm_simulate.
+PNGS_shared = $(wildcard shared/images/*.png)
+PNGS_Clusters_from_Scratch = $(wildcard Clusters_from_Scratch/images/*.png)
+PNGS_Pacemaker_Explained = $(wildcard Pacemaker_Explained/images/*.png)
STATIC_FILES = $(wildcard _static/*.css)
-EXTRA_DIST = $(wildcard */*.rst) $(DOTS) $(SVGS) \
+EXTRA_DIST = $(wildcard */*.rst) \
+ $(PNGS_shared) \
$(PNGS_Clusters_from_Scratch) \
$(PNGS_Pacemaker_Explained) \
$(wildcard Pacemaker_Python_API/_templates/*rst) \
@@ -81,8 +80,8 @@ BOOK_RSYNC_DEST = $(RSYNC_PACKAGE_DEST)/doc/$(PACKAGE_SERIES)
BOOK = none
-DEPS_intro = shared/pacemaker-intro.rst \
- $(PNGS_GENERATED)
+DEPS_intro = shared/pacemaker-intro.rst \
+ $(PNGS_shared)
DEPS_Clusters_from_Scratch = $(DEPS_intro) \
$(PNGS_Clusters_from_Scratch)
@@ -94,18 +93,6 @@ DEPS_Pacemaker_Python_API = ../../python
if BUILD_SPHINX_DOCS
-INKSCAPE_CMD = $(INKSCAPE) --export-dpi=90 -C
-
-# Pattern rule to generate PNGs from SVGs
-# (--export-png works with Inkscape <1.0, --export-filename with >=1.0;
-# create the destination directory in case this is a VPATH build)
-%.png: %.svg
- $(AM_V_at)-$(MKDIR_P) "$(shell dirname "$@")"
- $(AM_V_GEN) { \
- $(INKSCAPE_CMD) --export-png="$@" "$<" 2>/dev/null \
- || $(INKSCAPE_CMD) --export-filename="$@" "$<"; \
- } $(PCMK_quiet)
-
# Create a book's Sphinx configuration.
# Create the book directory in case this is a VPATH build.
$(BOOKS:%=%/conf.py): conf.py.in
@@ -221,5 +208,4 @@ clean-local:
$(AM_V_at)-rm -rf \
$(BOOKS:%="$(builddir)/%/_build") \
$(BOOKS:%="$(builddir)/%/conf.py") \
- $(BOOKS:%="$(builddir)/%/generated") \
- $(PNGS_GENERATED)
+ $(BOOKS:%="$(builddir)/%/generated")
diff --git a/doc/sphinx/shared/images/Policy-Engine-big.png b/doc/sphinx/shared/images/Policy-Engine-big.png
new file mode 100644
index 00000000000..f2a36418419
Binary files /dev/null and b/doc/sphinx/shared/images/Policy-Engine-big.png differ
diff --git a/doc/sphinx/shared/images/Policy-Engine-small.png b/doc/sphinx/shared/images/Policy-Engine-small.png
new file mode 100644
index 00000000000..7b8e573d590
Binary files /dev/null and b/doc/sphinx/shared/images/Policy-Engine-small.png differ
diff --git a/doc/sphinx/shared/images/pcmk-active-active.png b/doc/sphinx/shared/images/pcmk-active-active.png
new file mode 100644
index 00000000000..9039601c41a
Binary files /dev/null and b/doc/sphinx/shared/images/pcmk-active-active.png differ
diff --git a/doc/sphinx/shared/images/pcmk-active-passive.png b/doc/sphinx/shared/images/pcmk-active-passive.png
new file mode 100644
index 00000000000..fa001a12331
Binary files /dev/null and b/doc/sphinx/shared/images/pcmk-active-passive.png differ
diff --git a/doc/sphinx/shared/images/pcmk-colocated-sets.png b/doc/sphinx/shared/images/pcmk-colocated-sets.png
new file mode 100644
index 00000000000..206f4b1c079
Binary files /dev/null and b/doc/sphinx/shared/images/pcmk-colocated-sets.png differ
diff --git a/doc/sphinx/shared/images/pcmk-internals.png b/doc/sphinx/shared/images/pcmk-internals.png
new file mode 100644
index 00000000000..a9867fa540e
Binary files /dev/null and b/doc/sphinx/shared/images/pcmk-internals.png differ
diff --git a/doc/sphinx/shared/images/pcmk-overview.svg b/doc/sphinx/shared/images/pcmk-overview.svg
deleted file mode 100644
index 9fb022db44c..00000000000
--- a/doc/sphinx/shared/images/pcmk-overview.svg
+++ /dev/null
@@ -1,855 +0,0 @@
-
-
-
-
diff --git a/doc/sphinx/shared/images/pcmk-shared-failover.png b/doc/sphinx/shared/images/pcmk-shared-failover.png
new file mode 100644
index 00000000000..9c3601a7c41
Binary files /dev/null and b/doc/sphinx/shared/images/pcmk-shared-failover.png differ
diff --git a/doc/sphinx/shared/images/pcmk-stack.svg b/doc/sphinx/shared/images/pcmk-stack.svg
deleted file mode 100644
index fcbe137cfb4..00000000000
--- a/doc/sphinx/shared/images/pcmk-stack.svg
+++ /dev/null
@@ -1,925 +0,0 @@
-
-
-
-
diff --git a/doc/sphinx/shared/pacemaker-intro.rst b/doc/sphinx/shared/pacemaker-intro.rst
index dbea686b744..c06b4bad3af 100644
--- a/doc/sphinx/shared/pacemaker-intro.rst
+++ b/doc/sphinx/shared/pacemaker-intro.rst
@@ -73,10 +73,6 @@ open-source cluster filesystems make use of a common *Distributed Lock
Manager* (DLM), which makes direct use of Corosync for its messaging and
membership capabilities and Pacemaker for the ability to fence nodes.
-.. image:: ../shared/images/pcmk-stack.png
- :alt: Example cluster stack
- :align: center
-
Pacemaker Architecture
______________________
diff --git a/rpm/pacemaker.spec.in b/rpm/pacemaker.spec.in
index 2771f474392..1968b9ed0d5 100644
--- a/rpm/pacemaker.spec.in
+++ b/rpm/pacemaker.spec.in
@@ -298,7 +298,6 @@ BuildRequires: %{pkgname_glue_libs}-devel
%if %{with doc}
BuildRequires: asciidoc
-BuildRequires: inkscape
BuildRequires: %{python_name}-sphinx
%endif