<div><br></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Dec 21, 2021 at 17:09 Andrea Bolognani <<a href="mailto:abologna@redhat.com">abologna@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">This unclutters the toplevel docs directory.<br>
<br>
Signed-off-by: Andrea Bolognani <<a href="mailto:abologna@redhat.com" target="_blank">abologna@redhat.com</a>></blockquote><div dir="auto"><br></div><div dir="auto">Reviewed-by: Ani Sinha <<a href="mailto:ani@anisinha.ca">ani@anisinha.ca</a>></div><div dir="auto"><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)" dir="auto"><br>
---<br>
 docs/api.rst                                  |   6 ++---<br>
 docs/<a href="http://goals.html.in" rel="noreferrer" target="_blank">goals.html.in</a>                            |   2 +-<br>
 docs/{ => images}/event_loop_simple.png       | Bin<br>
 docs/{ => images}/event_loop_simple.svg       |   0<br>
 docs/{ => images}/event_loop_worker.png       | Bin<br>
 docs/{ => images}/event_loop_worker.svg       |   0<br>
 docs/{ => images}/libvirt-daemon-arch.png     | Bin<br>
 docs/{ => images}/libvirt-daemon-arch.svg     |   0<br>
 docs/{ => images}/libvirt-driver-arch.png     | Bin<br>
 docs/{ => images}/libvirt-driver-arch.svg     |   0<br>
 docs/{ => images}/libvirt-object-model.png    | Bin<br>
 docs/{ => images}/libvirt-object-model.svg    |   0<br>
 .../libvirt-virConnect-example.png            | Bin<br>
 .../libvirt-virConnect-example.svg            |   0<br>
 docs/images/meson.build                       |  24 ++++++++++++++++++<br>
 .../{ => images}/migration-managed-direct.png | Bin<br>
 .../{ => images}/migration-managed-direct.svg |   0<br>
 docs/{ => images}/migration-managed-p2p.png   | Bin<br>
 docs/{ => images}/migration-managed-p2p.svg   |   0<br>
 docs/{ => images}/migration-native.png        | Bin<br>
 docs/{ => images}/migration-native.svg        |   0<br>
 docs/{ => images}/migration-tunnel.png        | Bin<br>
 docs/{ => images}/migration-tunnel.svg        |   0<br>
 .../migration-unmanaged-direct.png            | Bin<br>
 .../migration-unmanaged-direct.svg            |   0<br>
 docs/{ => images}/node.gif                    | Bin<br>
 docs/{ => images}/node.svg                    |   0<br>
 docs/<a href="http://internals.html.in" rel="noreferrer" target="_blank">internals.html.in</a>                        |   2 +-<br>
 docs/internals/<a href="http://eventloop.html.in" rel="noreferrer" target="_blank">eventloop.html.in</a>              |   4 +--<br>
 docs/meson.build                              |  13 +---------<br>
 docs/migration.rst                            |  10 ++++----<br>
 31 files changed, 37 insertions(+), 24 deletions(-)<br>
 rename docs/{ => images}/event_loop_simple.png (100%)<br>
 rename docs/{ => images}/event_loop_simple.svg (100%)<br>
 rename docs/{ => images}/event_loop_worker.png (100%)<br>
 rename docs/{ => images}/event_loop_worker.svg (100%)<br>
 rename docs/{ => images}/libvirt-daemon-arch.png (100%)<br>
 rename docs/{ => images}/libvirt-daemon-arch.svg (100%)<br>
 rename docs/{ => images}/libvirt-driver-arch.png (100%)<br>
 rename docs/{ => images}/libvirt-driver-arch.svg (100%)<br>
 rename docs/{ => images}/libvirt-object-model.png (100%)<br>
 rename docs/{ => images}/libvirt-object-model.svg (100%)<br>
 rename docs/{ => images}/libvirt-virConnect-example.png (100%)<br>
 rename docs/{ => images}/libvirt-virConnect-example.svg (100%)<br>
 create mode 100644 docs/images/meson.build<br>
 rename docs/{ => images}/migration-managed-direct.png (100%)<br>
 rename docs/{ => images}/migration-managed-direct.svg (100%)<br>
 rename docs/{ => images}/migration-managed-p2p.png (100%)<br>
 rename docs/{ => images}/migration-managed-p2p.svg (100%)<br>
 rename docs/{ => images}/migration-native.png (100%)<br>
 rename docs/{ => images}/migration-native.svg (100%)<br>
 rename docs/{ => images}/migration-tunnel.png (100%)<br>
 rename docs/{ => images}/migration-tunnel.svg (100%)<br>
 rename docs/{ => images}/migration-unmanaged-direct.png (100%)<br>
 rename docs/{ => images}/migration-unmanaged-direct.svg (100%)<br>
 rename docs/{ => images}/node.gif (100%)<br>
 rename docs/{ => images}/node.svg (100%)<br>
