[libvirt] [PATCH] Allow custom metadata in network configuration XML
by Brnadon Bennett
From: Brandon Bennett <bbennett(a)fb.com>
This replicates the metadata field found in the domain configuration
and adds it to the network configuration XML.
---
docs/formatnetwork.html.in | 13 +++++++++++++
docs/schemas/basictypes.rng | 23 +++++++++++++++++++++++
docs/schemas/domaincommon.rng | 23 -----------------------
docs/schemas/network.rng | 5 +++++
src/conf/network_conf.c | 35 ++++++++++++++++++++++++++++++++++-
src/conf/network_conf.h | 3 +++
tests/networkxml2xmlin/metadata.xml | 10 ++++++++++
tests/networkxml2xmlout/metadata.xml | 10 ++++++++++
tests/networkxml2xmltest.c | 1 +
9 files changed, 99 insertions(+), 24 deletions(-)
create mode 100644 tests/networkxml2xmlin/metadata.xml
create mode 100644 tests/networkxml2xmlout/metadata.xml
diff --git a/docs/formatnetwork.html.in b/docs/formatnetwork.html.in
index 1cea931..15ebf0c 100644
--- a/docs/formatnetwork.html.in
+++ b/docs/formatnetwork.html.in
@@ -38,6 +38,10 @@
<network ipv6='yes' trustGuestRxFilters='no'>
<name>default</name>
<uuid>3e3fce45-4f53-4fa7-bb32-11f34168b82b</uuid>
+ <metadata>
+ <app1:foo xmlns:app1="http://app1.org/app1/">..</app1:foo>
+ <app2:bar xmlns:app2="http://app1.org/app2/">..</app2:bar>
+ </metadata>
...</pre>
<dl>
@@ -54,6 +58,12 @@
The format must be RFC 4122 compliant, eg <code>3e3fce45-4f53-4fa7-bb32-11f34168b82b</code>.
If omitted when defining/creating a new network, a random
UUID is generated. <span class="since">Since 0.3.0</span></dd>
+ <dd>The <code>metadata</code> node can be used by applications to
+ store custom metadata in the form of XML nodes/trees. Applications
+ must use custom namespaces on their XML nodes/trees, with only
+ one top-level element per namespace (if the application needs
+ structure, they should have sub-elements to their namespace
+ element). <span class="since">Since 1.3.6</span></dd>
<dt><code>ipv6</code></dt>
<dd>When set to <code>yes</code>, the optional parameter
<code>ipv6</code> enables
@@ -73,6 +83,9 @@
override the setting in the network.</dd>
</dl>
++
+
+
<h3><a name="elementsConnect">Connectivity</a></h3>
<p>
diff --git a/docs/schemas/basictypes.rng b/docs/schemas/basictypes.rng
index 83fd4ec..474ad77 100644
--- a/docs/schemas/basictypes.rng
+++ b/docs/schemas/basictypes.rng
@@ -495,4 +495,27 @@
</choice>
</define>
+ <define name="metadata">
+ <element name="metadata">
+ <zeroOrMore>
+ <ref name="customElement"/>
+ </zeroOrMore>
+ </element>
+ </define>
+
+ <define name="customElement">
+ <element>
+ <anyName/>
+ <zeroOrMore>
+ <choice>
+ <attribute>
+ <anyName/>
+ </attribute>
+ <text/>
+ <ref name="customElement"/>
+ </choice>
+ </zeroOrMore>
+ </element>
+ </define>
+
</grammar>
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index 162c2e0..78eb3f5 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -5338,29 +5338,6 @@
</element>
</define>
- <define name="metadata">
- <element name="metadata">
- <zeroOrMore>
- <ref name="customElement"/>
- </zeroOrMore>
- </element>
- </define>
-
- <define name="customElement">
- <element>
- <anyName/>
- <zeroOrMore>
- <choice>
- <attribute>
- <anyName/>
- </attribute>
- <text/>
- <ref name="customElement"/>
- </choice>
- </zeroOrMore>
- </element>
- </define>
-
<!--
Type library
-->
diff --git a/docs/schemas/network.rng b/docs/schemas/network.rng
index 4edb6eb..b67a5ea 100644
--- a/docs/schemas/network.rng
+++ b/docs/schemas/network.rng
@@ -37,6 +37,11 @@
<text/>
</element>
+ <!-- <metadata> element -->
+ <optional>
+ <ref name="metadata"/>
+ </optional>
+
<!-- <uuid> element -->
<optional>
<element name="uuid"><ref name="UUID"/></element>
diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c
index 02b8cd7..4239c32 100644
--- a/src/conf/network_conf.c
+++ b/src/conf/network_conf.c
@@ -419,6 +419,9 @@ virNetworkDefFree(virNetworkDefPtr def)
virNetDevBandwidthFree(def->bandwidth);
virNetDevVlanClear(&def->vlan);
+
+ xmlFreeNode(def->metadata);
+
VIR_FREE(def);
}
@@ -2059,6 +2062,7 @@ virNetworkDefParseXML(xmlXPathContextPtr ctxt)
xmlNodePtr save = ctxt->node;
xmlNodePtr bandwidthNode = NULL;
xmlNodePtr vlanNode;
+ xmlNodePtr metadataNode = NULL;
if (VIR_ALLOC(def) < 0)
return NULL;
@@ -2388,8 +2392,12 @@ virNetworkDefParseXML(xmlXPathContextPtr ctxt)
}
break;
}
-
VIR_FREE(stp);
+
+ /* Extract custom metadata */
+ if ((metadataNode = virXPathNode("./metadata[1]", ctxt)) != NULL)
+ def->metadata = xmlCopyNode(metadataNode, 1);
+
ctxt->node = save;
return def;
@@ -2412,12 +2420,14 @@ virNetworkDefParse(const char *xmlStr,
{
xmlDocPtr xml;
virNetworkDefPtr def = NULL;
+ int keepBlanksDefault = xmlKeepBlanksDefault(0);
if ((xml = virXMLParse(filename, xmlStr, _("(network_definition)")))) {
def = virNetworkDefParseNode(xml, xmlDocGetRootElement(xml));
xmlFreeDoc(xml);
}
+ xmlKeepBlanksDefault(keepBlanksDefault);
return def;
}
@@ -2736,6 +2746,29 @@ virNetworkDefFormatBuf(virBufferPtr buf,
virUUIDFormat(uuid, uuidstr);
virBufferAsprintf(buf, "<uuid>%s</uuid>\n", uuidstr);
+ if (def->metadata) {
+ xmlBufferPtr xmlbuf;
+ int oldIndentTreeOutput = xmlIndentTreeOutput;
+
+ /* Indentation on output requires that we previously set
+ * xmlKeepBlanksDefault to 0 when parsing; also, libxml does 2
+ * spaces per level of indentation of intermediate elements,
+ * but no leading indentation before the starting element.
+ * Thankfully, libxml maps what looks like globals into
+ * thread-local uses, so we are thread-safe. */
+ xmlIndentTreeOutput = 1;
+ xmlbuf = xmlBufferCreate();
+ if (xmlNodeDump(xmlbuf, def->metadata->doc, def->metadata,
+ virBufferGetIndent(buf, false) / 2, 1) < 0) {
+ xmlBufferFree(xmlbuf);
+ xmlIndentTreeOutput = oldIndentTreeOutput;
+ goto error;
+ }
+ virBufferAsprintf(buf, "%s\n", (char *) xmlBufferContent(xmlbuf));
+ xmlBufferFree(xmlbuf);
+ xmlIndentTreeOutput = oldIndentTreeOutput;
+ }
+
if (def->forward.type != VIR_NETWORK_FORWARD_NONE) {
const char *dev = NULL;
if (!def->forward.npfs)
diff --git a/src/conf/network_conf.h b/src/conf/network_conf.h
index 0d34dfe..4481f60 100644
--- a/src/conf/network_conf.h
+++ b/src/conf/network_conf.h
@@ -253,6 +253,9 @@ struct _virNetworkDef {
virNetDevBandwidthPtr bandwidth;
virNetDevVlan vlan;
int trustGuestRxFilters; /* enum virTristateBool */
+
+ /* Application-specific custom metadata */
+ xmlNodePtr metadata;
};
typedef struct _virNetworkObj virNetworkObj;
diff --git a/tests/networkxml2xmlin/metadata.xml b/tests/networkxml2xmlin/metadata.xml
new file mode 100644
index 0000000..c075f93
--- /dev/null
+++ b/tests/networkxml2xmlin/metadata.xml
@@ -0,0 +1,10 @@
+<network>
+ <name>host-bridge-net</name>
+ <uuid>81ff0d90-c91e-6742-64da-4a736edb9a8e</uuid>
+ <forward mode='bridge'/>
+ <bridge name='br0'/>
+ <metadata>
+ <app1:foo xmlns:app1="http://foo.org/">fooish</app1:foo>
+ <app2:bar xmlns:app2="http://bar.com/" maman="baz">barish</app2:bar>
+ </metadata>
+</network>
diff --git a/tests/networkxml2xmlout/metadata.xml b/tests/networkxml2xmlout/metadata.xml
new file mode 100644
index 0000000..a9364ab
--- /dev/null
+++ b/tests/networkxml2xmlout/metadata.xml
@@ -0,0 +1,10 @@
+<network>
+ <name>host-bridge-net</name>
+ <uuid>81ff0d90-c91e-6742-64da-4a736edb9a8e</uuid>
+ <metadata>
+ <app1:foo xmlns:app1="http://foo.org/">fooish</app1:foo>
+ <app2:bar xmlns:app2="http://bar.com/" maman="baz">barish</app2:bar>
+ </metadata>
+ <forward mode='bridge'/>
+ <bridge name='br0'/>
+</network>
diff --git a/tests/networkxml2xmltest.c b/tests/networkxml2xmltest.c
index d65f6aa..2a2c348 100644
--- a/tests/networkxml2xmltest.c
+++ b/tests/networkxml2xmltest.c
@@ -153,6 +153,7 @@ mymain(void)
DO_TEST("host-bridge-no-flood");
DO_TEST_PARSE_ERROR("hostdev-duplicate");
DO_TEST_PARSE_ERROR("passthrough-duplicate");
+ DO_TEST("metadata");
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
}
--
2.7.4
8 years, 5 months
[libvirt] [PATCH] lxc; Fir memory leak if virSocketAddrGetIPPrefix fails
by Jiri Denemark
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
src/lxc/lxc_container.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c
index 0d5f16c..65930c9 100644
--- a/src/lxc/lxc_container.c
+++ b/src/lxc/lxc_container.c
@@ -514,18 +514,16 @@ lxcContainerRenameAndEnableInterfaces(virDomainDefPtr vmDef,
for (j = 0; j < netDef->guestIP.nips; j++) {
virNetDevIPAddrPtr ip = netDef->guestIP.ips[j];
int prefix;
- char *ipStr = virSocketAddrFormat(&ip->address);
if ((prefix = virSocketAddrGetIPPrefix(&ip->address,
NULL, ip->prefix)) < 0) {
- ipStr = virSocketAddrFormat(&ip->address);
+ char *ipStr = virSocketAddrFormat(&ip->address);
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to determine prefix for IP address '%s'"),
ipStr);
VIR_FREE(ipStr);
goto cleanup;
}
- VIR_FREE(ipStr);
if (virNetDevIPAddrAdd(newname, &ip->address, NULL, prefix) < 0)
goto cleanup;
--
2.9.0
8 years, 5 months
[libvirt] [PATCH] util: Call capng_setpid() before using cap-ng
by Andrea Bolognani
audit is using cap-ng itself since version 2.6.1, and it gets
to initialize the internal state of the cap-ng library before
we call fork(). Because of that, our own use of cap-ng in the
child process ends up attempting to change the capabilities of
the parent process instead of the child process, which fails.
Calling capng_setpid() before using any other cap-ng API
ensures we're altering the capabilities of the right process.
---
src/util/virutil.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/util/virutil.c b/src/util/virutil.c
index 170dd59..d393a12 100644
--- a/src/util/virutil.c
+++ b/src/util/virutil.c
@@ -1465,6 +1465,14 @@ virSetUIDGIDWithCaps(uid_t uid, gid_t gid, gid_t *groups, int ngroups,
bool need_setgid = false, need_setuid = false;
bool need_setpcap = false;
+ /* The cap-ng library stores some internal data in a thread local
+ * variable; that includes the PID of the process it should alter
+ * the capabilities of. After fork(), this data is not cleared,
+ * so we might end up trying to change the capabilities of a
+ * different process. Initialize the PID explicitly to work around
+ * that issue */
+ capng_setpid(getpid());
+
/* First drop all caps (unless the requested uid is "unchanged" or
* root and clearExistingCaps wasn't requested), then add back
* those in capBits + the extra ones we need to change uid/gid and
--
2.7.4
8 years, 5 months
[libvirt] [PATCH] examples: check asprintf return value in client_info.c
by Ján Tomko
On error, asprintf returns -1 and the contents of the string
pointer is undefined. In the rest of the libvirt code,
the virAsprintf wrapper takes care of that.
Check the return value and report a generic error, since we
purposefully avoid linking to virutil.
---
examples/admin/client_info.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/examples/admin/client_info.c b/examples/admin/client_info.c
index dd0a04a..314a090 100644
--- a/examples/admin/client_info.c
+++ b/examples/admin/client_info.c
@@ -86,6 +86,11 @@ exampleGetTypedParamValue(virTypedParameterPtr item)
return NULL;
}
+ if (ret < 0) {
+ fprintf(stderr, "error formatting typed param value\n");
+ return NULL;
+ }
+
return str;
}
--
2.7.3
8 years, 5 months
[libvirt] [PATCH] mingw-libvirt.spec.in: add perl + perl(Getopt::Long) BRs
by Daniel P. Berrange
The default Fedora build roots for f25 and newer no longer
include perl. We must thus explicitly ask for it as the
RPC gendispatch.pl program needs it, and the Getopt::Long
module. Do this unconditionally since it isn't harmful for
older Fedora
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
Pushed as a mingw build fix
mingw-libvirt.spec.in | 2 ++
1 file changed, 2 insertions(+)
diff --git a/mingw-libvirt.spec.in b/mingw-libvirt.spec.in
index 699d6f7..5c7183f 100644
--- a/mingw-libvirt.spec.in
+++ b/mingw-libvirt.spec.in
@@ -54,6 +54,8 @@ BuildRequires: mingw64-portablexdr
BuildRequires: pkgconfig
# Need native version for msgfmt
BuildRequires: gettext
+BuildRequires: perl
+BuildRequires: perl(Getopt::Long)
%if 0%{?enable_autotools}
BuildRequires: autoconf
BuildRequires: automake
--
2.7.4
8 years, 5 months
[libvirt] LSN-2016-0001 - Authentication disabled when setting empty VNC password
by Daniel P. Berrange
Libvirt Security Notice: LSN-2016-0001
======================================
Summary: Authentication disabled when setting empty VNC
password
Reported on: 20130531
Published on: 20130531
Fixed on: 20160630
Reported by: Vivian Zhang <vivianzhang(a)redhat.com>
Christoph Anton Mitterer <calestyo(a)scientia.net>
Patched by: Jiri Denemar <jdenemar(a)redhat.com>
See also: CVE-2016-5008
Description
-----------
An empty password set for the VNC server is documented as preventing
all client connections. This is the behaviour when QEMU virtual
machines are first started with the 'password' flag given to the
-vnc argument and when setting the password with the 'change vnc'
monitor command. When libvirt switched to using 'set_password' QMP
command though using an empty password had the effect of disabling
password checking and thus allowing any client connection with no
authentication check.
Impact
------
When the password on a VNC server is set to the empty string,
authentication on the VNC server will be disabled allowing any user
to connect. An application would meanwhile expect that the empty
string would prevent all users from connecting
Workaround
----------
The VNC password authentication scheme is generally considered to
offer inadequate security, so its use is not recommended at all,
regardless of this vulnerability. Applications and administrators
are thus encouraged to make use of the VNC TLS extension together
with SASL for strong authentication.
Affected product
----------------
Name: libvirt
Repository: git://libvirt.org/git/libvirt.git
http://libvirt.org/git/?p=libvirt.git
Branch: master
Broken in: v0.8.8
Broken in: v0.9.0
Broken in: v0.9.1
Broken in: v0.9.2
Broken in: v0.9.3
Broken in: v0.9.4
Broken in: v0.9.5
Broken in: v0.9.6
Broken in: v0.9.7
Broken in: v0.9.8
Broken in: v0.9.9
Broken in: v0.9.10
Broken in: v0.9.11
Broken in: v0.9.12
Broken in: v0.9.13
Broken in: v0.10.0
Broken in: v0.10.1
Broken in: v0.10.2
Broken in: v1.0.0
Broken in: v1.0.1
Broken in: v1.0.2
Broken in: v1.0.3
Broken in: v1.0.4
Broken in: v1.0.5
Broken in: v1.0.6
Broken in: v1.1.0
Broken in: v1.1.1
Broken in: v1.1.2
Broken in: v1.1.3
Broken in: v1.1.4
Broken in: v1.2.0
Broken in: v1.2.1
Broken in: v1.2.2
Broken in: v1.2.3
Broken in: v1.2.4
Broken in: v1.2.5
Broken in: v1.2.6
Broken in: v1.2.7
Broken in: v1.2.8
Broken in: v1.2.9
Broken in: v1.2.10
Broken in: v1.2.11
Broken in: v1.2.12
Broken in: v1.2.13
Broken in: v1.2.14
Broken in: v1.2.15
Broken in: v1.2.16
Broken in: v1.2.17
Broken in: v1.2.18
Broken in: v1.2.19
Broken in: v1.2.20
Broken in: v1.2.21
Broken in: v1.3.0
Broken in: v1.3.1
Broken in: v1.3.2
Broken in: v1.3.3
Broken in: v1.3.4
Broken in: v1.3.5
Fixed in: v2.0.0
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: bb848feec0f3f10e92dd8e5231ae7aa89b5598f3
Branch: v0.9.6-maint
Broken in: v0.9.6.1
Broken in: v0.9.6.2
Broken in: v0.9.6.3
Broken in: v0.9.6.4
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Branch: v0.9.11-maint
Broken in: v0.9.11.1
Broken in: v0.9.11.2
Broken in: v0.9.11.3
Broken in: v0.9.11.4
Broken in: v0.9.11.5
Broken in: v0.9.11.6
Broken in: v0.9.11.7
Broken in: v0.9.11.8
Broken in: v0.9.11.9
Broken in: v0.9.11.10
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Branch: v0.9.12-maint
Broken in: v0.9.12.1
Broken in: v0.9.12.2
Broken in: v0.9.12.3
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: eea38b5922b7daff91fd146869a337287e77065e
Branch: v0.10.2-maint
Broken in: v0.10.2.1
Broken in: v0.10.2.2
Broken in: v0.10.2.3
Broken in: v0.10.2.4
Broken in: v0.10.2.5
Broken in: v0.10.2.6
Broken in: v0.10.2.7
Broken in: v0.10.2.8
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: 418a165da6e61ab548349408e4ba0c0d612ef5af
Branch: v1.0.2-maint
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: 139a4265774b7aa194f8479a82188bc1337cd7a4
Branch: v1.0.3-maint
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: 3779715e8d4522f1f5de20746fd96bbe59167d1a
Branch: v1.0.4-maint
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: a3954cc79358a990720fab36b4feaecd0266c5c6
Branch: v1.0.5-maint
Broken in: v1.0.5.1
Broken in: v1.0.5.2
Broken in: v1.0.5.3
Broken in: v1.0.5.4
Broken in: v1.0.5.5
Broken in: v1.0.5.6
Broken in: v1.0.5.7
Broken in: v1.0.5.8
Broken in: v1.0.5.9
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: 6fd8d6b655b925df306652d525e388860704d67d
Branch: v1.0.6-maint
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: c8df12a1394d75e12da09ec4189eea360feb059d
Branch: v1.1.0-maint
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: 1338fceea2f16c20b2aa91515918c7cc977d5f29
Branch: v1.1.1-maint
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: 6a11fd52b480bb47f8cc988763333788201ab1ab
Branch: v1.1.2-maint
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: 832cc0eff8feb2f14613a75b0e1d5671735d2094
Branch: v1.1.3-maint
Broken in: v1.1.3.1
Broken in: v1.1.3.2
Broken in: v1.1.3.3
Broken in: v1.1.3.4
Broken in: v1.1.3.5
Broken in: v1.1.3.6
Broken in: v1.1.3.7
Broken in: v1.1.3.8
Broken in: v1.1.3.9
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: 39419b37c2049cfa36110d75c9071f8a72fa238d
Branch: v1.1.4-maint
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: 916f5c9d1f6b2145dac93311925db3eb93d3e5aa
Branch: v1.2.0-maint
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: 20397434fc036dead7e5c375aec7483334396178
Branch: v1.2.1-maint
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: e4ecee35aed931cc10a7c84ec9829ccefddecefa
Branch: v1.2.2-maint
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: 4816c5370ecf9ed412068c6c3795a2fd71ebc354
Branch: v1.2.3-maint
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: 6f7cfb5ba21d5e710a88c2e0fcbc150b59ac510c
Branch: v1.2.4-maint
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: dd9cca35bce5bea871f96264cfe9f629566f0b12
Branch: v1.2.5-maint
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: f39de9abfd4b8b19a012169355a0e73dae427bd0
Branch: v1.2.6-maint
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: d933f68ee660566b52cd90330aee0d5f414636a4
Branch: v1.2.7-maint
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: 0d052f8abd8bc38ac982e88294737c6ddf3e6484
Branch: v1.2.8-maint
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: 05d238be999f6488b6f24cbbff3dada0560d97bf
Branch: v1.2.9-maint
Broken in: v1.2.9.1
Broken in: v1.2.9.2
Broken in: v1.2.9.3
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: f32441c69bf450d6ac593c3acd621c37e120cdaf
Branch: v1.2.10-maint
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: 33802d62af95fd7a4e86f2755efe94af59158fea
Branch: v1.2.11-maint
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: b7fbb52ac8d1198ba42b3d1f6cc3079497eea704
Branch: v1.2.12-maint
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: 819c14190cbea4ef1f99acfbd5e0389899142bd5
Branch: v1.2.13-maint
Broken in: v1.2.13.1
Broken in: v1.2.13.2
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: 35c2bd75f2c8312687f965a80cc2b6255daf6575
Branch: v1.2.14-maint
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: ea59deeeead2e4894f3651977aa6114849b857fb
Branch: v1.2.15-maint
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: 9e181d7f6c76f9a84e2c8638722bb98ac61b6baa
Branch: v1.2.16-maint
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: b869aab71102c41247a3fede506e88700bb95e55
Branch: v1.2.17-maint
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: 49fa383bb03328f7def85e249e252abe5e602e39
Branch: v1.2.18-maint
Broken in: v1.2.18.1
Broken in: v1.2.18.2
Broken in: v1.2.18.3
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: caa4c280cd34f0ff0fb9a3879ccc0ceaffc3b802
Branch: v1.2.19-maint
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: 38d5c57b9a89c84a19bddcafca9230e69fc78171
Branch: v1.2.20-maint
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: 8c30687b71ccb635c110404f0ef1caf2dbccf2e0
Branch: v1.2.21-maint
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: 9329ca10f121b737fbdcf3070877e3dbe50f9fdf
Branch: v1.3.0-maint
Broken in: v1.3.3.1
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: d49b1dfcb59af791f78cd699134cfe80bd6f13ab
Branch: v1.3.1-maint
Broken in: v1.3.3.1
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: 2d5370eba6b52f44cf832eba28f162c55331a47c
Branch: v1.3.3-maint
Broken in: v1.3.3.1
Broken by: 9d73efdbe3ea61a13a11fdc24a2cb530eaa0b66f
Fixed by: 881441f84a30cd3921df313a982f7162d7ca04f4
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
8 years, 5 months
[libvirt] [PATCH] mingw-libvirt.spec.in: fix packaging of admin API and other bugs
by Daniel P. Berrange
When the admin API was enabled no entries were added to the
file list.
The virt-host-validate binary is also no longer built on
win32
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
Pushed as a build-breaker fix
mingw-libvirt.spec.in | 24 ++++++++++++++++++++----
1 file changed, 20 insertions(+), 4 deletions(-)
diff --git a/mingw-libvirt.spec.in b/mingw-libvirt.spec.in
index e808839..699d6f7 100644
--- a/mingw-libvirt.spec.in
+++ b/mingw-libvirt.spec.in
@@ -184,21 +184,25 @@ rm -rf $RPM_BUILD_ROOT%{mingw64_libexecdir}/libvirt-guests.sh
%files -n mingw32-libvirt
%dir %{mingw32_sysconfdir}/libvirt/
%config(noreplace) %{mingw32_sysconfdir}/libvirt/libvirt.conf
+%config(noreplace) %{mingw32_sysconfdir}/libvirt/libvirt-admin.conf
%{mingw32_bindir}/libvirt-0.dll
%{mingw32_bindir}/virsh.exe
+%{mingw32_bindir}/virt-admin.exe
%{mingw32_bindir}/virt-xml-validate
%{mingw32_bindir}/virt-pki-validate
-%{mingw32_bindir}/virt-host-validate.exe
%{mingw32_bindir}/libvirt-lxc-0.dll
%{mingw32_bindir}/libvirt-qemu-0.dll
+%{mingw32_bindir}/libvirt-admin-0.dll
%{mingw32_libdir}/libvirt.dll.a
%{mingw32_libdir}/pkgconfig/libvirt.pc
%{mingw32_libdir}/pkgconfig/libvirt-qemu.pc
%{mingw32_libdir}/pkgconfig/libvirt-lxc.pc
+%{mingw32_libdir}/pkgconfig/libvirt-admin.pc
%{mingw32_libdir}/libvirt-lxc.dll.a
%{mingw32_libdir}/libvirt-qemu.dll.a
+%{mingw32_libdir}/libvirt-admin.dll.a
%dir %{mingw32_datadir}/libvirt/
%dir %{mingw32_datadir}/libvirt/schemas/
@@ -221,6 +225,7 @@ rm -rf $RPM_BUILD_ROOT%{mingw64_libexecdir}/libvirt-guests.sh
%{mingw32_datadir}/libvirt/api/libvirt-api.xml
%{mingw32_datadir}/libvirt/api/libvirt-lxc-api.xml
%{mingw32_datadir}/libvirt/api/libvirt-qemu-api.xml
+%{mingw32_datadir}/libvirt/api/libvirt-admin-api.xml
%{mingw32_datadir}/libvirt/cpu_map.xml
%{mingw32_datadir}/libvirt/libvirtLogo.png
@@ -229,6 +234,7 @@ rm -rf $RPM_BUILD_ROOT%{mingw64_libexecdir}/libvirt-guests.sh
%dir %{mingw32_includedir}/libvirt
%{mingw32_includedir}/libvirt/libvirt.h
+%{mingw32_includedir}/libvirt/libvirt-common.h
%{mingw32_includedir}/libvirt/libvirt-domain.h
%{mingw32_includedir}/libvirt/libvirt-domain-snapshot.h
%{mingw32_includedir}/libvirt/libvirt-event.h
@@ -243,36 +249,42 @@ rm -rf $RPM_BUILD_ROOT%{mingw64_libexecdir}/libvirt-guests.sh
%{mingw32_includedir}/libvirt/virterror.h
%{mingw32_includedir}/libvirt/libvirt-lxc.h
%{mingw32_includedir}/libvirt/libvirt-qemu.h
+%{mingw32_includedir}/libvirt/libvirt-admin.h
%{mingw32_mandir}/man1/virsh.1*
+%{mingw32_mandir}/man1/virt-admin.1*
%{mingw32_mandir}/man1/virt-xml-validate.1*
%{mingw32_mandir}/man1/virt-pki-validate.1*
-%{mingw32_mandir}/man1/virt-host-validate.1*
%files -n mingw32-libvirt-static
%{mingw32_libdir}/libvirt.a
%{mingw32_libdir}/libvirt-lxc.a
%{mingw32_libdir}/libvirt-qemu.a
+%{mingw32_libdir}/libvirt-admin.a
# Mingw64
%files -n mingw64-libvirt
%dir %{mingw64_sysconfdir}/libvirt/
%config(noreplace) %{mingw64_sysconfdir}/libvirt/libvirt.conf
+%config(noreplace) %{mingw64_sysconfdir}/libvirt/libvirt-admin.conf
%{mingw64_bindir}/libvirt-0.dll
%{mingw64_bindir}/virsh.exe
+%{mingw64_bindir}/virt-admin.exe
%{mingw64_bindir}/virt-xml-validate
%{mingw64_bindir}/virt-pki-validate
-%{mingw64_bindir}/virt-host-validate.exe
%{mingw64_bindir}/libvirt-lxc-0.dll
%{mingw64_bindir}/libvirt-qemu-0.dll
+%{mingw64_bindir}/libvirt-admin-0.dll
%{mingw64_libdir}/libvirt.dll.a
%{mingw64_libdir}/pkgconfig/libvirt.pc
%{mingw64_libdir}/pkgconfig/libvirt-qemu.pc
%{mingw64_libdir}/pkgconfig/libvirt-lxc.pc
+%{mingw64_libdir}/pkgconfig/libvirt-admin.pc
%{mingw64_libdir}/libvirt-lxc.dll.a
%{mingw64_libdir}/libvirt-qemu.dll.a
+%{mingw64_libdir}/libvirt-admin.dll.a
%dir %{mingw64_datadir}/libvirt/
%dir %{mingw64_datadir}/libvirt/schemas/
@@ -295,6 +307,7 @@ rm -rf $RPM_BUILD_ROOT%{mingw64_libexecdir}/libvirt-guests.sh
%{mingw64_datadir}/libvirt/api/libvirt-api.xml
%{mingw64_datadir}/libvirt/api/libvirt-lxc-api.xml
%{mingw64_datadir}/libvirt/api/libvirt-qemu-api.xml
+%{mingw64_datadir}/libvirt/api/libvirt-admin-api.xml
%{mingw64_datadir}/libvirt/cpu_map.xml
%{mingw64_datadir}/libvirt/libvirtLogo.png
@@ -303,6 +316,7 @@ rm -rf $RPM_BUILD_ROOT%{mingw64_libexecdir}/libvirt-guests.sh
%dir %{mingw64_includedir}/libvirt
%{mingw64_includedir}/libvirt/libvirt.h
+%{mingw64_includedir}/libvirt/libvirt-common.h
%{mingw64_includedir}/libvirt/libvirt-domain.h
%{mingw64_includedir}/libvirt/libvirt-domain-snapshot.h
%{mingw64_includedir}/libvirt/libvirt-event.h
@@ -317,16 +331,18 @@ rm -rf $RPM_BUILD_ROOT%{mingw64_libexecdir}/libvirt-guests.sh
%{mingw64_includedir}/libvirt/virterror.h
%{mingw64_includedir}/libvirt/libvirt-lxc.h
%{mingw64_includedir}/libvirt/libvirt-qemu.h
+%{mingw64_includedir}/libvirt/libvirt-admin.h
%{mingw64_mandir}/man1/virsh.1*
+%{mingw64_mandir}/man1/virt-admin.1*
%{mingw64_mandir}/man1/virt-xml-validate.1*
%{mingw64_mandir}/man1/virt-pki-validate.1*
-%{mingw64_mandir}/man1/virt-host-validate.1*
%files -n mingw64-libvirt-static
%{mingw64_libdir}/libvirt.a
%{mingw64_libdir}/libvirt-lxc.a
%{mingw64_libdir}/libvirt-qemu.a
+%{mingw64_libdir}/libvirt-admin.a
%changelog
--
2.7.4
8 years, 5 months
[libvirt] [PATCH] Post-release version bump to 2.1.0
by Jiri Denemark
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
Pushed as trivial.
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 5c48a02..2c81c95 100644
--- a/configure.ac
+++ b/configure.ac
@@ -16,7 +16,7 @@ dnl You should have received a copy of the GNU Lesser General Public
dnl License along with this library. If not, see
dnl <http://www.gnu.org/licenses/>.
-AC_INIT([libvirt], [2.0.0], [libvir-list(a)redhat.com], [], [http://libvirt.org])
+AC_INIT([libvirt], [2.1.0], [libvir-list(a)redhat.com], [], [http://libvirt.org])
AC_CONFIG_SRCDIR([src/libvirt.c])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_HEADERS([config.h])
--
2.9.0
8 years, 5 months
[libvirt] [PATCH] docs: remove outdated suggestion to make patches with "diff -urp" or "git diff"
by Laine Stump
I can't think of any good reason to do either of those, and having the
examples there will just lead to unusable patch emails from people who
can't be bothered to read the entire page.
---
I'm sure there are other problems with this file, but this one really
jupmed out at me when I was suggesting to someone that they look to
this page for proper procedures.
docs/hacking.html.in | 12 +-----------
1 file changed, 1 insertion(+), 11 deletions(-)
diff --git a/docs/hacking.html.in b/docs/hacking.html.in
index a471d88..5f19143 100644
--- a/docs/hacking.html.in
+++ b/docs/hacking.html.in
@@ -23,21 +23,11 @@
automatically pulls the latest version of each translation
file from zanata.</li>
- <li><p>Post patches in unified diff format, with git rename
+ <li><p>Post patches using "git send-email", with git rename
detection enabled. You need a one-time setup of:</p>
<pre>
git config diff.renames true
</pre>
- <p>After that, a command similar to this should work:</p>
-<pre>
- diff -urp libvirt.orig/ libvirt.modified/ > libvirt-myfeature.patch
-</pre>
- <p>
- or:
- </p>
-<pre>
- git diff > libvirt-myfeature.patch
-</pre>
<p>Also, for code motion patches, you may find that <code>git
diff --patience</code> provides an easier-to-read patch.
However, the usual workflow of libvirt developer is:</p>
--
2.5.5
8 years, 5 months