Compare commits
61 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
518d648589 | ||
|
bc7897c362 | ||
|
2fa7e1b9cc | ||
|
cb839d3dfc | ||
|
dc6b512f3c | ||
|
ac122f4525 | ||
|
7744acbb6b | ||
|
3807f07c15 | ||
|
e484fdc92b | ||
|
6752fe8c9e | ||
|
15f52369ae | ||
|
65a0e26138 | ||
|
497e096592 | ||
|
03a98aaf59 | ||
|
5845f1efec | ||
|
a8d01eb9d7 | ||
|
6d76ba5956 | ||
|
a11202d9e2 | ||
|
bbfa59c8da | ||
|
b97ad8956c | ||
|
f9639a0012 | ||
|
c71e60c76c | ||
|
9764121247 | ||
|
a18ed3c492 | ||
|
9e2eeb32e3 | ||
|
8bf91f5d22 | ||
|
91d8eff569 | ||
|
a761ea338f | ||
|
7eef88add4 | ||
|
0c88a64234 | ||
|
c2f3be1f4d | ||
|
18b1c9d77e | ||
|
4528832026 | ||
|
037cd36ba2 | ||
|
b94fb6a393 | ||
|
b0c05ac2ae | ||
|
15c305caf3 | ||
|
bc1b3e59a7 | ||
|
3c4492c415 | ||
|
fecc0295a2 | ||
|
325dc837c6 | ||
|
5a45cb7f0d | ||
|
21269530e8 | ||
|
fc18e983e7 | ||
|
4a7cc743a9 | ||
|
4398397311 | ||
|
401f9087bc | ||
|
dd3698988e | ||
|
3df49002c2 | ||
|
1bf0aedb9f | ||
|
79accd5a6e | ||
|
422d548fce | ||
|
20ec6e955c | ||
|
406a235cbc | ||
|
4d15e56a38 | ||
|
8693111790 | ||
|
8461a521f2 | ||
|
511e2c5124 | ||
|
749dc3d3cb | ||
|
73c9e38f2c | ||
|
afe8184d3f |
31
.abignore
Normal file
31
.abignore
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
[suppress_function]
|
||||||
|
symbol_version_regexp = LIBVIRT_PRIVATE.*
|
||||||
|
soname_regexp = libvirt\\.so.*
|
||||||
|
|
||||||
|
[suppress_function]
|
||||||
|
symbol_version_regexp = LIBVIRT_ADMIN_PRIVATE.*
|
||||||
|
soname_regexp = libvirt-admin\\.so.*
|
||||||
|
|
||||||
|
[suppress_variable]
|
||||||
|
symbol_version_regexp = LIBVIRT_PRIVATE.*
|
||||||
|
soname_regexp = libvirt\\.so.*
|
||||||
|
|
||||||
|
[suppress_variable]
|
||||||
|
symbol_version_regexp = LIBVIRT_ADMIN_PRIVATE.*
|
||||||
|
soname_regexp = libvirt-admin\\.so.*
|
||||||
|
|
||||||
|
[suppress_function]
|
||||||
|
symbol_version_regexp = .*
|
||||||
|
soname_regexp = libvirt_storage_.*\\.so.*
|
||||||
|
|
||||||
|
[suppress_variable]
|
||||||
|
symbol_version_regexp = .*
|
||||||
|
soname_regexp = libvirt_storage_.*\\.so.*
|
||||||
|
|
||||||
|
[suppress_function]
|
||||||
|
symbol_version_regexp = .*
|
||||||
|
soname_regexp = libvirt_driver_.*\\.so.*
|
||||||
|
|
||||||
|
[suppress_variable]
|
||||||
|
symbol_version_regexp = .*
|
||||||
|
soname_regexp = libvirt_driver_.*\\.so.*
|
@ -0,0 +1,66 @@
|
|||||||
|
From 88c5b9f827779ae6fe5a6f08100a4b6184492a1c Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
|
||||||
|
Date: Tue, 31 Aug 2021 10:59:39 +0100
|
||||||
|
Subject: [PATCH] qemu, xen: add missing deps on virtlockd/virtlogd sockets
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
The QEMU driver uses both virtlogd and virtlockd, while the Xen driver
|
||||||
|
uses virtlockd. The libvirtd.service unit contains deps on the socket
|
||||||
|
units for these services, but these deps were missed in the modular
|
||||||
|
daemons. As a result the virtlockd/virtlogd sockets are not started
|
||||||
|
when the virtqemud/virtxend daemons are started.
|
||||||
|
|
||||||
|
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
|
||||||
|
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||||
|
---
|
||||||
|
src/libxl/virtxend.service.in | 2 ++
|
||||||
|
src/qemu/virtqemud.service.in | 4 ++++
|
||||||
|
2 files changed, 6 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/libxl/virtxend.service.in b/src/libxl/virtxend.service.in
|
||||||
|
index a863917467..19b19ce3e6 100644
|
||||||
|
--- a/src/libxl/virtxend.service.in
|
||||||
|
+++ b/src/libxl/virtxend.service.in
|
||||||
|
@@ -1,6 +1,7 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Virtualization xen daemon
|
||||||
|
Conflicts=libvirtd.service
|
||||||
|
+Requires=virtlockd.socket
|
||||||
|
Requires=virtxend.socket
|
||||||
|
Requires=virtxend-ro.socket
|
||||||
|
Requires=virtxend-admin.socket
|
||||||
|
@@ -25,6 +26,7 @@ KillMode=process
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
+Also=virtlockd.socket
|
||||||
|
Also=virtxend.socket
|
||||||
|
Also=virtxend-ro.socket
|
||||||
|
Also=virtxend-admin.socket
|
||||||
|
diff --git a/src/qemu/virtqemud.service.in b/src/qemu/virtqemud.service.in
|
||||||
|
index 8abc9d3a7f..20e1b43a6e 100644
|
||||||
|
--- a/src/qemu/virtqemud.service.in
|
||||||
|
+++ b/src/qemu/virtqemud.service.in
|
||||||
|
@@ -1,6 +1,8 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Virtualization qemu daemon
|
||||||
|
Conflicts=libvirtd.service
|
||||||
|
+Requires=virtlogd.socket
|
||||||
|
+Requires=virtlockd.socket
|
||||||
|
Requires=virtqemud.socket
|
||||||
|
Requires=virtqemud-ro.socket
|
||||||
|
Requires=virtqemud-admin.socket
|
||||||
|
@@ -42,6 +44,8 @@ LimitMEMLOCK=64M
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
+Also=virtlogd.socket
|
||||||
|
+Also=virtlockd.socket
|
||||||
|
Also=virtqemud.socket
|
||||||
|
Also=virtqemud-ro.socket
|
||||||
|
Also=virtqemud-admin.socket
|
||||||
|
--
|
||||||
|
2.31.1
|
||||||
|
|
81
0002-wireshark-Switch-to-tvb_bytes_to_str.patch
Normal file
81
0002-wireshark-Switch-to-tvb_bytes_to_str.patch
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
From 7e299ba649b1288d529c7595c0e6060c9ae0ff2a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Michal Privoznik <mprivozn@redhat.com>
|
||||||
|
Date: Mon, 29 Nov 2021 09:57:49 +0100
|
||||||
|
Subject: [PATCH 1/2] wireshark: Switch to tvb_bytes_to_str()
|
||||||
|
|
||||||
|
When the dissector sees a byte sequence that is either an opaque
|
||||||
|
data (xdr_opaque) or a byte sequence (xdr_bytes) it formats the
|
||||||
|
bytes as a hex numbers using our own implementation. But
|
||||||
|
wireshark already provides a function for it: tvb_bytes_to_str().
|
||||||
|
NB, the reason why it returns a const string is so that callers
|
||||||
|
don't try to free it - the string is allocated using an allocator
|
||||||
|
which will decide when to free it.
|
||||||
|
|
||||||
|
The wireshark formatter was introduced in wireshark commit of
|
||||||
|
v1.99.2~479 and thus is present in the version we require at
|
||||||
|
least (2.6.0).
|
||||||
|
|
||||||
|
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
|
||||||
|
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
|
||||||
|
---
|
||||||
|
tools/wireshark/src/packet-libvirt.c | 30 ++++++++--------------------
|
||||||
|
1 file changed, 8 insertions(+), 22 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tools/wireshark/src/packet-libvirt.c b/tools/wireshark/src/packet-libvirt.c
|
||||||
|
index f43919b05d..cb922b8070 100644
|
||||||
|
--- a/tools/wireshark/src/packet-libvirt.c
|
||||||
|
+++ b/tools/wireshark/src/packet-libvirt.c
|
||||||
|
@@ -158,24 +158,6 @@ dissect_xdr_string(tvbuff_t *tvb, proto_tree *tree, XDR *xdrs, int hf,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-static const gchar *
|
||||||
|
-format_xdr_bytes(guint8 *bytes, guint32 length)
|
||||||
|
-{
|
||||||
|
- gchar *buf;
|
||||||
|
- guint32 i;
|
||||||
|
-
|
||||||
|
- if (length == 0)
|
||||||
|
- return "";
|
||||||
|
- buf = wmem_alloc(wmem_packet_scope(), length*2 + 1);
|
||||||
|
- for (i = 0; i < length; i++) {
|
||||||
|
- /* We know that buf has enough size to contain
|
||||||
|
- 2 * length + '\0' characters. */
|
||||||
|
- g_snprintf(buf, 2*(length - i) + 1, "%02x", bytes[i]);
|
||||||
|
- buf += 2;
|
||||||
|
- }
|
||||||
|
- return buf - length*2;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
static gboolean
|
||||||
|
dissect_xdr_opaque(tvbuff_t *tvb, proto_tree *tree, XDR *xdrs, int hf,
|
||||||
|
guint32 size)
|
||||||
|
@@ -187,8 +169,10 @@ dissect_xdr_opaque(tvbuff_t *tvb, proto_tree *tree, XDR *xdrs, int hf,
|
||||||
|
val = g_malloc(size);
|
||||||
|
start = xdr_getpos(xdrs);
|
||||||
|
if ((rc = xdr_opaque(xdrs, (caddr_t)val, size))) {
|
||||||
|
- proto_tree_add_bytes_format_value(tree, hf, tvb, start, xdr_getpos(xdrs) - start,
|
||||||
|
- NULL, "%s", format_xdr_bytes(val, size));
|
||||||
|
+ gint len = xdr_getpos(xdrs) - start;
|
||||||
|
+ const char *s = tvb_bytes_to_str(wmem_packet_scope(), tvb, start, len);
|
||||||
|
+
|
||||||
|
+ proto_tree_add_bytes_format_value(tree, hf, tvb, start, len, NULL, "%s", s);
|
||||||
|
} else {
|
||||||
|
proto_tree_add_item(tree, hf_libvirt_unknown, tvb, start, -1, ENC_NA);
|
||||||
|
}
|
||||||
|
@@ -207,8 +191,10 @@ dissect_xdr_bytes(tvbuff_t *tvb, proto_tree *tree, XDR *xdrs, int hf,
|
||||||
|
|
||||||
|
start = xdr_getpos(xdrs);
|
||||||
|
if (xdr_bytes(xdrs, (char **)&val, &length, maxlen)) {
|
||||||
|
- proto_tree_add_bytes_format_value(tree, hf, tvb, start, xdr_getpos(xdrs) - start,
|
||||||
|
- NULL, "%s", format_xdr_bytes(val, length));
|
||||||
|
+ gint len = xdr_getpos(xdrs) - start;
|
||||||
|
+ const char *s = tvb_bytes_to_str(wmem_packet_scope(), tvb, start, len);
|
||||||
|
+
|
||||||
|
+ proto_tree_add_bytes_format_value(tree, hf, tvb, start, len, NULL, "%s", s);
|
||||||
|
/* Seems I can't call xdr_free() for this case.
|
||||||
|
It will raises SEGV by referencing out of bounds call stack */
|
||||||
|
free(val);
|
||||||
|
--
|
||||||
|
2.33.1
|
||||||
|
|
@ -0,0 +1,33 @@
|
|||||||
|
From 010613cfd8dae6d85602a84c5c95b2d441e1b3d1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Michal Privoznik <mprivozn@redhat.com>
|
||||||
|
Date: Mon, 29 Nov 2021 10:20:05 +0100
|
||||||
|
Subject: [PATCH 2/2] wireshark: Drop needless comment in dissect_xdr_bytes()
|
||||||
|
|
||||||
|
In the dissect_xdr_bytes() there's a comment that the string
|
||||||
|
allocated by xdr_bytes() can't be freed using xdr_free(). Well,
|
||||||
|
that is expected because xdr_bytes() used plain calloc() AND the
|
||||||
|
string is not an XDR struct but plain 'char *' type. Passing it
|
||||||
|
to xdr_free() must result in weird things happening.
|
||||||
|
|
||||||
|
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
|
||||||
|
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
|
||||||
|
---
|
||||||
|
tools/wireshark/src/packet-libvirt.c | 2 --
|
||||||
|
1 file changed, 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tools/wireshark/src/packet-libvirt.c b/tools/wireshark/src/packet-libvirt.c
|
||||||
|
index cb922b8070..eeacbcdf0e 100644
|
||||||
|
--- a/tools/wireshark/src/packet-libvirt.c
|
||||||
|
+++ b/tools/wireshark/src/packet-libvirt.c
|
||||||
|
@@ -195,8 +195,6 @@ dissect_xdr_bytes(tvbuff_t *tvb, proto_tree *tree, XDR *xdrs, int hf,
|
||||||
|
const char *s = tvb_bytes_to_str(wmem_packet_scope(), tvb, start, len);
|
||||||
|
|
||||||
|
proto_tree_add_bytes_format_value(tree, hf, tvb, start, len, NULL, "%s", s);
|
||||||
|
- /* Seems I can't call xdr_free() for this case.
|
||||||
|
- It will raises SEGV by referencing out of bounds call stack */
|
||||||
|
free(val);
|
||||||
|
return TRUE;
|
||||||
|
} else {
|
||||||
|
--
|
||||||
|
2.33.1
|
||||||
|
|
@ -0,0 +1,78 @@
|
|||||||
|
From 979d1ba3ae1332bda80cb6eca98e41dc4462a226 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com>
|
||||||
|
Date: Tue, 31 Aug 2021 11:41:55 +0200
|
||||||
|
Subject: [PATCH] tests: virstoragetest: remove tests without backing type
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
As of qemu commit:
|
||||||
|
|
||||||
|
commit 497a30dbb065937d67f6c43af6dd78492e1d6f6d
|
||||||
|
qemu-img: Require -F with -b backing image
|
||||||
|
|
||||||
|
creating images with backing images requires specifying the format.
|
||||||
|
|
||||||
|
Remove tests which do not pass the backing format on the command
|
||||||
|
line.
|
||||||
|
|
||||||
|
Signed-off-by: Ján Tomko <jtomko@redhat.com>
|
||||||
|
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||||
|
---
|
||||||
|
tests/virstoragetest.c | 33 ---------------------------------
|
||||||
|
1 file changed, 33 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tests/virstoragetest.c b/tests/virstoragetest.c
|
||||||
|
index 1b211b60e6..b80818bc7b 100644
|
||||||
|
--- a/tests/virstoragetest.c
|
||||||
|
+++ b/tests/virstoragetest.c
|
||||||
|
@@ -638,30 +638,6 @@ mymain(void)
|
||||||
|
};
|
||||||
|
TEST_CHAIN(abswrap, VIR_STORAGE_FILE_QCOW2, (&wrap, &qcow2, &raw), EXP_PASS);
|
||||||
|
|
||||||
|
- /* Rewrite qcow2 and wrap file to omit backing file type */
|
||||||
|
- virCommandFree(cmd);
|
||||||
|
- cmd = virCommandNewArgList(qemuimg, "rebase", "-u", "-f", "qcow2",
|
||||||
|
- "-b", absraw, "qcow2", NULL);
|
||||||
|
- if (virCommandRun(cmd, NULL) < 0)
|
||||||
|
- ret = -1;
|
||||||
|
-
|
||||||
|
- virCommandFree(cmd);
|
||||||
|
- cmd = virCommandNewArgList(qemuimg, "rebase", "-u", "-f", "qcow2",
|
||||||
|
- "-b", absqcow2, "wrap", NULL);
|
||||||
|
- if (virCommandRun(cmd, NULL) < 0)
|
||||||
|
- ret = -1;
|
||||||
|
-
|
||||||
|
- /* Qcow2 file with raw as absolute backing, backing format omitted */
|
||||||
|
- testFileData wrap_as_raw = {
|
||||||
|
- .expBackingStoreRaw = absqcow2,
|
||||||
|
- .expCapacity = 1024,
|
||||||
|
- .path = abswrap,
|
||||||
|
- .type = VIR_STORAGE_TYPE_FILE,
|
||||||
|
- .format = VIR_STORAGE_FILE_QCOW2,
|
||||||
|
- };
|
||||||
|
- TEST_CHAIN(abswrap, VIR_STORAGE_FILE_QCOW2,
|
||||||
|
- (&wrap_as_raw, &qcow2_as_raw), EXP_FAIL);
|
||||||
|
-
|
||||||
|
/* Rewrite qcow2 to a missing backing file, with backing type */
|
||||||
|
virCommandFree(cmd);
|
||||||
|
cmd = virCommandNewArgList(qemuimg, "rebase", "-u", "-f", "qcow2",
|
||||||
|
@@ -674,15 +650,6 @@ mymain(void)
|
||||||
|
/* Qcow2 file with missing backing file but specified type */
|
||||||
|
TEST_CHAIN(absqcow2, VIR_STORAGE_FILE_QCOW2, (&qcow2), EXP_FAIL);
|
||||||
|
|
||||||
|
- /* Rewrite qcow2 to a missing backing file, without backing type */
|
||||||
|
- virCommandFree(cmd);
|
||||||
|
- cmd = virCommandNewArgList(qemuimg, "rebase", "-u", "-f", "qcow2",
|
||||||
|
- "-b", datadir "/bogus", "qcow2", NULL);
|
||||||
|
- if (virCommandRun(cmd, NULL) < 0)
|
||||||
|
- ret = -1;
|
||||||
|
-
|
||||||
|
- /* Qcow2 file with missing backing file and no specified type */
|
||||||
|
- TEST_CHAIN(absqcow2, VIR_STORAGE_FILE_QCOW2, (&qcow2), EXP_FAIL);
|
||||||
|
|
||||||
|
/* Rewrite qcow2 to use an nbd: protocol as backend */
|
||||||
|
virCommandFree(cmd);
|
||||||
|
--
|
||||||
|
2.33.1
|
||||||
|
|
21
Makefile
21
Makefile
@ -1,21 +0,0 @@
|
|||||||
# Makefile for source rpm: libvirt
|
|
||||||
# $Id$
|
|
||||||
NAME := libvirt
|
|
||||||
SPECFILE = $(firstword $(wildcard *.spec))
|
|
||||||
|
|
||||||
define find-makefile-common
|
|
||||||
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
|
|
||||||
endef
|
|
||||||
|
|
||||||
MAKEFILE_COMMON := $(shell $(find-makefile-common))
|
|
||||||
|
|
||||||
ifeq ($(MAKEFILE_COMMON),)
|
|
||||||
# attempt a checkout
|
|
||||||
define checkout-makefile-common
|
|
||||||
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
|
|
||||||
endef
|
|
||||||
|
|
||||||
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
|
|
||||||
endif
|
|
||||||
|
|
||||||
include $(MAKEFILE_COMMON)
|
|
1259
libvirt.spec
1259
libvirt.spec
File diff suppressed because it is too large
Load Diff
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (libvirt-5.6.0.tar.xz) = 95fe931394fb31288faf73349bb298f08f63cf062f851b9935303145f8166f69128be9360757f0e1845256c14f4d7672843dba0dc6c086b1c3c8bfc035cc8986
|
SHA512 (libvirt-7.6.0.tar.xz) = bad6cc02af071ca909bbbe3c07165e91cad863c9a759b26d9cff6aed6ea5643bc723d2f3c61ad41436dffd4fd50389333d74b131e37eaa54a5071a3ae26df627
|
||||||
|
Loading…
Reference in New Issue
Block a user