<br>
diff --git a/docs/api.rst b/docs/api.rst<br>
index a8f527e197..d9f01fb403 100644<br>
--- a/docs/api.rst<br>
+++ b/docs/api.rst<br>
@@ -260,6 +260,6 @@ rules and guidelines. In order to add new API functionality follow the<br>
 instructions regarding `implementing a new API in<br>
 libvirt <api_extension.html>`__.<br>
<br>
-.. |first class objects exposed by the API| image:: libvirt-object-model.png<br>
-.. |The libvirt driver architecture| image:: libvirt-driver-arch.png<br>
-.. |The libvirt daemon and remote architecture| image:: libvirt-daemon-arch.png<br>
+.. |first class objects exposed by the API| image:: images/libvirt-object-model.png<br>
+.. |The libvirt driver architecture| image:: images/libvirt-driver-arch.png<br>
+.. |The libvirt daemon and remote architecture| image:: images/libvirt-daemon-arch.png<br>
diff --git a/docs/<a href="http://goals.html.in" rel="noreferrer" target="_blank">goals.html.in</a> b/docs/<a href="http://goals.html.in" rel="noreferrer" target="_blank">goals.html.in</a><br>
index 39d5e75359..d205bf4f42 100644<br>
--- a/docs/<a href="http://goals.html.in" rel="noreferrer" target="_blank">goals.html.in</a><br>
+++ b/docs/<a href="http://goals.html.in" rel="noreferrer" target="_blank">goals.html.in</a><br>
@@ -15,7 +15,7 @@<br>
     virtualized machine provided by the hypervisor</li><br>
     </ul><br>
     <p class="image"><br>
-      <img alt="Hypervisor and domains running on a node" src="node.gif"/><br>
+      <img alt="Hypervisor and domains running on a node" src="images/node.gif"/><br>
     </p><br>
     <p>Now we can define the goal of libvirt: <b> to provide a common and<br>
     stable layer sufficient to securely manage domains on a node, possibly<br>
