[libvirt] [PATCHv3 0/2] Added waiting for DAD to finish for bridge address.
by Maxim Perevedentsev
This is a fix for commit db488c79173b240459c7754f38c3c6af9b432970
dnsmasq main process which is relied on when waiting for DAD to complete
exits without actually waiting for DAD. This is dnsmasq daemon's task.
It seems to be a race that DAD finished before dnsmasq main process exited.
The above commit needs the execution to block until DAD finishes
for bridge IPv6 address because then it closes dummy tap device.
Thus we need to ensure this ourselves.
So we periodically poll the kernel using netlink and
check whether there are any IPv6 addresses assigned to bridge
which have 'tentative' state. After DAD is finished, execution continues.
I guess that is what dnsmasq was assumed to do.
We use netlink to dump information about existing IPv6 addresses. Netlink's
response is a multi-part message. Unfortunately, the current implementation
of virNetlink treats such messages as faulty and throws an error. So the patch 2/2
adds multi-part nelink response support.
Update v2: fixed syntax.
Update v3: moved to virnetdev.
Resend: These patches were ignored and buried long ago :-(
Maxim Perevedentsev (2):
network: added waiting for DAD to finish for bridge address.
netlink: add support for multi-part netlink messages.
src/libvirt_private.syms | 1 +
src/network/bridge_driver.c | 35 +++++++++-
src/util/virnetdev.c | 160 ++++++++++++++++++++++++++++++++++++++++++++
src/util/virnetdev.h | 2 +
src/util/virnetlink.c | 4 +-
5 files changed, 200 insertions(+), 2 deletions(-)
--
1.8.3.1
9 years, 1 month
[libvirt] [PATCH v1 00/23] Keep original seclabel
by Michal Privoznik
So, you may be familiar with this already. Well, I've tried to get these
patches in like a year ago (or even more). Point is, these ones are new,
written from scratch. However, still based on idea, that virtlockd will keep
the track of the original seclabels. So far only DAC driver is fixed, but the
infrastructure I'm proposing here is easily extensible to other drivers too.
Even if there's some disagreement on the design, the first few patches fix some
bugs, so they should make it in.
Michal Privoznik (23):
virtlockd: Don't SIGSEGV on SIGUSR1
security_dac: Fix TODO marks
virSecurityDACSetOwnershipInternal: Don't chown so often
security_dac: Introduce remember/recall stubs
virSecurityDACSetOwnership: Pass virSecurityDACDataPtr
virSecurityDACRestoreSecurityFileLabel: Pass virSecurityDACDataPtr
security_dac: Limit usage of virSecurityDACSetOwnershipInternal
security_dac: Plug in remember/recall APIs
lock_protocol: Add two new remote procedures
lock_daemon: Switch to wrapper locking functions
locking: Introduce virSeclabelSpace
virtlockd: Work virSeclabelSpace in
virLockDriver: Introduce virLockDriverRemember and virLockDriverRecall
lock_driver_nop: Implement remember and recall APIs
lock_driver_lockd: Implement remember and recall APIs
lock_manager: Implement remember & recall APIs
locking: Favour enum type over int
lock_driver: Introduce VIR_LOCK_MANAGER_OBJECT_TYPE_SECLABEL
virSecurityManagerNewDAC: Pass locking plugin in
security_dac: Remember security labels
security_dac: Restore original owner more often
security: Introduce virSecurityManagerDomainRestoreDirLabel
qemuProcessStop: Restore seclabels on dirs too
cfg.mk | 2 +-
po/POTFILES.in | 1 +
src/Makefile.am | 3 +
src/libvirt_private.syms | 3 +
src/lock_protocol-structs | 15 +
src/locking/lock_daemon.c | 69 ++++-
src/locking/lock_daemon.h | 8 +
src/locking/lock_daemon_dispatch.c | 68 +++++
src/locking/lock_daemon_seclabels.c | 545 ++++++++++++++++++++++++++++++++++++
src/locking/lock_daemon_seclabels.h | 43 +++
src/locking/lock_driver.h | 42 ++-
src/locking/lock_driver_lockd.c | 103 ++++++-
src/locking/lock_driver_nop.c | 28 +-
src/locking/lock_driver_sanlock.c | 4 +-
src/locking/lock_manager.c | 36 ++-
src/locking/lock_manager.h | 13 +-
src/locking/lock_protocol.x | 29 +-
src/qemu/qemu_driver.c | 3 +-
src/qemu/qemu_process.c | 22 +-
src/security/security_dac.c | 288 +++++++++++++++----
src/security/security_dac.h | 2 +
src/security/security_driver.h | 5 +-
src/security/security_manager.c | 20 +-
src/security/security_manager.h | 7 +-
src/security/security_selinux.c | 16 ++
src/security/security_stack.c | 20 ++
26 files changed, 1310 insertions(+), 85 deletions(-)
create mode 100644 src/locking/lock_daemon_seclabels.c
create mode 100644 src/locking/lock_daemon_seclabels.h
--
2.4.9
9 years, 1 month
[libvirt] Need help problem with libvirt
by suresh knv
Hi,
I am trying to install libvirt 1.2.2 on arm64 board with xen. It got
installed successfully but when i run the command
virsh list --all
it is taking too long time and not responding application hangs. When
I tried with
strace virsh list --all
these are the last few lines of the log
futex(0x7fae646c48, FUTEX_WAKE_PRIVATE, 2147483647) = 0
gettid() = 8589
gettid() = 8589
gettid() = 8589
gettid() = 8589
gettid() = 8589
gettid() = 8589
gettid() = 8589
gettid() = 8589
gettid() = 8589
gettid() = 8589
gettid() = 8589
gettid() = 8589
gettid() = 8589
gettid() = 8589
gettid() = 8589
write(5, "\0", 1) = 1
futex(0x7fae5e56d0, FUTEX_WAKE_PRIVATE, 1) = 1
rt_sigprocmask(SIG_BLOCK, [PIPE CHLD WINCH], [], 8) = 0
ppoll([{fd=6, events=POLLOUT}, {fd=7, events=POLLIN}], 2, NULL, NULL,
0) = 1 ([{fd=6, revents=POLLOUT}])
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
write(6, "\0\0\0\34 \0\200\206\0\0\0\1\0\0\0B\0\0\0\0\0\0\0\0\0\0\0\0", 28) = 28
rt_sigprocmask(SIG_BLOCK, [PIPE CHLD WINCH], [], 8) = 0
ppoll([{fd=6, events=POLLIN}, {fd=7, events=POLLIN}], 2, NULL, NULL, 0
I am attaching the complete log with the mail. Can anyone suggest what
is going wrong?
Thanks
Suresh KN V
9 years, 1 month
[libvirt] [PATCH 0/9] Introduce virt-admin client
by Erik Skultety
Erik Skultety (9):
libvirt: Export libvirt config getters by moving them to util
virt-admin: Introduce first working skeleton
admin: Do not generate remoteAdminConnect{Open,Close}
admin: Add support for connection close callbacks
admin: Introduce virAdmConnectGetLibVersion
admin: Add URI support and introduce virAdmGetDefaultURI
virt-admin: Introduce vshAdmCatchDisconnect handler
virt-admin: Register async IO event polling
virt-admin: Provide a man page for virt-admin
.gitignore | 1 +
daemon/admin_server.c | 9 +
daemon/libvirtd.c | 3 +-
include/libvirt/libvirt-admin.h | 25 ++
po/POTFILES.in | 2 +
src/admin/admin_protocol.x | 15 +-
src/datatypes.c | 24 ++
src/datatypes.h | 15 +-
src/libvirt-admin.c | 387 ++++++++++++++++++--
src/libvirt.c | 55 +--
src/libvirt_admin_private.syms | 1 +
src/libvirt_admin_public.syms | 5 +
src/libvirt_private.syms | 2 +-
src/rpc/gendispatch.pl | 11 +-
src/util/virconf.c | 52 +++
src/util/virconf.h | 2 +-
tools/Makefile.am | 36 +-
tools/virt-admin.c | 759 ++++++++++++++++++++++++++++++++++++++++
tools/virt-admin.h | 71 ++++
tools/virt-admin.pod | 297 ++++++++++++++++
20 files changed, 1675 insertions(+), 97 deletions(-)
create mode 100644 tools/virt-admin.c
create mode 100644 tools/virt-admin.h
create mode 100644 tools/virt-admin.pod
--
2.4.3
9 years, 1 month
[libvirt] [PATCH v3] Close the source fd if the destination qemu exits during tunnelled migration
by Shivaprasad G Bhat
Tunnelled migration can hang if the destination qemu exits despite all the
ABI checks. This happens whenever the destination qemu exits before the
complete transfer is noticed by source qemu. The savevm state checks at
runtime can fail at destination and cause qemu to error out.
The source qemu cant notice it as the EPIPE is not propogated to it.
The qemuMigrationIOFunc() notices the stream being broken from virStreamSend()
and it cleans up the stream alone. The qemuMigrationWaitForCompletion() would
never get to 100% transfer completion.
The qemuMigrationWaitForCompletion() never breaks out as well since
the ssh connection to destination is healthy, and the source qemu also thinks
the migration is ongoing as the Fd to which it transfers, is never
closed or broken. So, the migration will hang forever. Even Ctrl-C on the
virsh migrate wouldn't be honoured. Close the source side FD when there is
an error in the stream. That way, the source qemu updates itself and
qemuMigrationWaitForCompletion() notices the failure.
Close the FD for all kinds of errors to be sure. The error message is not
copied for EPIPE so that the destination error is copied instead later.
Note:
Reproducible with repeated migrations between Power hosts running in different
subcores-per-core modes.
Changes from v2 -> v3:
VIR_FORCE_CLOSE() needn't be called on the qemu source fd as that is closed
by qemuMigrationIOFunc() for tunnelled migration. Set the fd to -1.
Signed-off-by: Shivaprasad G Bhat <sbhat(a)linux.vnet.ibm.com>
---
src/qemu/qemu_migration.c | 18 ++++++++++++++----
1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index 7440108..c982838 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -4019,6 +4019,7 @@ static void qemuMigrationIOFunc(void *arg)
if (virStreamFinish(data->st) < 0)
goto error;
+ VIR_FORCE_CLOSE(data->sock);
VIR_FREE(buffer);
return;
@@ -4036,7 +4037,11 @@ static void qemuMigrationIOFunc(void *arg)
}
error:
- virCopyLastError(&data->err);
+ /* Let the source qemu know that the transfer cant continue anymore.
+ * Don't copy the error for EPIPE as destination has the actual error. */
+ VIR_FORCE_CLOSE(data->sock);
+ if (!virLastErrorIsSystemErrno(EPIPE))
+ virCopyLastError(&data->err);
virResetLastError();
VIR_FREE(buffer);
}
@@ -4359,9 +4364,14 @@ qemuMigrationRun(virQEMUDriverPtr driver,
}
}
- if (spec->fwdType != MIGRATION_FWD_DIRECT &&
- !(iothread = qemuMigrationStartTunnel(spec->fwd.stream, fd)))
- goto cancel;
+ if (spec->fwdType != MIGRATION_FWD_DIRECT) {
+ if (!(iothread = qemuMigrationStartTunnel(spec->fwd.stream, fd)))
+ goto cancel;
+ /* If we've created a tunnel, then the 'fd' will be closed in the
+ * qemuMigrationIOFunc as data->sock.
+ */
+ fd = -1;
+ }
rc = qemuMigrationWaitForCompletion(driver, vm,
QEMU_ASYNC_JOB_MIGRATION_OUT,
9 years, 1 month
[libvirt] [PATCH v2 0/4] Fix a couple of iothread bugs
by John Ferlan
v1: http://www.redhat.com/archives/libvir-list/2015-October/msg00417.html
Differences since v1 - many.
- Reworked patches 1 & 2 to become patches 1 - 3 in the new series
- Patch 1 is new, but the thinking behind patch 3 caused me to generate
this patch which essentially changes comparisons with "->iothreads" to
use "->niothreadids" instead except for one place where we're building
the "iothreadids[]" array based on the difference between iothreads and
niothreadids.
- Patch 2 is essentially what former patch 1 became, adding a single
check for niothreads == 0 rather than checking the capabilities bit.
- The former patch 2 was dropped. In it's place is the new Patch 3 which
moves the check for the capabilities bit to when the IOThread objects
are added to the domain at startup time. Making that change had a
couple of side effects and the whole sordid history of how we got into
this situation was left in the commit message. Due to moving the
check one test started failing, so that was fixed and while I was
at it - I added a test which would define iothreads, some iothreadids,
and some iothreadpin to show that without the capability the failure
will be at start time.
- The former patch 3 was already pushed since it was ACK'd
- The former patch 4 logic was adjusted (more or less) to what was
requested during the review with a couple of tweaks based on the
realities I found during testing.
NB: I spent some cycles considering how to handle the case where a
domain with iothreads/niothreadids > 0 was already running when
libvirtd was restarted and how to handle that. In the end I decided
upon trying to do the somewhat nice thing and remove all traces
and if some domain had iothreadid's defined, then leave a VIR_INFO
message indicating the removal.
Without this change, then qemuDomainPinIOThread for the live code
will need some kind of adjustment in order to handle the case where
the capability doesn't exist (some sort of thread_id == 0 check right
after the IOThreadIDFind succeeds).
John Ferlan (4):
qemu: Use 'niothreadids' instead of 'iothreads'
qemu: Check for niothreads == 0 in qemuSetupCgroupForIOThreads
qemu: Fix qemu startup check for QEMU_CAPS_OBJECT_IOTHREAD
conf: Optimize the iothreadid initialization
src/conf/domain_audit.c | 4 +-
src/conf/domain_conf.c | 43 +++++++++++++++++-----
src/qemu/qemu_cgroup.c | 3 ++
src/qemu/qemu_command.c | 19 ++++------
src/qemu/qemu_driver.c | 16 ++++----
src/qemu/qemu_process.c | 32 ++++++++++++++--
.../qemuxml2argv-cputune-numatune.args | 1 +
.../qemuxml2argv-iothreads-nocap.xml | 37 +++++++++++++++++++
tests/qemuxml2argvtest.c | 2 +
9 files changed, 122 insertions(+), 35 deletions(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-iothreads-nocap.xml
--
2.1.0
9 years, 1 month
[libvirt] [PATCH] virsh: Use 'format' argument only when specified
by Peter Krempa
The condition checking whether --format was specified was incorrect.
virsh crashed if the following format was used:
virsh dump VM dump --format '' --memory-only
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1272301
---
tools/virsh-domain.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index 456e273..4191548 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -5280,7 +5280,7 @@ doDump(void *opaque)
goto out;
}
- if (vshCommandOptString(ctl, cmd, "format", &format)) {
+ if (vshCommandOptString(ctl, cmd, "format", &format) > 0) {
if (STREQ(format, "kdump-zlib")) {
dumpformat = VIR_DOMAIN_CORE_DUMP_FORMAT_KDUMP_ZLIB;
} else if (STREQ(format, "kdump-lzo")) {
--
2.4.5
9 years, 1 month
[libvirt] [PATCH] docs: event impl. registration before hypervisor connection
by Dominik Perpeet
Event implementations need to be registered before a connection to the
Hypervisor is opened, otherwise event handling can be impaired (e.g.
delayed messages). This fact is referenced in an e-mail [1], but should
also be noted in the documentation of the registration functions.
[1] https://www.redhat.com/archives/libvirt-users/2014-April/msg00011.html
---
src/util/virevent.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/util/virevent.c b/src/util/virevent.c
index 54b6396..e0fd35e 100644
--- a/src/util/virevent.c
+++ b/src/util/virevent.c
@@ -204,6 +204,9 @@ virEventRemoveTimeout(int timer)
* to integrate with the libglib2 event loop, or libevent
* or the QT event loop.
*
+ * For proper event handling, it is important that the event implementation
+ * is registered before a connection to the Hypervisor is opened.
+ *
* Use of the virEventAddHandle() and similar APIs require that the
* corresponding handler is registered. Use of the
* virConnectDomainEventRegisterAny() and similar APIs requires that
@@ -247,6 +250,9 @@ void virEventRegisterImpl(virEventAddHandleFunc addHandle,
* not have a need to integrate with an external event
* loop impl.
*
+ * For proper event handling, it is important that the event implementation
+ * is registered before a connection to the Hypervisor is opened.
+ *
* Once registered, the application has to invoke virEventRunDefaultImpl() in
* a loop to process events. Failure to do so may result in connections being
* closed unexpectedly as a result of keepalive timeout. The default
--
1.8.3.1
9 years, 1 month
[libvirt] Fwd: [PATCH 2/3] NEWS: Split releases by year (2012-2015)
by Eric Blake
[moderated for smaller size]
-------- Forwarded Message --------
From: Andrea Bolognani <abologna(a)redhat.com>
To: libvir-list(a)redhat.com
Subject: [PATCH 2/3] NEWS: Split releases by year (2012-2015)
Date: Thu, 15 Oct 2015 16:12:09 +0200
Message-Id: <1444918330-15696-3-git-send-email-abologna(a)redhat.com>
---
docs/news-2012.html.in | 3012 ++++++++++++++
docs/news-2013.html.in | 3675 +++++++++++++++++
docs/news-2014.html.in | 3418 ++++++++++++++++
docs/news.html.in | 10052
+----------------------------------------------
4 files changed, 10110 insertions(+), 10047 deletions(-)
create mode 100644 docs/news-2012.html.in
create mode 100644 docs/news-2013.html.in
create mode 100644 docs/news-2014.html.in
diff --git a/docs/news-2012.html.in b/docs/news-2012.html.in
new file mode 100644
index 0000000..a198d3c
--- /dev/null
+++ b/docs/news-2012.html.in
@@ -0,0 +1,3012 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ </head>
+ <body>
+ <h1>Releases (2012)</h1>
+ <p>Here is the list of official releases made during the year 2012.
+ A similar list for <a href="news-2011.html">2011</a> is also available.
+ </p>
+ <p>It is also possible to just use
+ the <a href="downloads.html" shape="rect">GIT version or snapshot</a>,
+ contact the mailing list and check
+ the <a href="http://libvirt.org/git/?p=libvirt.git;a=log"
shape="rect">GIT log</a>
+ to gauge progress.
+ </p>
+
+ <h3>1.0.1: Dec 17 2012</h3>
+ <ul>
+ <li>Features:<br/>
+ Introduce virtlockd daemon (Daniel P. Berrange),<br/>
[...]
diff --git a/docs/news-2013.html.in b/docs/news-2013.html.in
new file mode 100644
index 0000000..62b75a5
--- /dev/null
+++ b/docs/news-2013.html.in
@@ -0,0 +1,3675 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ </head>
+ <body>
+ <h1>Releases (2013)</h1>
+ <p>Here is the list of official releases made during the year 2013.
+ A similar list for <a href="news-2012.html">2012</a> is also available.
+ </p>
+ <p>It is also possible to just use
+ the <a href="downloads.html" shape="rect">GIT version or snapshot</a>,
+ contact the mailing list and check
+ the <a href="http://libvirt.org/git/?p=libvirt.git;a=log"
shape="rect">GIT log</a>
+ to gauge progress.
+ </p>
+
+ <h3>1.2.0: Dec 02 2013</h3>
+ <ul>
+ <li>Features:<br/>
+ Add support for gluster pool (Eric Blake),<br/>
[...]
diff --git a/docs/news-2014.html.in b/docs/news-2014.html.in
new file mode 100644
index 0000000..5480d5d
--- /dev/null
+++ b/docs/news-2014.html.in
@@ -0,0 +1,3418 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ </head>
+ <body>
+ <h1>Releases (2014)</h1>
+ <p>Here is the list of official releases made during the year 2014.
+ A similar list for <a href="news-2013.html">2013</a> is also available.
+ </p>
+ <p>It is also possible to just use
+ the <a href="downloads.html">GIT version or snapshot</a>,
+ contact the mailing list and check
+ the <a href="http://libvirt.org/git/?p=libvirt.git;a=log">GIT log</a>
+ to gauge progress.
+ </p>
+
+ <h3>1.2.11: Dec 13 2014</h3>
+ <ul>
+ <li>Features:<br/>
+ Implement public API for virDomainGetFSInfo (Tomoki Sekiyama),<br/>
[...]
diff --git a/docs/news.html.in b/docs/news.html.in
index 90e6ac7..3e133c2 100644
--- a/docs/news.html.in
+++ b/docs/news.html.in
@@ -5,8 +5,11 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
- <h1>Releases</h1>
- <p>Here is the list of official releases, it is also possible to
just use
+ <h1>Releases (2015)</h1>
+ <p>Here is the list of official releases made during the year 2015.
+ A similar list for <a href="news-2014.html">2014</a> is also available.
+ </p>
+ <p>It is also possible to just use
the <a href="downloads.html">GIT version or snapshot</a>,
contact the mailing list and check
the <a href="http://libvirt.org/git/?p=libvirt.git;a=log">GIT log</a>
@@ -2441,10050 +2444,5 @@
</li>
</ul>
- <h3>1.2.11: Dec 13 2014</h3>
- <ul>
- <li>Features:<br/>
- Implement public API for virDomainGetFSInfo (Tomoki Sekiyama),<br/>
[...]
-
- <h3>0.9.9: Jan 07 2012</h3>
- <ul>
- <li>Features:<br/>
[...]
- <li>Cleanups:<br/>
- network_conf: Fix whitespace to pass syntax-check (Peter Krempa)<br/>
- </li>
- </ul>
-
</body>
</html>
--
2.4.3
9 years, 1 month
[libvirt] Fwd: [PATCH 1/3] NEWS: Split releases by year (2005-2011)
by Eric Blake
[moderated for smaller size]
-------- Forwarded Message --------
From: Andrea Bolognani <abologna(a)redhat.com>
To: libvir-list(a)redhat.com
Subject: [PATCH 1/3] NEWS: Split releases by year (2005-2011)
Date: Thu, 15 Oct 2015 16:12:08 +0200
Message-Id: <1444918330-15696-2-git-send-email-abologna(a)redhat.com>
---
docs/news-2005.html.in | 28 +
docs/news-2006.html.in | 354 ++
docs/news-2007.html.in | 534 +++
docs/news-2008.html.in | 580 ++++
docs/news-2009.html.in | 1603 +++++++++
docs/news-2010.html.in | 2218 +++++++++++++
docs/news-2011.html.in | 3314 +++++++++++++++++++
docs/news.html.in | 8492
------------------------------------------------
8 files changed, 8631 insertions(+), 8492 deletions(-)
create mode 100644 docs/news-2005.html.in
create mode 100644 docs/news-2006.html.in
create mode 100644 docs/news-2007.html.in
create mode 100644 docs/news-2008.html.in
create mode 100644 docs/news-2009.html.in
create mode 100644 docs/news-2010.html.in
create mode 100644 docs/news-2011.html.in
diff --git a/docs/news-2005.html.in b/docs/news-2005.html.in
new file mode 100644
index 0000000..97a43c6
--- /dev/null
+++ b/docs/news-2005.html.in
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ </head>
+ <body>
+ <h1>Releases (2005)</h1>
+ <p>Here is the list of official releases made during the year 2005.
+ </p>
+ <p>It is also possible to just use
+ the <a href="downloads.html" shape="rect">GIT version or snapshot</a>,
+ contact the mailing list and check
+ the <a href="http://libvirt.org/git/?p=libvirt.git;a=log"
shape="rect">GIT log</a>
+ to gauge progress.
+ </p>
+
+ <h3>0.0.1: Dec 19 2005</h3>
+ <ul>
+ <li>Features:<br/>
+ First release,<br/>
+ Basic management of existing Xen domains,<br/>
+ Minimal autogenerated Python bindings<br/>
+ </li>
+ </ul>
+
+ </body>
+</html>
diff --git a/docs/news-2006.html.in b/docs/news-2006.html.in
new file mode 100644
index 0000000..df29a06
--- /dev/null
+++ b/docs/news-2006.html.in
@@ -0,0 +1,354 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ </head>
+ <body>
+ <h1>Releases (2006)</h1>
+ <p>Here is the list of official releases made during the year 2006.
+ A similar list for <a href="news-2005.html">2005</a> is also available.
+ </p>
+ <p>It is also possible to just use
+ the <a href="downloads.html" shape="rect">GIT version or snapshot</a>,
+ contact the mailing list and check
+ the <a href="http://libvirt.org/git/?p=libvirt.git;a=log"
shape="rect">GIT log</a>
+ to gauge progress.
+ </p>
+
+ <h3>0.1.10: Dec 20 2006</h3>
+ <ul>
+ <li>Bug Fixes:<br/>
+ VCPU info breakages on xen 3.0.3,<br/>
[...]
diff --git a/docs/news-2007.html.in b/docs/news-2007.html.in
new file mode 100644
index 0000000..8b08963
--- /dev/null
+++ b/docs/news-2007.html.in
@@ -0,0 +1,534 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ </head>
+ <body>
+ <h1>Releases (2007)</h1>
+ <p>Here is the list of official releases made during the year 2007.
+ A similar list for <a href="news-2006.html">2006</a> is also available.
+ </p>
+ <p>It is also possible to just use
+ the <a href="downloads.html" shape="rect">GIT version or snapshot</a>,
+ contact the mailing list and check
+ the <a href="http://libvirt.org/git/?p=libvirt.git;a=log"
shape="rect">GIT log</a>
+ to gauge progress.
+ </p>
+
+ <h3>0.4.0: Dec 18 2007</h3>
+ <ul>
+ <li>Features:<br/>
+ Compilation on Windows cygwin/mingw (Richard Jones),<br/>
[...]
diff --git a/docs/news-2008.html.in b/docs/news-2008.html.in
new file mode 100644
index 0000000..16ee9b1
--- /dev/null
+++ b/docs/news-2008.html.in
@@ -0,0 +1,580 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ </head>
+ <body>
+ <h1>Releases (2008)</h1>
+ <p>Here is the list of official releases made during the year 2008.
+ A similar list for <a href="news-2007.html">2007</a> is also available.
+ </p>
+ <p>It is also possible to just use
+ the <a href="downloads.html" shape="rect">GIT version or snapshot</a>,
+ contact the mailing list and check
+ the <a href="http://libvirt.org/git/?p=libvirt.git;a=log"
shape="rect">GIT log</a>
+ to gauge progress.
+ </p>
+
+ <h3>0.5.1: Dec 04 2008</h3>
+ <ul>
+ <li>Portability:<br/>
[...]
+ fix parsing for CDRom device with no source (Daniel Berrange),<br/>
+ use xenstore to list domains to avoid some bugs (Guido
Günther),<br/>
[...]
diff --git a/docs/news-2009.html.in b/docs/news-2009.html.in
new file mode 100644
index 0000000..c0b48ae
--- /dev/null
+++ b/docs/news-2009.html.in
@@ -0,0 +1,1603 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ </head>
+ <body>
+ <h1>Releases (2009)</h1>
+ <p>Here is the list of official releases made during the year 2009.
+ A similar list for <a href="news-2008.html">2008</a> is also available.
+ </p>
+ <p>It is also possible to just use
+ the <a href="downloads.html" shape="rect">GIT version or snapshot</a>,
+ contact the mailing list and check
+ the <a href="http://libvirt.org/git/?p=libvirt.git;a=log"
shape="rect">GIT log</a>
+ to gauge progress.
+ </p>
+
+ <h3>0.7.5: Dec 23 2009</h3>
+ <ul>
+ <li>Features:<br/>
[...]
diff --git a/docs/news-2010.html.in b/docs/news-2010.html.in
new file mode 100644
index 0000000..0fd8860
--- /dev/null
+++ b/docs/news-2010.html.in
@@ -0,0 +1,2218 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ </head>
+ <body>
+ <h1>Releases (2010)</h1>
+ <p>Here is the list of official releases made during the year 2010.
+ A similar list for <a href="news-2009.html">2009</a> is also available.
+ </p>
+ <p>It is also possible to just use
+ the <a href="downloads.html" shape="rect">GIT version or snapshot</a>,
+ contact the mailing list and check
+ the <a href="http://libvirt.org/git/?p=libvirt.git;a=log"
shape="rect">GIT log</a>
+ to gauge progress.
+ </p>
+
+ <h3>0.8.6: Nov 30 2010</h3>
+ <ul>
+ <li>Features:<br/>
[...]
diff --git a/docs/news-2011.html.in b/docs/news-2011.html.in
new file mode 100644
index 0000000..5dacb5c
--- /dev/null
+++ b/docs/news-2011.html.in
@@ -0,0 +1,3314 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ </head>
+ <body>
+ <h1>Releases (2011)</h1>
+ <p>Here is the list of official releases made during the year 2011.
+ A similar list for <a href="news-2010.html">2010</a> is also available.
+ </p>
+ <p>It is also possible to just use
+ the <a href="downloads.html" shape="rect">GIT version or snapshot</a>,
+ contact the mailing list and check
+ the <a href="http://libvirt.org/git/?p=libvirt.git;a=log"
shape="rect">GIT log</a>
+ to gauge progress.
+ </p>
+
+ <h3>0.9.8: Dec 08 2011</h3>
+ <ul>
+ <li>Features:<br/>
[...]
diff --git a/docs/news.html.in b/docs/news.html.in
index 0e89fae..90e6ac7 100644
--- a/docs/news.html.in
+++ b/docs/news.html.in
@@ -12486,8497 +12486,5 @@
</li>
</ul>
- <h3>0.9.8: Dec 08 2011</h3>
- <ul>
- <li>Features:<br/>
[...]
-
- <h3>0.0.1: Dec 19 2005</h3>
- <ul>
- <li>Features:<br/>
- First release,<br/>
- Basic management of existing Xen domains,<br/>
- Minimal autogenerated Python bindings<br/>
- </li>
- </ul>
-
</body>
</html>
--
2.4.3
9 years, 1 month