The table was manually converted to a set of 'list-table'-s
for better
experience of viewing the text.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
docs/downloads.html.in | 661 -----------------------------------------
docs/downloads.rst | 417 ++++++++++++++++++++++++++
docs/meson.build | 2 +-
3 files changed, 418 insertions(+), 662 deletions(-)
delete mode 100644 docs/downloads.html.in
create mode 100644 docs/downloads.rst
diff --git a/docs/downloads.html.in b/docs/downloads.html.in
deleted file mode 100644
index 40724cce22..0000000000
--- a/docs/downloads.html.in
+++ /dev/null
@@ -1,661 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html>
-<html
xmlns="http://www.w3.org/1999/xhtml">
- <body>
- <h1>Downloads</h1>
-
- <ul id="toc"></ul>
-
- <h2><a id="releases">Project modules</a></h2>
-
- <p>
- The libvirt project maintains a number of inter-related modules beyond
- the core C library/daemon.
- </p>
-
- <table class="top_table downloads">
- <thead>
- <tr>
- <th>Module</th>
- <th>Releases</th>
- <th>GIT Repo</th>
- <th>Bug Tracker</th>
- <th>GIT Mirrors</th>
- <th>Resources</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>libvirt</td>
- <td>
- <a
href="https://libvirt.org/sources/">libvirt</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt">gitlab</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt/-/issues">issues<...
- </td>
- <td class="gitmirror">
- <a
href="https://libvirt.org/git/?p=libvirt.git;a=summary">libv...
- <a
href="https://github.com/libvirt/libvirt">github</a>
- </td>
- <td>
- <a href="html/index.html">api ref</a>
- <a href="news.html">changes</a>
- </td>
- </tr>
- <tr>
- <th colspan="7">Language bindings</th>
- </tr>
- <tr>
- <td>C#</td>
- <td>
- <a
href="https://libvirt.org/sources/csharp/">libvirt</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-csharp">gitlab</...
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-csharp/-/issues">is...
- </td>
- <td class="gitmirror">
- <a
href="https://libvirt.org/git/?p=libvirt-csharp.git;a=summary"&...
- <a
href="https://github.com/libvirt/libvirt-csharp">github</...
- </td>
- <td></td>
- </tr>
- <tr>
- <td>Go</td>
- <td>
- <a
href="https://libvirt.org/go/libvirt">libvirt</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-go-module">gitlab&l...
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-go-module/-/issues">...
- </td>
- <td class="gitmirror">
- <a
href="https://libvirt.org/git/?p=libvirt-go-module.git;a=summary&quo...
- <a
href="https://github.com/libvirt/libvirt-go-module">github&l...
- </td>
- <td>
- <a
href="https://pkg.go.dev/libvirt.org/go/libvirt">api
ref</a>
- </td>
- </tr>
- <tr>
- <td>Java</td>
- <td>
- <a
href="https://libvirt.org/sources/java/">libvirt</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-java">gitlab</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-java/-/issues">issu...
- </td>
- <td class="gitmirror">
- <a
href="https://libvirt.org/git/?p=libvirt-java.git;a=summary">...
- <a
href="https://github.com/libvirt/libvirt-java">github</a>
- </td>
- <td></td>
- </tr>
- <tr>
- <td>OCaml</td>
- <td>
- <a
href="https://libvirt.org/sources/ocaml/">libvirt</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-ocaml">gitlab</a...
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-ocaml/-/issues">iss...
- </td>
- <td class="gitmirror">
- <a
href="https://libvirt.org/git/?p=libvirt-ocaml.git;a=summary"&g...
- <a
href="https://github.com/libvirt/libvirt-ocaml">github</a...
- </td>
- <td></td>
- </tr>
- <tr>
- <td>Perl (Sys::Virt)</td>
- <td>
- <a
href="https://metacpan.org/release/Sys-Virt/">cpan</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-perl">gitlab</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-perl/-/issues">issu...
- </td>
- <td class="gitmirror">
- <a
href="https://libvirt.org/git/?p=libvirt-perl.git;a=summary">...
- <a
href="https://github.com/libvirt/libvirt-perl">github</a>
- </td>
- <td>
- <a
href="https://metacpan.org/release/Sys-Virt/">api
ref</a>
- <a
href="https://libvirt.org/git/?p=libvirt-perl.git;a=blob;f=Changes;h...
- </td>
- </tr>
- <tr>
- <td>PHP</td>
- <td>
- <a
href="https://libvirt.org/sources/php/">libvirt</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-php">gitlab</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-php/-/issues">issue...
- </td>
- <td class="gitmirror">
- <a
href="https://libvirt.org/git/?p=libvirt-php.git;a=summary">...
- <a
href="https://github.com/libvirt/libvirt-php">github</a>
- </td>
- <td></td>
- </tr>
- <tr>
- <td>Python</td>
- <td>
- <a
href="https://libvirt.org/sources/python/">libvirt</a>
- <a
href="https://pypi.python.org/pypi/libvirt-python">pypi</...
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-python">gitlab</...
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-python/-/issues">is...
- </td>
- <td class="gitmirror">
- <a
href="https://libvirt.org/git/?p=libvirt-python.git;a=summary"&...
- <a
href="https://github.com/libvirt/libvirt-python">github</...
- </td>
- <td></td>
- </tr>
- <tr>
- <td>Ruby</td>
- <td>
- <a
href="https://libvirt.org/sources/ruby/">libvirt</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-ruby">gitlab</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-ruby/-/issues">issu...
- </td>
- <td class="gitmirror">
- <a
href="https://libvirt.org/git/?p=libvirt-ruby.git;a=summary">...
- <a
href="https://github.com/libvirt/libvirt-ruby">github</a>
- </td>
- <td></td>
- </tr>
- <tr>
- <td>Rust</td>
- <td>
- <a href="https://crates.io/crates/virt">crates.io</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-rust">gitlab</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-rust/-/issues">issu...
- </td>
- <td class="gitmirror">
- <a
href="https://libvirt.org/git/?p=libvirt-rust.git;a=summary">...
- <a
href="https://github.com/libvirt/libvirt-rust">github</a>
- </td>
- <td>
- <a href="https://docs.rs/virt">api ref</a>
- </td>
- </tr>
- <tr>
- <th colspan="7">Integration modules</th>
- </tr>
- <tr>
- <td>GLib / GConfig / GObject</td>
- <td>
- <a
href="https://libvirt.org/sources/glib/">libvirt</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-glib">gitlab</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-glib/-/issues">issu...
- </td>
- <td class="gitmirror">
- <a
href="https://libvirt.org/git/?p=libvirt-glib.git;a=summary">...
- <a
href="https://github.com/libvirt/libvirt-glib">github</a>
- </td>
- <td></td>
- </tr>
- <tr>
- <td>Go XML</td>
- <td>
- <a
href="https://libvirt.org/go/libvirtxml">libvirt</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-go-xml-module">gitl...
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-go-xml-module/-/issues"...
- </td>
- <td class="gitmirror">
- <a
href="https://libvirt.org/git/?p=libvirt-go-xml-module.git;a=summary...
- <a
href="https://github.com/libvirt/libvirt-go-xml-module">gith...
- </td>
- <td>
- <a
href="https://pkg.go.dev/libvirt.org/go/libvirtxml">api
ref</a>
- </td>
- </tr>
- <tr>
- <td>D-Bus</td>
- <td>
- <a
href="https://libvirt.org/sources/dbus/">libvirt</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-dbus">gitlab</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-dbus/-/issues">issu...
- </td>
- <td class="gitmirror">
- <a
href="https://libvirt.org/git/?p=libvirt-dbus.git;a=summary">...
- <a
href="https://github.com/libvirt/libvirt-dbus">github</a>
- </td>
- <td></td>
- </tr>
- <tr>
- <td>Console Proxy</td>
- <td>
- <a
href="https://libvirt.org/sources/consoleproxy/">libvirt<...
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-console-proxy">gitl...
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-console-proxy/-/issues"...
- </td>
- <td class="gitmirror">
- <a
href="https://libvirt.org/git/?p=libvirt-console-proxy.git;a=summary...
- <a
href="https://github.com/libvirt/libvirt-console-proxy">gith...
- </td>
- <td></td>
- </tr>
- <tr>
- <td>CIM provider</td>
- <td>
- <a
href="https://libvirt.org/sources/CIM/">libvirt</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-cim">gitlab</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-cim/-/issues">issue...
- </td>
- <td class="gitmirror">
- <a
href="https://libvirt.org/git/?p=libvirt-cim.git;a=summary">...
- <a
href="https://github.com/libvirt/libvirt-cim">github</a>
- </td>
- <td></td>
- </tr>
- <tr>
- <td>CIM utils</td>
- <td>
- <a
href="https://libvirt.org/sources/CIM/">libvirt</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libcmpiutil">gitlab</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libcmpiutil/-/issues">issue...
- </td>
- <td class="gitmirror">
- <a
href="https://libvirt.org/git/?p=libcmpiutil.git;a=summary">...
- <a
href="https://github.com/libvirt/libcmpiutil">github</a>
- </td>
- <td></td>
- </tr>
- <tr>
- <td>SNMP</td>
- <td>
- <a
href="https://libvirt.org/sources/snmp/">libvirt</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-snmp">gitlab</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-snmp/-/issues">issu...
- </td>
- <td class="gitmirror">
- <a
href="https://libvirt.org/git/?p=libvirt-snmp.git;a=summary">...
- <a
href="https://github.com/libvirt/libvirt-snmp">github</a>
- </td>
- <td></td>
- </tr>
- <tr>
- <td>Application Sandbox</td>
- <td>
- <a
href="https://libvirt.org/sources/sandbox/">libvirt</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-sandbox">gitlab<...
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-sandbox/-/issues">i...
- </td>
- <td class="gitmirror">
- <a
href="https://libvirt.org/git/?p=libvirt-sandbox.git;a=summary"...
- <a
href="https://github.com/libvirt/libvirt-sandbox">github<...
- </td>
- <td></td>
- </tr>
- <tr>
- <th colspan="7">Testing</th>
- </tr>
- <tr>
- <td>TCK</td>
- <td>
- <a
href="https://libvirt.org/sources/tck/">libvirt</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-tck">gitlab</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-tck/-/issues">issue...
- </td>
- <td class="gitmirror">
- <a
href="https://libvirt.org/git/?p=libvirt-tck.git;a=summary">...
- <a
href="https://github.com/libvirt/libvirt-tck">github</a>
- </td>
- <td></td>
- </tr>
- <tr>
- <td>Test API</td>
- <td></td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-test-API">gitlab<...
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-test-API/-/issues">...
- </td>
- <td class="gitmirror">
- <a
href="https://libvirt.org/git/?p=libvirt-test-API.git;a=summary"...
- <a
href="https://github.com/libvirt/libvirt-test-API">github<...
- </td>
- <td></td>
- </tr>
- <tr>
- <td>Continuous Integration Config</td>
- <td></td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-ci">gitlab</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-ci/-/issues">issues...
- </td>
- <td class="gitmirror">
- <a
href="https://libvirt.org/git/?p=libvirt-ci.git;a=summary">l...
- <a
href="https://github.com/libvirt/libvirt-ci">github</a>
- </td>
- <td></td>
- </tr>
- <tr>
- <td>CIM Test</td>
- <td></td>
- <td>
- <a
href="https://gitlab.com/libvirt/cimtest">gitlab</a>
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/cimtest/-/issues">issues<...
- </td>
- <td class="gitmirror">
- <a
href="https://libvirt.org/git/?p=cimtest.git;a=summary">libv...
- <a
href="https://github.com/libvirt/cimtest">github</a>
- </td>
- <td></td>
- </tr>
- <tr>
- <th colspan="7">Documentation</th>
- </tr>
- <tr>
- <td>Publican Brand</td>
- <td></td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-publican">gitlab<...
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-publican/-/issues">...
- </td>
- <td class="gitmirror">
- <a
href="https://libvirt.org/git/?p=libvirt-publican.git;a=summary"...
- <a
href="https://github.com/libvirt/libvirt-publican">github<...
- </td>
- <td></td>
- </tr>
- <tr>
- <td>App Development Guide</td>
- <td></td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-appdev-guide">gitla...
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-appdev-guide/-/issues"...
- </td>
- <td class="gitmirror">
- <a
href="https://libvirt.org/git/?p=libvirt-appdev-guide.git;a=summary&...
- <a
href="https://github.com/libvirt/libvirt-appdev-guide">githu...
- </td>
- <td></td>
- </tr>
- <tr>
- <td>App Development Guide Python</td>
- <td></td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-appdev-guide-python"&g...
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-appdev-guide-python/-/issue...
- </td>
- <td class="gitmirror">
- <a
href="https://libvirt.org/git/?p=libvirt-appdev-guide-python.git;a=s...
- <a
href="https://github.com/libvirt/libvirt-appdev-guide-python"&g...
- </td>
- <td></td>
- </tr>
- <tr>
- <td>virsh Command Reference</td>
- <td></td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-virshcmdref">gitlab...
- </td>
- <td>
- <a
href="https://gitlab.com/libvirt/libvirt-virshcmdref/-/issues"&...
- </td>
- <td class="gitmirror">
- <a
href="https://libvirt.org/git/?p=libvirt-virshcmdref.git;a=summary&q...
- <a
href="https://github.com/libvirt/libvirt-virshcmdref">github...
- </td>
- <td></td>
- </tr>
- </tbody>
- </table>
-
- <h2>Primary download site</h2>
-
- <p>
- Most modules have releases made available for download on the project
- site via HTTPS. Some modules are instead made available at alternative
- locations, for example, the Perl binding is made available only on CPAN.
- </p>
-
- <ul>
- <li><a
href="https://libvirt.org/sources/">libvirt.org HTTPS
server</a></li>
- </ul>
-
- <h2><a id="schedule">Primary release
schedule</a></h2>
-
- <p>
- The core libvirt module follows a time based plan, with releases made
- once a month on the 1st of each month give or take a few days. The only
- exception is at the start of the year where there are two 6 weeks gaps
- (first release in the middle of Jan, then skip the Feb release), giving
- a total of 11 releases a year. The Python and Perl modules will aim to
- release at the same time as the core libvirt module. Other modules have
- independent ad-hoc releases with no fixed time schedule.
- </p>
-
- <h2><a id="numbering">Release numbering</a></h2>
-
- <p>
- Since libvirt 2.0.0, a time based version numbering rule
- is applied to the core library releases. As such, the changes
- in version number have do not have any implications with respect
- to the scope of features or bugfixes included, the stability of
- the code, or the API / ABI compatibility (libvirt API / ABI is
- guaranteed stable forever). The rules applied for changing the
- libvirt version number are:
- </p>
-
- <dl>
- <dt><code>major</code></dt>
- <dd>incremented by 1 for the first release of the year (the
- Jan 15th release)</dd>
- <dt><code>minor</code></dt>
- <dd>reset to 0 with every major increment, otherwise incremented by 1
- for each monthly release from git master</dd>
- <dt><code>micro</code></dt>
- <dd>always 0 for releases from git master, incremented by 1
- for each stable maintenance release</dd>
- </dl>
-
- <p>
- Prior to 2.0.0, the major/minor numbers were incremented
- fairly arbitrarily, and maintenance releases appended a
- fourth digit. The language bindings will aim to use the
- same version number as the most recent core library API
- they support. The other modules have their own distinct
- release numbering sequence, though they generally aim
- to follow the above rules for incrementing major/minor/micro
- digits.
- </p>
-
- <h2><a id="maintenance">Maintenance
releases</a></h2>
- <p>
- In the git repository are several stable maintenance branches
- for the core library, matching the
- pattern
<code>v<i>major</i>.<i>minor</i>-maint</code>;
- these branches are forked off the corresponding
- <code>v<i>major</i>.<i>minor</i>.0</code>
formal
- release, and may have further releases of the
- form
<code>v<i>major</i>.<i>minor</i>.<i>micro</i></code>.
- These maintenance branches should only contain bug fixes, and no
- new features, backported from the master branch, and are
- supported as long as at least one downstream distribution
- expresses interest in a given branch. These maintenance
- branches are considered during CVE analysis. In contrast
- to the primary releases which are made once a month, there
- is no formal schedule for the maintenance releases, which
- are made whenever there is a need to make available key
- bugfixes to downstream consumers. The language bindings
- and other modules generally do not provide stable branch
- releases.
- </p>
-
- <p>
- For more details about contents of maintenance releases, see
- <a
href="https://wiki.libvirt.org/page/Maintenance_Releases">the
- wiki page</a>.
- </p>
-
- <h2><a id="git">GIT source repository</a></h2>
-
- <p>
- All modules maintained by the libvirt project have their primary
- source available in the <a
href="https://libvirt.org/git/">project
GIT server</a>.
- Each module can be cloned anonymously using:
- </p>
-
- <pre>
-git clone
https://libvirt.org/git/[module name].git</pre>
-
- <p>
- The <code>git://</code> protocol is also available if desired, but
- <code>https://</code> is encouraged, since it is more reliable when
- faced with strict firewalls.
- </p>
-
- <pre>
-git clone
git://libvirt.org/[module name].git</pre>
-
- <p>
- In addition to this primary repository, there are the following read-only git
- repositories which mirror the master one. Note that we currently do not
- use the full set of features on these mirrors (e.g. pull requests on
- GitHub, so please don't use them). All patch review and discussion only
- occurs on the <a href="contact.html">libvir-list</a> mailing
list. Also
- note that some repositories listed below allow HTTP checkouts too.
- </p>
-
- <pre>
-<a
href="https://github.com/libvirt/">https://github.com/libvir...
-<a
href="https://gitlab.com/libvirt/libvirt">https://gitlab.com...
-
- <h2><a id="keys">Signing keys</a></h2>
-
- <p>
- Source RPM packages and tarballs for libvirt and libvirt-python published
- on this project site are signed with a GPG signature. You should always
- verify the package signature before using the source to compile binary
- packages. The following key is currently used to generate the GPG
- signatures:
- </p>
- <pre>
-pub 4096R/10084C9C 2020-07-20 Jiří Denemark &lt;jdenemar(a)redhat.com&gt;
-Fingerprint=453B 6531 0595 5628 5547 1199 CA68 BE80 1008 4C9C
-</pre>
-
- <p>
- It can be downloaded from
- <a
href="https://libvirt.org/sources/gpg_key.asc">this
site</a> or from
- public GPG key servers.
- </p>
-
- <p>
- Releases prior to libvirt-6.6 were signed with the following GPG key:
- </p>
-
- <pre>
-pub dsa1024 2000-05-31 [SC]
-C744 15BA 7C9C 7F78 F02E 1DC3 4606 B8A5 DE95 BC1F
-uid [ unknown] Daniel Veillard (Red Hat work email)
&lt;veillard(a)redhat.com&gt;
-uid [ unknown] Daniel Veillard &lt;Daniel.Veillard(a)w3.org&gt;
- </pre>
-
- <pre>
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA256
-
-Starting from libvirt-6.6.0 the upstream releases will be done by Jiří Denemark
-signed with his PGP key:
-
-pub 4096R/10084C9C 2020-07-20 Jiří Denemark &lt;jdenemar(a)redhat.com&gt;
-Fingerprint=453B 6531 0595 5628 5547 1199 CA68 BE80 1008 4C9C
-
-This message is signed by the old signing key which was used for previous
-releases.
------BEGIN PGP SIGNATURE-----
-
-iQEzBAEBCAAdFiEE20ZoG7ka3OoXD6LUFViLJllr6l0FAl/8H9cACgkQFViLJllr
-6l3iVwgAm9n703/QoIfPbxT5qGQzWK6LNriEcG2R9MLgFcW+UuGA9cqIBLhH1RaJ
-q7Gc3gK0dgE2HAF6DxuG5+nkDY6LdmonLOVFWQkMCh41JHFrV6tw8y9hc/RNOb/m
-gFAl4HpwYisjTRvsTRcpR3ElK6lI0Yu4GY4gJxj5qH4L5exR+kkylwuAxqP+wuyY
-b/L/tP76F4+Q9SSPj0M01NRVC7V8m3yvnok5y374vtxvRFome0WMELn81vphxBLx
-X7LQ1LyjvRs0HhN5MutJES5FYDzArTYZfZJozJgE465XrHxMMCbXbZ/AgAs/aD+5
-x+m2mFplbS57tMEoMBP/ezbbL5wpvA==
-=KnaO
------END PGP SIGNATURE-----
- </pre>
-
- </body>
-</html>
diff --git a/docs/downloads.rst b/docs/downloads.rst
new file mode 100644
index 0000000000..3920ecb604
--- /dev/null
+++ b/docs/downloads.rst
@@ -0,0 +1,417 @@
+=========
+Downloads
+=========
+
+.. contents::
+
+Project modules
+---------------
+
+The libvirt project maintains a number of inter-related modules beyond the core
+C library/daemon.
+
+Libvirt
+~~~~~~~
+
+.. list-table::
+ :header-rows: 1
+
+ * - Module
+ - Releases
+ - GIT Repo
+ - Bug Tracker
+ - GIT Mirrors
+ - Resources
+
+ * - libvirt
+ - `libvirt <
https://libvirt.org/sources/>`__
+ - `gitlab <
https://gitlab.com/libvirt/libvirt>`__
+ - `issues <
https://gitlab.com/libvirt/libvirt/-/issues>`__
+ - `github <
https://github.com/libvirt/libvirt>`__ before the github link.
If you don't put it there, I won't be able to remove it in a followup
patch.