diff --git a/docs/event_loop_simple.png b/docs/images/event_loop_simple.png<br>
similarity index 100%<br>
rename from docs/event_loop_simple.png<br>
rename to docs/images/event_loop_simple.png<br>
diff --git a/docs/event_loop_simple.svg b/docs/images/event_loop_simple.svg<br>
similarity index 100%<br>
rename from docs/event_loop_simple.svg<br>
rename to docs/images/event_loop_simple.svg<br>
diff --git a/docs/event_loop_worker.png b/docs/images/event_loop_worker.png<br>
similarity index 100%<br>
rename from docs/event_loop_worker.png<br>
rename to docs/images/event_loop_worker.png<br>
diff --git a/docs/event_loop_worker.svg b/docs/images/event_loop_worker.svg<br>
similarity index 100%<br>
rename from docs/event_loop_worker.svg<br>
rename to docs/images/event_loop_worker.svg<br>
diff --git a/docs/libvirt-daemon-arch.png b/docs/images/libvirt-daemon-arch.png<br>
similarity index 100%<br>
rename from docs/libvirt-daemon-arch.png<br>
rename to docs/images/libvirt-daemon-arch.png<br>
diff --git a/docs/libvirt-daemon-arch.svg b/docs/images/libvirt-daemon-arch.svg<br>
similarity index 100%<br>
rename from docs/libvirt-daemon-arch.svg<br>
rename to docs/images/libvirt-daemon-arch.svg<br>
diff --git a/docs/libvirt-driver-arch.png b/docs/images/libvirt-driver-arch.png<br>
similarity index 100%<br>
rename from docs/libvirt-driver-arch.png<br>
rename to docs/images/libvirt-driver-arch.png<br>
diff --git a/docs/libvirt-driver-arch.svg b/docs/images/libvirt-driver-arch.svg<br>
similarity index 100%<br>
rename from docs/libvirt-driver-arch.svg<br>
rename to docs/images/libvirt-driver-arch.svg<br>
diff --git a/docs/libvirt-object-model.png b/docs/images/libvirt-object-model.png<br>
similarity index 100%<br>
rename from docs/libvirt-object-model.png<br>
rename to docs/images/libvirt-object-model.png<br>
diff --git a/docs/libvirt-object-model.svg b/docs/images/libvirt-object-model.svg<br>
similarity index 100%<br>
rename from docs/libvirt-object-model.svg<br>
rename to docs/images/libvirt-object-model.svg<br>
diff --git a/docs/libvirt-virConnect-example.png b/docs/images/libvirt-virConnect-example.png<br>
similarity index 100%<br>
rename from docs/libvirt-virConnect-example.png<br>
rename to docs/images/libvirt-virConnect-example.png<br>
diff --git a/docs/libvirt-virConnect-example.svg b/docs/images/libvirt-virConnect-example.svg<br>
similarity index 100%<br>
rename from docs/libvirt-virConnect-example.svg<br>
rename to docs/images/libvirt-virConnect-example.svg<br>
diff --git a/docs/images/meson.build b/docs/images/meson.build<br>
new file mode 100644<br>
index 0000000000..85a35da4aa<br>
--- /dev/null<br>
+++ b/docs/images/meson.build<br>
@@ -0,0 +1,24 @@<br>
+docs_image_files = [<br>
+  'event_loop_simple.png',<br>
+  'event_loop_worker.png',<br>
+  'libvirt-daemon-arch.png',<br>
+  'libvirt-driver-arch.png',<br>
+  'libvirt-object-model.png',<br>
+  'libvirt-virConnect-example.png',<br>
+  'migration-managed-direct.png',<br>
+  'migration-managed-p2p.png',<br>
+  'migration-native.png',<br>
+  'migration-tunnel.png',<br>
+  'migration-unmanaged-direct.png',<br>
+  'node.gif',<br>
+]<br>
+<br>
+install_data(docs_image_files, install_dir: docs_html_dir / 'images')<br>
+<br>
+foreach file : docs_image_files<br>
+  # This hack enables us to view the web pages<br>
+  # from within the uninstalled build tree<br>
+  configure_file(input: file, output: file, copy: true)<br>
+<br>
+  install_web_files += '@0@:@1@'.format(meson.current_source_dir() / file, docs_html_dir / 'images')<br>
+endforeach<br>
diff --git a/docs/migration-managed-direct.png b/docs/images/migration-managed-direct.png<br>
similarity index 100%<br>
rename from docs/migration-managed-direct.png<br>
rename to docs/images/migration-managed-direct.png<br>
diff --git a/docs/migration-managed-direct.svg b/docs/images/migration-managed-direct.svg<br>
similarity index 100%<br>
rename from docs/migration-managed-direct.svg<br>
rename to docs/images/migration-managed-direct.svg<br>
diff --git a/docs/migration-managed-p2p.png b/docs/images/migration-managed-p2p.png<br>
similarity index 100%<br>
rename from docs/migration-managed-p2p.png<br>
rename to docs/images/migration-managed-p2p.png<br>
diff --git a/docs/migration-managed-p2p.svg b/docs/images/migration-managed-p2p.svg<br>
similarity index 100%<br>
rename from docs/migration-managed-p2p.svg<br>
rename to docs/images/migration-managed-p2p.svg<br>
diff --git a/docs/migration-native.png b/docs/images/migration-native.png<br>
similarity index 100%<br>
rename from docs/migration-native.png<br>
rename to docs/images/migration-native.png<br>
diff --git a/docs/migration-native.svg b/docs/images/migration-native.svg<br>
similarity index 100%<br>
rename from docs/migration-native.svg<br>
rename to docs/images/migration-native.svg<br>
diff --git a/docs/migration-tunnel.png b/docs/images/migration-tunnel.png<br>
similarity index 100%<br>
rename from docs/migration-tunnel.png<br>
rename to docs/images/migration-tunnel.png<br>
diff --git a/docs/migration-tunnel.svg b/docs/images/migration-tunnel.svg<br>
similarity index 100%<br>
rename from docs/migration-tunnel.svg<br>
rename to docs/images/migration-tunnel.svg<br>
diff --git a/docs/migration-unmanaged-direct.png b/docs/images/migration-unmanaged-direct.png<br>
similarity index 100%<br>
rename from docs/migration-unmanaged-direct.png<br>
rename to docs/images/migration-unmanaged-direct.png<br>
diff --git a/docs/migration-unmanaged-direct.svg b/docs/images/migration-unmanaged-direct.svg<br>
similarity index 100%<br>
rename from docs/migration-unmanaged-direct.svg<br>
rename to docs/images/migration-unmanaged-direct.svg<br>
diff --git a/docs/node.gif b/docs/images/node.gif<br>
similarity index 100%<br>
rename from docs/node.gif<br>
rename to docs/images/node.gif<br>
diff --git a/docs/node.svg b/docs/images/node.svg<br>
similarity index 100%<br>
rename from docs/node.svg<br>
rename to docs/images/node.svg<br>
diff --git a/docs/<a href="http://internals.html.in" rel="noreferrer" target="_blank">internals.html.in</a> b/docs/<a href="http://internals.html.in" rel="noreferrer" target="_blank">internals.html.in</a><br>
index 3a96ff73b4..e474f7ddd7 100644<br>
--- a/docs/<a href="http://internals.html.in" rel="noreferrer" target="_blank">internals.html.in</a><br>
+++ b/docs/<a href="http://internals.html.in" rel="noreferrer" target="_blank">internals.html.in</a><br>
@@ -35,7 +35,7 @@<br>
<br>
     <p class="image"><br>
       <img alt="virConnectOpen calling sequence"<br>
