<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <!-- This file is autogenerated from downloads.html.in Do not edit this file. Changes will be lost. --> <!-- This page was generated at Mon Nov 13 21:46:24 UTC 2017. --> <head> <meta charset="UTF-8"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <link rel="stylesheet" type="text/css" href="main.css"/> <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"/> <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"/> <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"/> <link rel="manifest" href="/manifest.json"/> <meta name="theme-color" content="#ffffff"/> <title>libvirt: Downloads</title> <meta name="description" content="libvirt, virtualization, virtualization API"/> <script type="text/javascript"> <!-- function init() { window.addEventListener('scroll', function(e){ var distanceY = window.pageYOffset || document.documentElement.scrollTop, shrinkOn = 94 home = document.getElementById("home"); links = document.getElementById("jumplinks"); search = document.getElementById("search"); body = document.getElementById("body"); if (distanceY > shrinkOn) { if (home.className != "navhide") { body.className = "navhide" home.className = "navhide" links.className = "navhide" search.className = "navhide" } } else { if (home.className == "navhide") { body.className = "" home.className = "" links.className = "" search.className = "" } } }); } window.onload = init(); --> </script> </head> <body> <div id="body"> <div id="content"> <h1>Downloads</h1> <ul> <li> <a href="#releases">Project modules</a> </li> <li> <a href="#hourly">Hourly development snapshots</a> </li> <li> <a href="#schedule">Primary release schedule</a> </li> <li> <a href="#numbering">Release numbering</a> </li> <li> <a href="#maintenance">Maintenance releases</a> </li> <li> <a href="#git">GIT source repository</a> </li> </ul> <h2> <a id="releases">Project modules</a> <a class="headerlink" href="#releases" title="Permalink to this headline">¶</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>GIT Mirrors</th> <th>Resources</th> </tr> </thead> <tbody> <tr> <td>libvirt</td> <td> <a href="ftp://libvirt.org/libvirt/">ftp</a> <a href="https://libvirt.org/sources/">https</a> </td> <td> <a href="https://libvirt.org/git/?p=libvirt.git;a=summary">libvirt</a> </td> <td> <a href="https://gitlab.com/libvirt/libvirt">gitlab</a> <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="ftp://libvirt.org/libvirt/csharp/">ftp</a> <a href="https://libvirt.org/sources/csharp/">https</a> </td> <td> <a href="https://libvirt.org/git/?p=libvirt-csharp.git;a=summary">libvirt</a> </td> <td> <a href="https://gitlab.com/libvirt/libvirt-csharp">gitlab</a> <a href="https://github.com/libvirt/libvirt-csharp">github</a> </td> <td/> </tr> <tr> <td>Go</td> <td> <a href="ftp://libvirt.org/libvirt/go/">ftp</a> <a href="https://libvirt.org/sources/go/">https</a> </td> <td> <a href="https://libvirt.org/git/?p=libvirt-go.git;a=summary">libvirt</a> </td> <td> <a href="https://gitlab.com/libvirt/libvirt-go">gitlab</a> <a href="https://github.com/libvirt/libvirt-go">github</a> </td> <td> <a href="https://godoc.org/github.com/libvirt/libvirt-go">api ref</a> </td> </tr> <tr> <td>Java</td> <td> <a href="ftp://libvirt.org/libvirt/java/">ftp</a> <a href="https://libvirt.org/sources/java/">https</a> </td> <td> <a href="https://libvirt.org/git/?p=libvirt-java.git;a=summary">libvirt</a> </td> <td> <a href="https://gitlab.com/libvirt/libvirt-java">gitlab</a> <a href="https://github.com/libvirt/libvirt-java">github</a> </td> <td/> </tr> <tr> <td>OCaml</td> <td> <a href="ftp://libvirt.org/libvirt/ocaml/">ftp</a> <a href="https://libvirt.org/sources/ocaml/">https</a> </td> <td> <a href="https://libvirt.org/git/?p=libvirt-ocaml.git;a=summary">libvirt</a> </td> <td> <a href="https://gitlab.com/libvirt/libvirt-ocaml">gitlab</a> <a href="https://github.com/libvirt/libvirt-ocaml">github</a> </td> <td/> </tr> <tr> <td>Perl (Sys::Virt)</td> <td> <a href="http://search.cpan.org/dist/Sys-Virt/">cpan</a> </td> <td> <a href="https://libvirt.org/git/?p=libvirt-perl.git;a=summary">libvirt</a> </td> <td> <a href="https://gitlab.com/libvirt/libvirt-perl">gitlab</a> <a href="https://github.com/libvirt/libvirt-perl">github</a> </td> <td> <a href="http://search.cpan.org/dist/Sys-Virt/">api ref</a> <a href="https://libvirt.org/git/?p=libvirt-perl.git;a=blob;f=Changes;hb=HEAD">changes</a> </td> </tr> <tr> <td>PHP</td> <td> <a href="ftp://libvirt.org/libvirt/php/">ftp</a> <a href="https://libvirt.org/sources/php/">https</a> </td> <td> <a href="https://libvirt.org/git/?p=libvirt-php.git;a=summary">libvirt</a> </td> <td> <a href="https://gitlab.com/libvirt/libvirt-php">gitlab</a> <a href="https://github.com/libvirt/libvirt-php">github</a> </td> <td/> </tr> <tr> <td>Python</td> <td> <a href="ftp://libvirt.org/libvirt/python/">ftp</a> <a href="https://libvirt.org/sources/python/">https</a> <a href="https://pypi.python.org/pypi/libvirt-python">pypi</a> </td> <td> <a href="https://libvirt.org/git/?p=libvirt-python.git;a=summary">libvirt</a> </td> <td> <a href="https://gitlab.com/libvirt/libvirt-python">gitlab</a> <a href="https://github.com/libvirt/libvirt-python">github</a> </td> <td/> </tr> <tr> <td>Ruby</td> <td> <a href="ftp://libvirt.org/libvirt/ruby/">ftp</a> <a href="https://libvirt.org/sources/ruby/">https</a> </td> <td> <a href="https://libvirt.org/git/?p=ruby-libvirt.git;a=summary">libvirt</a> </td> <td> <a href="https://gitlab.com/libvirt/ruby-libvirt">gitlab</a> <a href="https://github.com/libvirt/ruby-libvirt">github</a> </td> <td/> </tr> <tr> <td>Rust</td> <td> <a href="ftp://libvirt.org/libvirt/rust/">ftp</a> <a href="https://libvirt.org/sources/rust/">https</a> </td> <td> <a href="https://libvirt.org/git/?p=libvirt-rust.git;a=summary">libvirt</a> </td> <td> <a href="https://gitlab.com/libvirt/libvirt-rust">gitlab</a> <a href="https://github.com/libvirt/libvirt-rust">github</a> </td> <td/> </tr> <tr> <th colspan="7">Integration modules</th> </tr> <tr> <td>GLib / GConfig / GObject</td> <td> <a href="ftp://libvirt.org/libvirt/glib/">ftp</a> <a href="https://libvirt.org/sources/glib/">https</a> </td> <td> <a href="https://libvirt.org/git/?p=libvirt-glib.git;a=summary">libvirt</a> </td> <td> <a href="https://gitlab.com/libvirt/libvirt-glib">gitlab</a> <a href="https://github.com/libvirt/libvirt-glib">github</a> </td> <td/> </tr> <tr> <td>Go XML</td> <td> <a href="ftp://libvirt.org/libvirt/go/">ftp</a> <a href="https://libvirt.org/sources/go/">https</a> </td> <td> <a href="https://libvirt.org/git/?p=libvirt-go-xml.git;a=summary">libvirt</a> </td> <td> <a href="https://gitlab.com/libvirt/libvirt-go-xml">gitlab</a> <a href="https://github.com/libvirt/libvirt-go-xml">github</a> </td> <td> <a href="https://godoc.org/github.com/libvirt/libvirt-go-xml">api ref</a> </td> </tr> <tr> <td>Console Proxy</td> <td> <a href="ftp://libvirt.org/libvirt/consoleproxy/">ftp</a> <a href="https://libvirt.org/sources/consoleproxy/">https</a> </td> <td> <a href="https://libvirt.org/git/?p=libvirt-console-proxy.git;a=summary">libvirt</a> </td> <td> <a href="https://gitlab.com/libvirt/libvirt-console-proxy">gitlab</a> <a href="https://github.com/libvirt/libvirt-console-proxy">github</a> </td> <td/> </tr> <tr> <td>CIM provider</td> <td> <a href="ftp://libvirt.org/libvirt/CIM/">ftp</a> <a href="https://libvirt.org/sources/CIM/">https</a> </td> <td> <a href="https://libvirt.org/git/?p=libvirt-cim.git;a=summary">libvirt</a> </td> <td> <a href="https://gitlab.com/libvirt/libvirt-cim">gitlab</a> <a href="https://github.com/libvirt/libvirt-cim">github</a> </td> <td/> </tr> <tr> <td>CIM utils</td> <td> <a href="ftp://libvirt.org/libvirt/CIM/">ftp</a> <a href="https://libvirt.org/sources/CIM/">https</a> </td> <td> <a href="https://libvirt.org/git/?p=libcmpiutil.git;a=summary">libvirt</a> </td> <td> <a href="https://gitlab.com/libvirt/libcmpiutil">gitlab</a> <a href="https://github.com/libvirt/libcmpiutil">github</a> </td> <td/> </tr> <tr> <td>SNMP</td> <td> <a href="ftp://libvirt.org/libvirt/snmp/">ftp</a> <a href="https://libvirt.org/sources/snmp/">https</a> </td> <td> <a href="https://libvirt.org/git/?p=libvirt-snmp.git;a=summary">libvirt</a> </td> <td> <a href="https://gitlab.com/libvirt/libvirt-snmp">gitlab</a> <a href="https://github.com/libvirt/libvirt-snmp">github</a> </td> <td/> </tr> <tr> <td>Application Sandbox</td> <td> <a href="ftp://libvirt.org/libvirt/sandbox/">ftp</a> <a href="https://libvirt.org/sources/sandbox/">https</a> </td> <td> <a href="https://libvirt.org/git/?p=libvirt-sandbox.git;a=summary">libvirt</a> </td> <td> <a href="https://gitlab.com/libvirt/libvirt-sandbox">gitlab</a> <a href="https://github.com/libvirt/libvirt-sandbox">github</a> </td> <td/> </tr> <tr> <th colspan="7">Testing</th> </tr> <tr> <td>TCK</td> <td> <a href="ftp://libvirt.org/libvirt/tck/">ftp</a> <a href="https://libvirt.org/sources/tck/">https</a> </td> <td> <a href="https://libvirt.org/git/?p=libvirt-tck.git;a=summary">libvirt</a> </td> <td> <a href="https://gitlab.com/libvirt/libvirt-tck">gitlab</a> <a href="https://github.com/libvirt/libvirt-tck">github</a> </td> <td/> </tr> <tr> <td>Test API</td> <td/> <td> <a href="https://libvirt.org/git/?p=libvirt-test-API.git;a=summary">libvirt</a> </td> <td> <a href="https://gitlab.com/libvirt/libvirt-test-API">gitlab</a> <a href="https://github.com/libvirt/libvirt-test-API">github</a> </td> <td/> </tr> <tr> <td>Jenkins Config</td> <td/> <td> <a href="https://libvirt.org/git/?p=libvirt-jenkins-ci.git;a=summary">libvirt</a> </td> <td> <a href="https://gitlab.com/libvirt/libvirt-jenkins-ci">gitlab</a> <a href="https://github.com/libvirt/libvirt-jenkins-ci">github</a> </td> <td/> </tr> <tr> <td>CIM Test</td> <td/> <td> <a href="https://libvirt.org/git/?p=cimtest.git;a=summary">libvirt</a> </td> <td> <a href="https://gitlab.com/libvirt/cimtest">gitlab</a> <a href="https://github.com/libvirt/cimtest">github</a> </td> <td/> </tr> <tr> <th colspan="7">Documentation</th> </tr> <tr> <td>Publican Brand</td> <td/> <td> <a href="https://libvirt.org/git/?p=libvirt-publican.git;a=summary">libvirt</a> </td> <td> <a href="https://gitlab.com/libvirt/libvirt-publican">gitlab</a> <a href="https://github.com/libvirt/libvirt-publican">github</a> </td> <td/> </tr> <tr> <td>App Development Guide</td> <td/> <td> <a href="https://libvirt.org/git/?p=libvirt-appdev-guide.git;a=summary">libvirt</a> </td> <td> <a href="https://gitlab.com/libvirt/libvirt-appdev-guide">gitlab</a> <a href="https://github.com/libvirt/libvirt-appdev-guide">github</a> </td> <td/> </tr> <tr> <td>App Development Guide Python</td> <td/> <td> <a href="https://libvirt.org/git/?p=libvirt-appdev-guide-python.git;a=summary">libvirt</a> </td> <td> <a href="https://gitlab.com/libvirt/libvirt-appdev-guide-python">gitlab</a> <a href="https://github.com/libvirt/libvirt-appdev-guide-python">github</a> </td> <td/> </tr> <tr> <td>virsh Command Reference</td> <td/> <td> <a href="https://libvirt.org/git/?p=libvirt-virshcmdref.git;a=summary">libvirt</a> </td> <td> <a href="https://gitlab.com/libvirt/libvirt-virshcmdref">gitlab</a> <a href="https://github.com/libvirt/libvirt-virshcmdref">github</a> </td> <td/> </tr> </tbody> </table> <h2>Primary download site</h2> <p> Most modules have releases made available for download on the project site, via FTP, HTTP or 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="ftp://libvirt.org/libvirt/">libvirt.org FTP server</a> </li> <li> <a href="https://libvirt.org/sources/">libvirt.org HTTP server</a> </li> <li> <a href="https://libvirt.org/sources/">libvirt.org HTTPS server</a> </li> </ul> <h2> <a id="hourly">Hourly development snapshots</a> <a class="headerlink" href="#hourly" title="Permalink to this headline">¶</a> </h2> <p> Once an hour, an automated snapshot is made from the git server source tree. These snapshots should be usable, but we make no guarantees about their stability; furthermore, they should NOT be considered formal releases, and they may have transient security problems that will not be assigned a CVE. </p> <ul> <li> <a href="ftp://libvirt.org/libvirt/libvirt-git-snapshot.tar.xz">libvirt.org FTP server</a> </li> <li> <a href="https://libvirt.org/sources/libvirt-git-snapshot.tar.xz">libvirt.org HTTP server</a> </li> </ul> <h2> <a id="schedule">Primary release schedule</a> <a class="headerlink" href="#schedule" title="Permalink to this headline">¶</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 independant ad-hoc releases with no fixed time schedle. </p> <h2> <a id="numbering">Release numbering</a> <a class="headerlink" href="#numbering" title="Permalink to this headline">¶</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> <a class="headerlink" href="#maintenance" title="Permalink to this headline">¶</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="http://wiki.libvirt.org/page/Maintenance_Releases">the wiki page</a>. </p> <h2> <a id="git">GIT source repository</a> <a class="headerlink" href="#git" title="Permalink to this headline">¶</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 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/libvirt/</a> <a href="https://gitlab.com/libvirt/libvirt">https://gitlab.com/libvirt/</a> </pre> </div> </div> <div id="nav"> <div id="home"> <a href="index.html">Home</a> </div> <div id="jumplinks"> <ul> <li> <a href="downloads.html">Download</a> </li> <li> <a href="contribute.html">Contribute</a> </li> <li> <a href="docs.html">Docs</a> </li> </ul> </div> <div id="search"> <form action="search.php" enctype="application/x-www-form-urlencoded" method="get"> <div> <input name="query" type="text" size="12" value=""/> <input name="submit" type="submit" value="Go"/> </div> </form> </div> </div> <div id="footer"> <div id="contact"> <h3>Contact</h3> <ul> <li> <a href="contact.html#email">email</a> </li> <li> <a href="contact.html#irc">irc</a> </li> </ul> </div> <div id="community"> <h3>Community</h3> <ul> <li> <a href="https://twitter.com/hashtag/libvirt">twitter</a> </li> <li> <a href="https://plus.google.com/communities/109522598353007505282">google+</a> </li> <li> <a href="http://stackoverflow.com/questions/tagged/libvirt">stackoverflow</a> </li> <li> <a href="http://serverfault.com/questions/tagged/libvirt">serverfault</a> </li> </ul> </div> <div id="conduct"> Participants in the libvirt project agree to abide by <a href="governance.html#codeofconduct">the project code of conduct</a></div> <br class="clear"/> </div> </body> </html>