Merge "Add PDF building"
diff --git a/README.rst b/README.rst
index f19bda9..ef0ff00 100644
--- a/README.rst
+++ b/README.rst
@@ -1,10 +1,3 @@
-========================
-Team and repository tags
-========================
-
-.. image:: https://governance.openstack.org/tc/badges/patrole.svg
-    :target: https://governance.openstack.org/tc/reference/tags/index.html
-
 Patrole - RBAC Integration Tempest Plugin
 =========================================
 
@@ -24,10 +17,16 @@
 
 * Free software: Apache license
 * Documentation: https://docs.openstack.org/patrole/latest
-* Source: https://git.openstack.org/cgit/openstack/patrole
+* Source: https://opendev.org/openstack/patrole
 * Bugs: https://storyboard.openstack.org/#!/project/openstack/patrole
 * Release notes: https://docs.openstack.org/releasenotes/patrole/
 
+Team and repository tags
+------------------------
+
+.. image:: https://governance.openstack.org/tc/badges/patrole.svg
+    :target: https://governance.openstack.org/tc/reference/tags/index.html
+
 .. _design-principles:
 
 Design Principles
@@ -75,8 +74,8 @@
 .. _Tempest plugin: https://docs.openstack.org/tempest/latest/plugin.html
 .. _Tempest design principles: https://docs.openstack.org/tempest/latest/overview.html#design-principles
 .. _policy in code: https://specs.openstack.org/openstack/oslo-specs/specs/newton/policy-in-code.html
-.. _Nova repository: https://git.openstack.org/cgit/openstack/nova/tree/nova/policies
-.. _Keystone repository: https://git.openstack.org/cgit/openstack/keystone/tree/keystone/common/policies
+.. _Nova repository: https://opendev.org/openstack/nova/src/branch/master/nova/policies
+.. _Keystone repository: https://opendev.org/openstack/keystone/src/branch/master/keystone/common/policies
 
 Features
 --------
@@ -123,7 +122,7 @@
 #. You first need to install Patrole. This is done with pip after you check out
    the Patrole repo::
 
-    $ git clone https://git.openstack.org/openstack/patrole
+    $ git clone https://opendev.org/openstack/patrole
     $ pip install patrole/
 
    This can be done within a venv.
@@ -174,7 +173,7 @@
    the Patrole repository. To configure Patrole's logging, see the
    `Patrole Configuration Guide <https://docs.openstack.org/patrole/latest/configuration.html#patrole-configuration>`_.
 
-.. _Tempest: https://git.openstack.org/cgit/openstack/tempest
+.. _Tempest: https://opendev.org/openstack/tempest/
 .. _Tempest_quickstart: https://docs.openstack.org/tempest/latest/overview.html#quickstart
 .. _tempest_run: https://docs.openstack.org/tempest/latest/run.html
 .. _testr: https://testrepository.readthedocs.org/en/latest/MANUAL.html
diff --git a/doc/requirements.txt b/doc/requirements.txt
index b03ff2c..3a1bb3d 100644
--- a/doc/requirements.txt
+++ b/doc/requirements.txt
@@ -6,3 +6,4 @@
 openstackdocstheme>=1.20.0 # Apache-2.0
 reno>=2.5.0 # Apache-2.0
 sphinxcontrib-apidoc>=0.2.0  # BSD
+sphinxcontrib-svg2pdfconverter>=0.1.0 # BSD
diff --git a/doc/source/conf.py b/doc/source/conf.py
index 1d82bc0..4fa65e6 100755
--- a/doc/source/conf.py
+++ b/doc/source/conf.py
@@ -30,6 +30,7 @@
     'sphinx.ext.autodoc',
     'sphinx.ext.todo',
     'sphinx.ext.viewcode',
+    'sphinxcontrib.rsvgconverter',
     'openstackdocstheme',
     'oslo_config.sphinxconfiggen',
     'sphinxcontrib.apidoc',
@@ -94,15 +95,18 @@
 # Output file base name for HTML help builder.
 htmlhelp_basename = 'patroledoc'
 
+# Example configuration for intersphinx: refer to the Python standard library.
+#intersphinx_mapping = {'http://docs.python.org/': None}
+
+# -- Options for LaTeX output -------------------------------------------------
+
 # Grouping the document tree into LaTeX files. List of tuples
 # (source start file, target name, title, author, documentclass
 # [howto/manual]).
 latex_documents = [
-    ('index',
-     'patrole.tex',
-     u'patrole Documentation',
-     u'Patrole Developers', 'manual'),
+    ('index', 'doc-patrole.tex', u'Patrole: Tempest Plugin for RBAC Testing',
+     u'OpenStack Foundation', 'manual'),
 ]
 
-# Example configuration for intersphinx: refer to the Python standard library.
-#intersphinx_mapping = {'http://docs.python.org/': None}
+# Disable usage of xindy https://bugzilla.redhat.com/show_bug.cgi?id=1643664
+latex_use_xindy = False
\ No newline at end of file
diff --git a/doc/source/index.rst b/doc/source/index.rst
index 816908a..c7251ee 100644
--- a/doc/source/index.rst
+++ b/doc/source/index.rst
@@ -71,7 +71,12 @@
    framework/rbac_utils
    framework/code/modules
 
-Indices and tables
-==================
+Search
+======
 
-* :ref:`search`
+.. only:: html
+
+  * :ref:`Patrole document search <search>`: Search the contents of this document.
+
+* `OpenStack wide search <https://docs.openstack.org>`_: Search the wider
+  set of OpenStack documentation, including forums.
diff --git a/tox.ini b/tox.ini
index 9e2772c..b7e02e6 100644
--- a/tox.ini
+++ b/tox.ini
@@ -64,6 +64,15 @@
   sphinx-build -W -b html doc/source doc/build/html
 whitelist_externals = rm
 
+[testenv:pdf-docs]
+basepython = python3
+deps = {[testenv:docs]deps}
+whitelist_externals =
+   make
+commands =
+   sphinx-build -W -b latex doc/source doc/build/pdf
+   make -C doc/build/pdf
+
 [testenv:releasenotes]
 basepython = python3
 deps =