-           src="libvirt-virConnect-example.png"/><br>
+           src="images/libvirt-virConnect-example.png"/><br>
     </p><br>
     <ul><br>
         <li>"virsh -c qemu:///system list --all"<br>
diff --git a/docs/internals/<a href="http://eventloop.html.in" rel="noreferrer" target="_blank">eventloop.html.in</a> b/docs/internals/<a href="http://eventloop.html.in" rel="noreferrer" target="_blank">eventloop.html.in</a><br>
index aa22ba15cd..1a24254fc5 100644<br>
--- a/docs/internals/<a href="http://eventloop.html.in" rel="noreferrer" target="_blank">eventloop.html.in</a><br>
+++ b/docs/internals/<a href="http://eventloop.html.in" rel="noreferrer" target="_blank">eventloop.html.in</a><br>
@@ -29,7 +29,7 @@<br>
     not waiting for direct user input and have no graphical<br>
     interface. Such as Libvirt.</p><br>
<br>
-    <img alt="event loop" src="../event_loop_simple.png"/><br>
+    <img alt="event loop" src="../images/event_loop_simple.png"/><br>
<br>
     <p>In Libvirt this approach is used in combination with<br>
     <code>poll(2)</code> as all the communication with its<br>
@@ -70,7 +70,7 @@<br>
     acceptable for Libvirt. Therefore we have came up with the<br>
     following solution.</p><br>
<br>
-    <img alt="event loop" src="../event_loop_worker.png"/><br>
+    <img alt="event loop" src="../images/event_loop_worker.png"/><br>
<br>
     <p>The event loop does only necessary minimum and hand over<br>
     message processing to another thread. In fact, there can be<br>
diff --git a/docs/meson.build b/docs/meson.build<br>
index 3e708acf0e..9abe70b45f 100644<br>
--- a/docs/meson.build<br>
+++ b/docs/meson.build<br>
@@ -10,27 +10,15 @@ docs_assets = [<br>
   'android-chrome-256x256.png',<br>
   'apple-touch-icon.png',<br>
   'browserconfig.xml',<br>
-  'event_loop_simple.png',<br>
-  'event_loop_worker.png',<br>
   'favicon.ico',<br>
   'favicon-16x16.png',<br>
   'favicon-32x32.png',<br>
   'generic.css',<br>
   'libvirt.css',<br>
-  'libvirt-daemon-arch.png',<br>
-  'libvirt-driver-arch.png',<br>
-  'libvirt-object-model.png',<br>
-  'libvirt-virConnect-example.png',<br>
   'main.css',<br>
   'manifest.json',<br>
-  'migration-managed-direct.png',<br>
-  'migration-managed-p2p.png',<br>
-  'migration-native.png',<br>
-  'migration-tunnel.png',<br>
-  'migration-unmanaged-direct.png',<br>
   'mobile.css',<br>
   'mstile-150x150.png',<br>
-  'node.gif',<br>
 ]<br>
<br>
 docs_html_in_files = [<br>
@@ -303,6 +291,7 @@ html_xslt_gen = []<br>
 subdir('fonts')<br>
 subdir('go')<br>
 subdir('html')<br>
+subdir('images')<br>
 subdir('internals')<br>
 subdir('js')<br>
 subdir('kbase')<br>
diff --git a/docs/migration.rst b/docs/migration.rst<br>
index 247f345f8c..11beeedc1f 100644<br>
--- a/docs/migration.rst<br>
+++ b/docs/migration.rst<br>
@@ -478,13 +478,13 @@ guest doing a lot of I/O to a local fast storage the<br>
 synchronously written to the destination. This may harm I/O performance during<br>
 the migration.<br>
<br>
-.. |Migration native path| image:: migration-native.png<br>
+.. |Migration native path| image:: images/migration-native.png<br>
    :class: diagram<br>
-.. |Migration tunnel path| image:: migration-tunnel.png<br>
+.. |Migration tunnel path| image:: images/migration-tunnel.png<br>
    :class: diagram<br>
-.. |Migration direct, managed| image:: migration-managed-direct.png<br>
+.. |Migration direct, managed| image:: images/migration-managed-direct.png<br>
    :class: diagram<br>
-.. |Migration peer-to-peer| image:: migration-managed-p2p.png<br>
+.. |Migration peer-to-peer| image:: images/migration-managed-p2p.png<br>
    :class: diagram<br>
-.. |Migration direct, unmanaged| image:: migration-unmanaged-direct.png<br>
+.. |Migration direct, unmanaged| image:: images/migration-unmanaged-direct.png<br>
    :class: diagram<br>
-- <br>
2.31.1<br>
<br>
</blockquote></div></div>