diff --git a/0002-docs-bitmaps-use-QMP-lexer-instead-of-json.patch b/0002-docs-bitmaps-use-QMP-lexer-instead-of-json.patch new file mode 100644 index 0000000..24d69d6 --- /dev/null +++ b/0002-docs-bitmaps-use-QMP-lexer-instead-of-json.patch @@ -0,0 +1,274 @@ +From f5068276729f5c3288ebd9cc29f18e9e04f643c9 Mon Sep 17 00:00:00 2001 +From: John Snow +Date: Wed, 10 Jul 2019 15:08:07 -0400 +Subject: [PATCH] docs/bitmaps: use QMP lexer instead of json + +The annotated style json we use in QMP documentation is not strict json +and depending on the version of Sphinx (2.0+) or Pygments installed, +might cause the build to fail. + +Use the new QMP lexer. + +Further, some versions of Sphinx can not apply custom lexers to "code" +directives and require the use of "code-block" directives instead, so +make that change at this time as well. + +Tested under: +- Sphinx 1.3.6 and Pygments 2.4 +- Sphinx 1.7.6 and Pygments 2.2 (Fedora 29 packages) +- Sphinx 2.0.1 and Pygments 2.4 +- Sphinx 3.0.0+/f396b3a783 and Pygments 2.4 (From Sphinx git c4f44bdd) + +Reported-by: Aarushi Mehta +Signed-off-by: John Snow +Reviewed-by: Eduardo Habkost +Message-id: 20190603214653.29369-4-jsnow@redhat.com +Signed-off-by: John Snow +(cherry picked from commit a7786bfb0effe0b4b0fc61d8a8cd307c0b739ed7) +--- + docs/interop/bitmaps.rst | 54 ++++++++++++++++++++-------------------- + 1 file changed, 27 insertions(+), 27 deletions(-) + +diff --git a/docs/interop/bitmaps.rst b/docs/interop/bitmaps.rst +index 510e8809a9..cf308f197b 100644 +--- a/docs/interop/bitmaps.rst ++++ b/docs/interop/bitmaps.rst +@@ -199,7 +199,7 @@ persistence, and recording state can be adjusted at creation time. + + to create a new, actively recording persistent bitmap: + +- .. code:: json ++ .. code-block:: QMP + + -> { "execute": "block-dirty-bitmap-add", + "arguments": { +@@ -220,7 +220,7 @@ persistence, and recording state can be adjusted at creation time. + To create a new, disabled (``-recording``), transient bitmap that tracks + changes in 32KiB segments: + +- .. code:: json ++ .. code-block:: QMP + + -> { "execute": "block-dirty-bitmap-add", + "arguments": { +@@ -254,7 +254,7 @@ Deletes a bitmap. Bitmaps that are ``+busy`` cannot be removed. + + Remove a bitmap named ``bitmap0`` from node ``drive0``: + +- .. code:: json ++ .. code-block:: QMP + + -> { "execute": "block-dirty-bitmap-remove", + "arguments": { +@@ -280,7 +280,7 @@ Clears all dirty bits from a bitmap. ``+busy`` bitmaps cannot be cleared. + + Clear all dirty bits from bitmap ``bitmap0`` on node ``drive0``: + +- .. code:: json ++ .. code-block:: QMP + + -> { "execute": "block-dirty-bitmap-clear", + "arguments": { +@@ -309,7 +309,7 @@ begin being recorded. ``+busy`` bitmaps cannot be enabled. + + To set ``+recording`` on bitmap ``bitmap0`` on node ``drive0``: + +- .. code:: json ++ .. code-block:: QMP + + -> { "execute": "block-dirty-bitmap-enable", + "arguments": { +@@ -347,7 +347,7 @@ writes to begin being ignored. ``+busy`` bitmaps cannot be disabled. + + To set ``-recording`` on bitmap ``bitmap0`` on node ``drive0``: + +- .. code:: json ++ .. code-block:: QMP + + -> { "execute": "block-dirty-bitmap-disable", + "arguments": { +@@ -393,7 +393,7 @@ in any one source bitmap, the target bitmap will mark that segment dirty. + ``drive0``. If ``new_bitmap`` was empty prior to this command, this achieves + a copy. + +- .. code:: json ++ .. code-block:: QMP + + -> { "execute": "block-dirty-bitmap-merge", + "arguments": { +@@ -424,7 +424,7 @@ attached to nodes serving as the root for guest devices. + API. This result highlights a bitmap ``bitmap0`` attached to the root node of + device ``drive0``. + +- .. code:: json ++ .. code-block:: QMP + + -> { + "execute": "query-block", +@@ -562,7 +562,7 @@ new, empty bitmap that records writes from this point in time forward. + destination. These writes will be recorded in the bitmap + accordingly. + +-.. code:: json ++.. code-block:: QMP + + -> { + "execute": "transaction", +@@ -650,7 +650,7 @@ Example: Resetting an Incremental Backup Anchor Point + If we want to start a new backup chain with an existing bitmap, we can also + use a transaction to reset the bitmap while making a new full backup: + +-.. code:: json ++.. code-block:: QMP + + -> { + "execute": "transaction", +@@ -730,7 +730,7 @@ Example: First Incremental Backup + + #. Issue an incremental backup command: + +- .. code:: json ++ .. code-block:: QMP + + -> { + "execute": "drive-backup", +@@ -788,7 +788,7 @@ Example: Second Incremental Backup + #. Issue a new incremental backup command. The only difference here is that we + have changed the target image below. + +- .. code:: json ++ .. code-block:: QMP + + -> { + "execute": "drive-backup", +@@ -869,7 +869,7 @@ image: + #. Issue a new incremental backup command. Apart from the new destination + image, there is no difference from the last two examples. + +- .. code:: json ++ .. code-block:: QMP + + -> { + "execute": "drive-backup", +@@ -932,7 +932,7 @@ point in time. + + #. Create a full (anchor) backup for each drive, with accompanying bitmaps: + +- .. code:: json ++ .. code-block:: QMP + + -> { + "execute": "transaction", +@@ -1018,7 +1018,7 @@ point in time. + + #. Issue a multi-drive incremental push backup transaction: + +- .. code:: json ++ .. code-block:: QMP + + -> { + "execute": "transaction", +@@ -1121,7 +1121,7 @@ described above. This example demonstrates the single-job failure case: + + #. Attempt to create an incremental backup via QMP: + +- .. code:: json ++ .. code-block:: QMP + + -> { + "execute": "drive-backup", +@@ -1139,7 +1139,7 @@ described above. This example demonstrates the single-job failure case: + + #. Receive a pair of events indicating failure: + +- .. code:: json ++ .. code-block:: QMP + + <- { + "timestamp": {...}, +@@ -1175,7 +1175,7 @@ described above. This example demonstrates the single-job failure case: + #. Retry the command after fixing the underlying problem, such as + freeing up space on the backup volume: + +- .. code:: json ++ .. code-block:: QMP + + -> { + "execute": "drive-backup", +@@ -1193,7 +1193,7 @@ described above. This example demonstrates the single-job failure case: + + #. Receive confirmation that the job completed successfully: + +- .. code:: json ++ .. code-block:: QMP + + <- { + "timestamp": {...}, +@@ -1233,7 +1233,7 @@ and one succeeds: + + #. Issue the transaction to start a backup of both drives. + +- .. code:: json ++ .. code-block:: QMP + + -> { + "execute": "transaction", +@@ -1267,13 +1267,13 @@ and one succeeds: + #. Receive notice that the Transaction was accepted, and jobs were + launched: + +- .. code:: json ++ .. code-block:: QMP + + <- { "return": {} } + + #. Receive notice that the first job has completed: + +- .. code:: json ++ .. code-block:: QMP + + <- { + "timestamp": {...}, +@@ -1289,7 +1289,7 @@ and one succeeds: + + #. Receive notice that the second job has failed: + +- .. code:: json ++ .. code-block:: QMP + + <- { + "timestamp": {...}, +@@ -1365,7 +1365,7 @@ applied: + + #. Issue the multi-drive incremental backup transaction: + +- .. code:: json ++ .. code-block:: QMP + + -> { + "execute": "transaction", +@@ -1401,13 +1401,13 @@ applied: + + #. Receive notice that the Transaction was accepted, and jobs were launched: + +- .. code:: json ++ .. code-block:: QMP + + <- { "return": {} } + + #. Receive notification that the backup job for ``drive1`` has failed: + +- .. code:: json ++ .. code-block:: QMP + + <- { + "timestamp": {...}, +@@ -1434,7 +1434,7 @@ applied: + + #. Receive notification that the job for ``drive0`` has been cancelled: + +- .. code:: json ++ .. code-block:: QMP + + <- { + "timestamp": {...} diff --git a/qemu.spec b/qemu.spec index 9debed0..8bc1c8b 100644 --- a/qemu.spec +++ b/qemu.spec @@ -175,6 +175,8 @@ Source21: 95-kvm-ppc64-memlock.conf # Fix rawhide build (bz #1718926) # Not upstream, some mailing list patches have been proposed Patch0001: 0001-NOT-UPSTREAM-Build-fix-with-latest-kernel.patch +# Fix for docs building +Patch0002: 0002-docs-bitmaps-use-QMP-lexer-instead-of-json.patch # documentation deps BuildRequires: texinfo