From 782468f8e9d1e39c605c9a5b8cdaecb37deec9b3 Mon Sep 17 00:00:00 2001 From: Daniel P. Berrangé Date: Aug 06 2018 13:07:24 +0000 Subject: Update to 4.6.0 release Signed-off-by: Daniel P. Berrangé --- diff --git a/0001-qemu-remove-chardevStdioLogd-param-from-vhostuser-co.patch b/0001-qemu-remove-chardevStdioLogd-param-from-vhostuser-co.patch deleted file mode 100644 index a037d36..0000000 --- a/0001-qemu-remove-chardevStdioLogd-param-from-vhostuser-co.patch +++ /dev/null @@ -1,94 +0,0 @@ -From 4c76266baca407ae4981a180aed45193e50a8ade Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= -Date: Thu, 5 Jul 2018 11:59:22 +0100 -Subject: [PATCH 1/4] qemu: remove chardevStdioLogd param from vhostuser code - path -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The vhostuser network backend is only supported with the UNIX domain -socket chardev backend, so passing around chardevStdioLogd is not -required. - -Signed-off-by: Daniel P. Berrangé ---- - src/qemu/qemu_command.c | 20 +++++++------------- - 1 file changed, 7 insertions(+), 13 deletions(-) - -diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c -index 04c5c28438..9351b9fddb 100644 ---- a/src/qemu/qemu_command.c -+++ b/src/qemu/qemu_command.c -@@ -8195,8 +8195,7 @@ qemuBuildVhostuserCommandLine(virQEMUDriverPtr driver, - virDomainDefPtr def, - virDomainNetDefPtr net, - virQEMUCapsPtr qemuCaps, -- unsigned int bootindex, -- bool chardevStdioLogd) -+ unsigned int bootindex) - { - virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver); - char *chardev = NULL; -@@ -8217,7 +8216,7 @@ qemuBuildVhostuserCommandLine(virQEMUDriverPtr driver, - cmd, cfg, def, - net->data.vhostuser, - net->info.alias, qemuCaps, false, -- chardevStdioLogd))) -+ false))) - goto cleanup; - break; - -@@ -8291,8 +8290,7 @@ qemuBuildInterfaceCommandLine(virQEMUDriverPtr driver, - virNetDevVPortProfileOp vmop, - bool standalone, - size_t *nnicindexes, -- int **nicindexes, -- bool chardevStdioLogd) -+ int **nicindexes) - { - int ret = -1; - char *nic = NULL, *host = NULL; -@@ -8415,8 +8413,7 @@ qemuBuildInterfaceCommandLine(virQEMUDriverPtr driver, - - case VIR_DOMAIN_NET_TYPE_VHOSTUSER: - ret = qemuBuildVhostuserCommandLine(driver, logManager, secManager, cmd, def, -- net, qemuCaps, bootindex, -- chardevStdioLogd); -+ net, qemuCaps, bootindex); - goto cleanup; - break; - -@@ -8600,8 +8597,7 @@ qemuBuildNetCommandLine(virQEMUDriverPtr driver, - bool standalone, - size_t *nnicindexes, - int **nicindexes, -- unsigned int *bootHostdevNet, -- bool chardevStdioLogd) -+ unsigned int *bootHostdevNet) - { - size_t i; - int last_good_net = -1; -@@ -8628,8 +8624,7 @@ qemuBuildNetCommandLine(virQEMUDriverPtr driver, - if (qemuBuildInterfaceCommandLine(driver, logManager, secManager, cmd, def, net, - qemuCaps, bootNet, vmop, - standalone, nnicindexes, -- nicindexes, -- chardevStdioLogd) < 0) -+ nicindexes) < 0) - goto error; - - last_good_net = i; -@@ -10290,8 +10285,7 @@ qemuBuildCommandLine(virQEMUDriverPtr driver, - - if (qemuBuildNetCommandLine(driver, logManager, secManager, cmd, def, - qemuCaps, vmop, standalone, -- nnicindexes, nicindexes, &bootHostdevNet, -- chardevStdioLogd) < 0) -+ nnicindexes, nicindexes, &bootHostdevNet) < 0) - goto error; - - if (qemuBuildSmartcardCommandLine(logManager, secManager, cmd, cfg, def, qemuCaps, --- -2.17.1 - diff --git a/0002-qemu-consolidate-parameters-of-qemuBuildChrChardevSt.patch b/0002-qemu-consolidate-parameters-of-qemuBuildChrChardevSt.patch deleted file mode 100644 index d874344..0000000 --- a/0002-qemu-consolidate-parameters-of-qemuBuildChrChardevSt.patch +++ /dev/null @@ -1,308 +0,0 @@ -From 0140d4c59b7fb26432b520bb7e85bd6834f560b0 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= -Date: Wed, 4 Jul 2018 14:20:40 +0100 -Subject: [PATCH 2/4] qemu: consolidate parameters of qemuBuildChrChardevStr - into flags -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -There are two boolean parameters passed to qemuBuildChrChardevStr, -and soon there will be a third. It will be clearer to understand -from callers' POV if we use named flags instead. - -Signed-off-by: Daniel P. Berrangé ---- - src/qemu/qemu_command.c | 94 ++++++++++++++++++++++++++--------------- - 1 file changed, 61 insertions(+), 33 deletions(-) - -diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c -index 9351b9fddb..63c7ac0f82 100644 ---- a/src/qemu/qemu_command.c -+++ b/src/qemu/qemu_command.c -@@ -4935,6 +4935,12 @@ qemuOpenChrChardevUNIXSocket(const virDomainChrSourceDef *dev) - return -1; - } - -+ -+enum { -+ QEMU_BUILD_CHARDEV_TCP_NOWAIT = (1 << 0), -+ QEMU_BUILD_CHARDEV_FILE_LOGD = (1 << 1), -+}; -+ - /* This function outputs a -chardev command line option which describes only the - * host side of the character device */ - static char * -@@ -4946,8 +4952,7 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager, - const virDomainChrSourceDef *dev, - const char *alias, - virQEMUCapsPtr qemuCaps, -- bool nowait, -- bool chardevStdioLogd) -+ unsigned int flags) - { - virBuffer buf = VIR_BUFFER_INITIALIZER; - bool telnet; -@@ -4986,7 +4991,8 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager, - _("append not supported in this QEMU binary")); - goto cleanup; - } -- if (qemuBuildChrChardevFileStr(chardevStdioLogd ? logManager : NULL, -+ if (qemuBuildChrChardevFileStr(flags & QEMU_BUILD_CHARDEV_FILE_LOGD ? -+ logManager : NULL, - cmd, def, &buf, - "path", dev->data.file.path, - "append", dev->data.file.append) < 0) -@@ -5032,8 +5038,11 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager, - dev->data.tcp.service, - telnet ? ",telnet" : ""); - -- if (dev->data.tcp.listen) -- virBufferAdd(&buf, nowait ? ",server,nowait" : ",server", -1); -+ if (dev->data.tcp.listen) { -+ virBufferAddLit(&buf, ",server"); -+ if (flags & QEMU_BUILD_CHARDEV_TCP_NOWAIT) -+ virBufferAddLit(&buf, ",nowait"); -+ } - - qemuBuildChrChardevReconnectStr(&buf, &dev->data.tcp.reconnect); - -@@ -5091,8 +5100,11 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager, - virBufferAsprintf(&buf, "socket,id=%s,path=", charAlias); - virQEMUBuildBufferEscapeComma(&buf, dev->data.nix.path); - } -- if (dev->data.nix.listen) -- virBufferAdd(&buf, nowait ? ",server,nowait" : ",server", -1); -+ if (dev->data.nix.listen) { -+ virBufferAddLit(&buf, ",server"); -+ if (flags & QEMU_BUILD_CHARDEV_TCP_NOWAIT) -+ virBufferAddLit(&buf, ",nowait"); -+ } - - qemuBuildChrChardevReconnectStr(&buf, &dev->data.nix.reconnect); - break; -@@ -5426,6 +5438,9 @@ qemuBuildMonitorCommandLine(virLogManagerPtr logManager, - qemuDomainObjPrivatePtr priv) - { - char *chrdev; -+ unsigned int cdevflags = QEMU_BUILD_CHARDEV_TCP_NOWAIT; -+ if (priv->chardevStdioLogd) -+ cdevflags |= QEMU_BUILD_CHARDEV_FILE_LOGD; - - if (!priv->monConfig) - return 0; -@@ -5433,8 +5448,7 @@ qemuBuildMonitorCommandLine(virLogManagerPtr logManager, - if (!(chrdev = qemuBuildChrChardevStr(logManager, secManager, - cmd, cfg, def, - priv->monConfig, "monitor", -- priv->qemuCaps, true, -- priv->chardevStdioLogd))) -+ priv->qemuCaps, cdevflags))) - return -1; - virCommandAddArg(cmd, "-chardev"); - virCommandAddArg(cmd, chrdev); -@@ -5559,6 +5573,9 @@ qemuBuildRNGBackendChrdevStr(virLogManagerPtr logManager, - char **chr, - bool chardevStdioLogd) - { -+ unsigned int cdevflags = QEMU_BUILD_CHARDEV_TCP_NOWAIT; -+ if (chardevStdioLogd) -+ cdevflags |= QEMU_BUILD_CHARDEV_FILE_LOGD; - *chr = NULL; - - switch ((virDomainRNGBackend) rng->backend) { -@@ -5571,8 +5588,8 @@ qemuBuildRNGBackendChrdevStr(virLogManagerPtr logManager, - if (!(*chr = qemuBuildChrChardevStr(logManager, secManager, - cmd, cfg, def, - rng->source.chardev, -- rng->info.alias, qemuCaps, true, -- chardevStdioLogd))) -+ rng->info.alias, qemuCaps, -+ cdevflags))) - return -1; - } - -@@ -8215,8 +8232,7 @@ qemuBuildVhostuserCommandLine(virQEMUDriverPtr driver, - if (!(chardev = qemuBuildChrChardevStr(logManager, secManager, - cmd, cfg, def, - net->data.vhostuser, -- net->info.alias, qemuCaps, false, -- false))) -+ net->info.alias, qemuCaps, 0))) - goto cleanup; - break; - -@@ -8696,6 +8712,9 @@ qemuBuildSmartcardCommandLine(virLogManagerPtr logManager, - virBuffer opt = VIR_BUFFER_INITIALIZER; - const char *database; - const char *contAlias = NULL; -+ unsigned int cdevflags = QEMU_BUILD_CHARDEV_TCP_NOWAIT; -+ if (chardevStdioLogd) -+ cdevflags |= QEMU_BUILD_CHARDEV_FILE_LOGD; - - if (!def->nsmartcards) - return 0; -@@ -8761,8 +8780,7 @@ qemuBuildSmartcardCommandLine(virLogManagerPtr logManager, - cmd, cfg, def, - smartcard->data.passthru, - smartcard->info.alias, -- qemuCaps, true, -- chardevStdioLogd))) { -+ qemuCaps, cdevflags))) { - virBufferFreeAndReset(&opt); - return -1; - } -@@ -8930,6 +8948,9 @@ qemuBuildShmemCommandLine(virLogManagerPtr logManager, - virBuffer buf = VIR_BUFFER_INITIALIZER; - char *devstr = NULL; - int rc; -+ unsigned int cdevflags = QEMU_BUILD_CHARDEV_TCP_NOWAIT; -+ if (chardevStdioLogd) -+ cdevflags |= QEMU_BUILD_CHARDEV_FILE_LOGD; - - if (shmem->size) { - /* -@@ -8993,8 +9014,8 @@ qemuBuildShmemCommandLine(virLogManagerPtr logManager, - devstr = qemuBuildChrChardevStr(logManager, secManager, - cmd, cfg, def, - &shmem->server.chr, -- shmem->info.alias, qemuCaps, true, -- chardevStdioLogd); -+ shmem->info.alias, qemuCaps, -+ cdevflags); - if (!devstr) - return -1; - -@@ -9087,6 +9108,9 @@ qemuBuildSerialCommandLine(virLogManagerPtr logManager, - { - size_t i; - bool havespice = false; -+ unsigned int cdevflags = QEMU_BUILD_CHARDEV_TCP_NOWAIT; -+ if (chardevStdioLogd) -+ cdevflags |= QEMU_BUILD_CHARDEV_FILE_LOGD; - - if (def->nserials) { - for (i = 0; i < def->ngraphics && !havespice; i++) { -@@ -9106,8 +9130,7 @@ qemuBuildSerialCommandLine(virLogManagerPtr logManager, - cmd, cfg, def, - serial->source, - serial->info.alias, -- qemuCaps, true, -- chardevStdioLogd))) -+ qemuCaps, cdevflags))) - return -1; - virCommandAddArg(cmd, "-chardev"); - virCommandAddArg(cmd, devstr); -@@ -9148,6 +9171,9 @@ qemuBuildParallelsCommandLine(virLogManagerPtr logManager, - bool chardevStdioLogd) - { - size_t i; -+ unsigned int cdevflags = QEMU_BUILD_CHARDEV_TCP_NOWAIT; -+ if (chardevStdioLogd) -+ cdevflags |= QEMU_BUILD_CHARDEV_FILE_LOGD; - - for (i = 0; i < def->nparallels; i++) { - virDomainChrDefPtr parallel = def->parallels[i]; -@@ -9157,8 +9183,7 @@ qemuBuildParallelsCommandLine(virLogManagerPtr logManager, - cmd, cfg, def, - parallel->source, - parallel->info.alias, -- qemuCaps, true, -- chardevStdioLogd))) -+ qemuCaps, cdevflags))) - return -1; - virCommandAddArg(cmd, "-chardev"); - virCommandAddArg(cmd, devstr); -@@ -9183,6 +9208,9 @@ qemuBuildChannelsCommandLine(virLogManagerPtr logManager, - bool chardevStdioLogd) - { - size_t i; -+ unsigned int cdevflags = QEMU_BUILD_CHARDEV_TCP_NOWAIT; -+ if (chardevStdioLogd) -+ cdevflags |= QEMU_BUILD_CHARDEV_FILE_LOGD; - - for (i = 0; i < def->nchannels; i++) { - virDomainChrDefPtr channel = def->channels[i]; -@@ -9194,8 +9222,7 @@ qemuBuildChannelsCommandLine(virLogManagerPtr logManager, - cmd, cfg, def, - channel->source, - channel->info.alias, -- qemuCaps, true, -- chardevStdioLogd))) -+ qemuCaps, cdevflags))) - return -1; - virCommandAddArg(cmd, "-chardev"); - virCommandAddArg(cmd, devstr); -@@ -9212,8 +9239,7 @@ qemuBuildChannelsCommandLine(virLogManagerPtr logManager, - cmd, cfg, def, - channel->source, - channel->info.alias, -- qemuCaps, true, -- chardevStdioLogd))) -+ qemuCaps, cdevflags))) - return -1; - virCommandAddArg(cmd, "-chardev"); - virCommandAddArg(cmd, devstr); -@@ -9239,6 +9265,9 @@ qemuBuildConsoleCommandLine(virLogManagerPtr logManager, - bool chardevStdioLogd) - { - size_t i; -+ unsigned int cdevflags = QEMU_BUILD_CHARDEV_TCP_NOWAIT; -+ if (chardevStdioLogd) -+ cdevflags |= QEMU_BUILD_CHARDEV_FILE_LOGD; - - /* Explicit console devices */ - for (i = 0; i < def->nconsoles; i++) { -@@ -9257,8 +9286,7 @@ qemuBuildConsoleCommandLine(virLogManagerPtr logManager, - cmd, cfg, def, - console->source, - console->info.alias, -- qemuCaps, true, -- chardevStdioLogd))) -+ qemuCaps, cdevflags))) - return -1; - virCommandAddArg(cmd, "-chardev"); - virCommandAddArg(cmd, devstr); -@@ -9279,8 +9307,7 @@ qemuBuildConsoleCommandLine(virLogManagerPtr logManager, - cmd, cfg, def, - console->source, - console->info.alias, -- qemuCaps, true, -- chardevStdioLogd))) -+ qemuCaps, cdevflags))) - return -1; - virCommandAddArg(cmd, "-chardev"); - virCommandAddArg(cmd, devstr); -@@ -9295,8 +9322,7 @@ qemuBuildConsoleCommandLine(virLogManagerPtr logManager, - cmd, cfg, def, - console->source, - console->info.alias, -- qemuCaps, true, -- chardevStdioLogd))) -+ qemuCaps, cdevflags))) - return -1; - virCommandAddArg(cmd, "-chardev"); - virCommandAddArg(cmd, devstr); -@@ -9419,6 +9445,9 @@ qemuBuildRedirdevCommandLine(virLogManagerPtr logManager, - bool chardevStdioLogd) - { - size_t i; -+ unsigned int cdevflags = QEMU_BUILD_CHARDEV_TCP_NOWAIT; -+ if (chardevStdioLogd) -+ cdevflags |= QEMU_BUILD_CHARDEV_FILE_LOGD; - - for (i = 0; i < def->nredirdevs; i++) { - virDomainRedirdevDefPtr redirdev = def->redirdevs[i]; -@@ -9428,8 +9457,7 @@ qemuBuildRedirdevCommandLine(virLogManagerPtr logManager, - cmd, cfg, def, - redirdev->source, - redirdev->info.alias, -- qemuCaps, true, -- chardevStdioLogd))) { -+ qemuCaps, cdevflags))) { - return -1; - } - --- -2.17.1 - diff --git a/0003-qemu-don-t-use-chardev-FD-passing-for-vhostuser-back.patch b/0003-qemu-don-t-use-chardev-FD-passing-for-vhostuser-back.patch deleted file mode 100644 index ee97a05..0000000 --- a/0003-qemu-don-t-use-chardev-FD-passing-for-vhostuser-back.patch +++ /dev/null @@ -1,166 +0,0 @@ -From ed5aa85f371aebb0103e712f9a103d011ab9ae43 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= -Date: Wed, 4 Jul 2018 14:28:14 +0100 -Subject: [PATCH 3/4] qemu: don't use chardev FD passing for vhostuser backend -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -QEMU chardevs have a bug which makes the vhostuser backend complain -about lack of support for FD passing when validating the chardev. -While this is ultimately QEMU's responsibility to fix, libvirt needs to -avoid tickling the bug. - -Simply disabling chardev FD passing just for vhostuser's chardev is -the most prudent approach, avoiding need for a QEMU version number -check. - -Signed-off-by: Daniel P. Berrangé ---- - src/qemu/qemu_command.c | 31 +++++++++++++++-------- - tests/qemuxml2argvdata/net-vhostuser.args | 3 +-- - tests/qemuxml2argvtest.c | 2 +- - 3 files changed, 23 insertions(+), 13 deletions(-) - -diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c -index 63c7ac0f82..82d8030a33 100644 ---- a/src/qemu/qemu_command.c -+++ b/src/qemu/qemu_command.c -@@ -4939,6 +4939,7 @@ qemuOpenChrChardevUNIXSocket(const virDomainChrSourceDef *dev) - enum { - QEMU_BUILD_CHARDEV_TCP_NOWAIT = (1 << 0), - QEMU_BUILD_CHARDEV_FILE_LOGD = (1 << 1), -+ QEMU_BUILD_CHARDEV_UNIX_FD_PASS = (1 << 2), - }; - - /* This function outputs a -chardev command line option which describes only the -@@ -5082,7 +5083,8 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager, - break; - - case VIR_DOMAIN_CHR_TYPE_UNIX: -- if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_CHARDEV_FD_PASS)) { -+ if ((flags & QEMU_BUILD_CHARDEV_UNIX_FD_PASS) && -+ virQEMUCapsGet(qemuCaps, QEMU_CAPS_CHARDEV_FD_PASS)) { - if (qemuSecuritySetSocketLabel(secManager, (virDomainDefPtr)def) < 0) - goto cleanup; - int fd = qemuOpenChrChardevUNIXSocket(dev); -@@ -5438,7 +5440,8 @@ qemuBuildMonitorCommandLine(virLogManagerPtr logManager, - qemuDomainObjPrivatePtr priv) - { - char *chrdev; -- unsigned int cdevflags = QEMU_BUILD_CHARDEV_TCP_NOWAIT; -+ unsigned int cdevflags = QEMU_BUILD_CHARDEV_TCP_NOWAIT | -+ QEMU_BUILD_CHARDEV_UNIX_FD_PASS; - if (priv->chardevStdioLogd) - cdevflags |= QEMU_BUILD_CHARDEV_FILE_LOGD; - -@@ -5573,7 +5576,8 @@ qemuBuildRNGBackendChrdevStr(virLogManagerPtr logManager, - char **chr, - bool chardevStdioLogd) - { -- unsigned int cdevflags = QEMU_BUILD_CHARDEV_TCP_NOWAIT; -+ unsigned int cdevflags = QEMU_BUILD_CHARDEV_TCP_NOWAIT | -+ QEMU_BUILD_CHARDEV_UNIX_FD_PASS; - if (chardevStdioLogd) - cdevflags |= QEMU_BUILD_CHARDEV_FILE_LOGD; - *chr = NULL; -@@ -8712,7 +8716,8 @@ qemuBuildSmartcardCommandLine(virLogManagerPtr logManager, - virBuffer opt = VIR_BUFFER_INITIALIZER; - const char *database; - const char *contAlias = NULL; -- unsigned int cdevflags = QEMU_BUILD_CHARDEV_TCP_NOWAIT; -+ unsigned int cdevflags = QEMU_BUILD_CHARDEV_TCP_NOWAIT | -+ QEMU_BUILD_CHARDEV_UNIX_FD_PASS; - if (chardevStdioLogd) - cdevflags |= QEMU_BUILD_CHARDEV_FILE_LOGD; - -@@ -8948,7 +8953,8 @@ qemuBuildShmemCommandLine(virLogManagerPtr logManager, - virBuffer buf = VIR_BUFFER_INITIALIZER; - char *devstr = NULL; - int rc; -- unsigned int cdevflags = QEMU_BUILD_CHARDEV_TCP_NOWAIT; -+ unsigned int cdevflags = QEMU_BUILD_CHARDEV_TCP_NOWAIT | -+ QEMU_BUILD_CHARDEV_UNIX_FD_PASS; - if (chardevStdioLogd) - cdevflags |= QEMU_BUILD_CHARDEV_FILE_LOGD; - -@@ -9108,7 +9114,8 @@ qemuBuildSerialCommandLine(virLogManagerPtr logManager, - { - size_t i; - bool havespice = false; -- unsigned int cdevflags = QEMU_BUILD_CHARDEV_TCP_NOWAIT; -+ unsigned int cdevflags = QEMU_BUILD_CHARDEV_TCP_NOWAIT | -+ QEMU_BUILD_CHARDEV_UNIX_FD_PASS; - if (chardevStdioLogd) - cdevflags |= QEMU_BUILD_CHARDEV_FILE_LOGD; - -@@ -9171,7 +9178,8 @@ qemuBuildParallelsCommandLine(virLogManagerPtr logManager, - bool chardevStdioLogd) - { - size_t i; -- unsigned int cdevflags = QEMU_BUILD_CHARDEV_TCP_NOWAIT; -+ unsigned int cdevflags = QEMU_BUILD_CHARDEV_TCP_NOWAIT | -+ QEMU_BUILD_CHARDEV_UNIX_FD_PASS; - if (chardevStdioLogd) - cdevflags |= QEMU_BUILD_CHARDEV_FILE_LOGD; - -@@ -9208,7 +9216,8 @@ qemuBuildChannelsCommandLine(virLogManagerPtr logManager, - bool chardevStdioLogd) - { - size_t i; -- unsigned int cdevflags = QEMU_BUILD_CHARDEV_TCP_NOWAIT; -+ unsigned int cdevflags = QEMU_BUILD_CHARDEV_TCP_NOWAIT | -+ QEMU_BUILD_CHARDEV_UNIX_FD_PASS; - if (chardevStdioLogd) - cdevflags |= QEMU_BUILD_CHARDEV_FILE_LOGD; - -@@ -9265,7 +9274,8 @@ qemuBuildConsoleCommandLine(virLogManagerPtr logManager, - bool chardevStdioLogd) - { - size_t i; -- unsigned int cdevflags = QEMU_BUILD_CHARDEV_TCP_NOWAIT; -+ unsigned int cdevflags = QEMU_BUILD_CHARDEV_TCP_NOWAIT | -+ QEMU_BUILD_CHARDEV_UNIX_FD_PASS; - if (chardevStdioLogd) - cdevflags |= QEMU_BUILD_CHARDEV_FILE_LOGD; - -@@ -9445,7 +9455,8 @@ qemuBuildRedirdevCommandLine(virLogManagerPtr logManager, - bool chardevStdioLogd) - { - size_t i; -- unsigned int cdevflags = QEMU_BUILD_CHARDEV_TCP_NOWAIT; -+ unsigned int cdevflags = QEMU_BUILD_CHARDEV_TCP_NOWAIT | -+ QEMU_BUILD_CHARDEV_UNIX_FD_PASS; - if (chardevStdioLogd) - cdevflags |= QEMU_BUILD_CHARDEV_FILE_LOGD; - -diff --git a/tests/qemuxml2argvdata/net-vhostuser.args b/tests/qemuxml2argvdata/net-vhostuser.args -index fc4557a1f2..513fc535ab 100644 ---- a/tests/qemuxml2argvdata/net-vhostuser.args -+++ b/tests/qemuxml2argvdata/net-vhostuser.args -@@ -14,8 +14,7 @@ QEMU_AUDIO_DRV=none \ - -display none \ - -no-user-config \ - -nodefaults \ ---chardev socket,id=charmonitor,path=/tmp/lib/domain--1-QEMUGuest1/monitor.sock,\ --server,nowait \ -+-chardev socket,id=charmonitor,fd=1729,server,nowait \ - -mon chardev=charmonitor,id=monitor,mode=control \ - -rtc base=utc \ - -no-shutdown \ -diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c -index d6911f9344..2d52f352b0 100644 ---- a/tests/qemuxml2argvtest.c -+++ b/tests/qemuxml2argvtest.c -@@ -1266,7 +1266,7 @@ mymain(void) - DO_TEST("misc-no-reboot", NONE); - DO_TEST("misc-uuid", NONE); - DO_TEST_PARSE_ERROR("vhost_queues-invalid", NONE); -- DO_TEST("net-vhostuser", NONE); -+ DO_TEST("net-vhostuser", QEMU_CAPS_CHARDEV_FD_PASS); - DO_TEST("net-vhostuser-multiq", - QEMU_CAPS_VHOSTUSER_MULTIQUEUE); - DO_TEST_FAILURE("net-vhostuser-multiq", NONE); --- -2.17.1 - diff --git a/0004-qemu-fix-UNIX-socket-chardevs-operating-in-client-mo.patch b/0004-qemu-fix-UNIX-socket-chardevs-operating-in-client-mo.patch deleted file mode 100644 index 91fc15f..0000000 --- a/0004-qemu-fix-UNIX-socket-chardevs-operating-in-client-mo.patch +++ /dev/null @@ -1,123 +0,0 @@ -From 1dd55b2fcddecf22a046b1df069b55fdfe17af76 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= -Date: Fri, 6 Jul 2018 11:00:11 +0100 -Subject: [PATCH 4/4] qemu: fix UNIX socket chardevs operating in client mode -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -When support was adding for passing a pre-opened listener socket to UNIX -chardevs, it accidentally passed the listener socket for client mode -chardevs too with predictable amounts of fail resulting. - -Expand the unit test coverage to validate that we are only doing FD -passing when operating in server mode. - -Reported-by: Richard W.M. Jones -Signed-off-by: Daniel P. Berrangé ---- - src/qemu/qemu_command.c | 3 +- - .../qemuxml2argvdata/serial-unix-chardev.args | 2 ++ - .../serial-unix-chardev.x86_64-latest.args | 36 +++++++++++++++++++ - .../qemuxml2argvdata/serial-unix-chardev.xml | 4 +++ - tests/qemuxml2argvtest.c | 1 + - 5 files changed, 45 insertions(+), 1 deletion(-) - create mode 100644 tests/qemuxml2argvdata/serial-unix-chardev.x86_64-latest.args - -diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c -index 82d8030a33..32eb59b6ab 100644 ---- a/src/qemu/qemu_command.c -+++ b/src/qemu/qemu_command.c -@@ -5083,7 +5083,8 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager, - break; - - case VIR_DOMAIN_CHR_TYPE_UNIX: -- if ((flags & QEMU_BUILD_CHARDEV_UNIX_FD_PASS) && -+ if (dev->data.nix.listen && -+ (flags & QEMU_BUILD_CHARDEV_UNIX_FD_PASS) && - virQEMUCapsGet(qemuCaps, QEMU_CAPS_CHARDEV_FD_PASS)) { - if (qemuSecuritySetSocketLabel(secManager, (virDomainDefPtr)def) < 0) - goto cleanup; -diff --git a/tests/qemuxml2argvdata/serial-unix-chardev.args b/tests/qemuxml2argvdata/serial-unix-chardev.args -index 584f4a1dd1..873d3263c6 100644 ---- a/tests/qemuxml2argvdata/serial-unix-chardev.args -+++ b/tests/qemuxml2argvdata/serial-unix-chardev.args -@@ -26,4 +26,6 @@ server,nowait \ - -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ - -chardev socket,id=charserial0,path=/tmp/serial.sock \ - -device isa-serial,chardev=charserial0,id=serial0 \ -+-chardev socket,id=charserial1,path=/tmp/serial-server.sock,server,nowait \ -+-device isa-serial,chardev=charserial1,id=serial1 \ - -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 -diff --git a/tests/qemuxml2argvdata/serial-unix-chardev.x86_64-latest.args b/tests/qemuxml2argvdata/serial-unix-chardev.x86_64-latest.args -new file mode 100644 -index 0000000000..ce7a7f80d7 ---- /dev/null -+++ b/tests/qemuxml2argvdata/serial-unix-chardev.x86_64-latest.args -@@ -0,0 +1,36 @@ -+LC_ALL=C \ -+PATH=/bin \ -+HOME=/home/test \ -+USER=test \ -+LOGNAME=test \ -+QEMU_AUDIO_DRV=none \ -+/usr/bin/qemu-system-i686 \ -+-name guest=QEMUGuest1,debug-threads=on \ -+-S \ -+-object secret,id=masterKey0,format=raw,\ -+file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ -+-machine pc,accel=tcg,usb=off,dump-guest-core=off \ -+-m 214 \ -+-realtime mlock=off \ -+-smp 1,sockets=1,cores=1,threads=1 \ -+-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ -+-display none \ -+-no-user-config \ -+-nodefaults \ -+-chardev socket,id=charmonitor,fd=1729,server,nowait \ -+-mon chardev=charmonitor,id=monitor,mode=control \ -+-rtc base=utc \ -+-no-shutdown \ -+-no-acpi \ -+-boot strict=on \ -+-device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \ -+-drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -+-device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \ -+-chardev socket,id=charserial0,path=/tmp/serial.sock \ -+-device isa-serial,chardev=charserial0,id=serial0 \ -+-chardev socket,id=charserial1,fd=1729,server,nowait \ -+-device isa-serial,chardev=charserial1,id=serial1 \ -+-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x2 \ -+-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\ -+resourcecontrol=deny \ -+-msg timestamp=on -diff --git a/tests/qemuxml2argvdata/serial-unix-chardev.xml b/tests/qemuxml2argvdata/serial-unix-chardev.xml -index 04f83779ce..af513d6445 100644 ---- a/tests/qemuxml2argvdata/serial-unix-chardev.xml -+++ b/tests/qemuxml2argvdata/serial-unix-chardev.xml -@@ -25,6 +25,10 @@ - - - -+ -+ -+ -+ - - - -diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c -index 2d52f352b0..3be5af03aa 100644 ---- a/tests/qemuxml2argvtest.c -+++ b/tests/qemuxml2argvtest.c -@@ -1335,6 +1335,7 @@ mymain(void) - QEMU_CAPS_CHARDEV_FILE_APPEND); - DO_TEST("serial-unix-chardev", - QEMU_CAPS_DEVICE_ISA_SERIAL); -+ DO_TEST_CAPS_LATEST("serial-unix-chardev"); - DO_TEST("serial-tcp-chardev", - QEMU_CAPS_DEVICE_ISA_SERIAL); - DO_TEST("serial-udp-chardev", --- -2.17.1 - diff --git a/libvirt.spec b/libvirt.spec index 2a9a511..0dc6d0b 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -3,7 +3,7 @@ # This spec file assumes you are building on a Fedora or RHEL version # that's still supported by the vendor. It may work on other distros # or versions, but no effort will be made to ensure that going forward. -%define min_rhel 6 +%define min_rhel 7 %define min_fedora 26 %if (0%{?fedora} && 0%{?fedora} >= %{min_fedora}) || (0%{?rhel} && 0%{?rhel} >= %{min_rhel}) @@ -34,10 +34,7 @@ %if 0%{?rhel} %define with_qemu_tcg 0 - %define qemu_kvm_arches x86_64 - %if 0%{?rhel} >= 7 - %define qemu_kvm_arches x86_64 %{power64} aarch64 s390x - %endif + %define qemu_kvm_arches x86_64 %{power64} aarch64 s390x %endif %ifarch %{qemu_kvm_arches} @@ -58,11 +55,7 @@ %define with_hyperv 0%{!?_without_hyperv:1} # Then the secondary host drivers, which run inside libvirtd -%if 0%{?fedora} || 0%{?rhel} >= 7 - %define with_storage_rbd 0%{!?_without_storage_rbd:1} -%else - %define with_storage_rbd 0 -%endif +%define with_storage_rbd 0%{!?_without_storage_rbd:1} %if 0%{?fedora} %define with_storage_sheepdog 0%{!?_without_storage_sheepdog:1} %else @@ -80,16 +73,13 @@ # A few optional bits off by default, we enable later %define with_fuse 0%{!?_without_fuse:0} -%define with_cgconfig 0%{!?_without_cgconfig:0} %define with_sanlock 0%{!?_without_sanlock:0} -%define with_systemd 0%{!?_without_systemd:0} %define with_numad 0%{!?_without_numad:0} %define with_firewalld 0%{!?_without_firewalld:0} %define with_libssh2 0%{!?_without_libssh2:0} %define with_wireshark 0%{!?_without_wireshark:0} %define with_libssh 0%{!?_without_libssh:0} %define with_bash_completion 0%{!?_without_bash_completion:0} -%define with_pm_utils 1 # Finally set the OS / architecture specific special cases @@ -117,7 +107,7 @@ # librados and librbd are built only on x86_64 on rhel %ifnarch x86_64 - %if 0%{?rhel} >= 7 + %if 0%{?rhel} %define with_storage_rbd 0 %endif %endif @@ -147,20 +137,10 @@ %endif %endif -# Fedora 17 / RHEL-7 are first where we use systemd. Although earlier -# Fedora has systemd, libvirt still used sysvinit there. -%if 0%{?fedora} || 0%{?rhel} >= 7 - %define with_systemd 1 - %define with_pm_utils 0 -%endif - -# Fedora 18 / RHEL-7 are first where firewalld support is enabled -%if 0%{?fedora} || 0%{?rhel} >= 7 - %define with_firewalld 1 -%endif +%define with_firewalld 1 # fuse is used to provide virtualized /proc for LXC -%if %{with_lxc} && 0%{?rhel} != 6 +%if %{with_lxc} %define with_fuse 0%{!?_without_fuse:1} %endif @@ -195,10 +175,7 @@ %define with_libssh 0%{!?_without_libssh:1} %endif -# Enable bash-completion for new enough distros -%if 0%{?fedora} || 0%{?rhel} >= 7 - %define with_bash_completion 0%{!?_without_bash_completion:1} -%endif +%define with_bash_completion 0%{!?_without_bash_completion:1} # Use Python 3 when possible, Python 2 otherwise %if 0%{?fedora} || 0%{?rhel} > 7 @@ -216,23 +193,11 @@ %endif %endif -# Pull in cgroups config system -%if %{with_qemu} || %{with_lxc} - %define with_cgconfig 0%{!?_without_cgconfig:1} -%endif - # Force QEMU to run as non-root %define qemu_user qemu %define qemu_group qemu -%if 0%{?fedora} || 0%{?rhel} >= 7 - %define with_systemd_macros 1 -%else - %define with_systemd_macros 0 -%endif - - # RHEL releases provide stable tool chains and so it is safe to turn # compiler warning into errors without being worried about frequent # changes in reported warnings @@ -251,8 +216,8 @@ Summary: Library providing a simple virtualization API Name: libvirt -Version: 4.5.0 -Release: 3%{?dist}%{?extra_release} +Version: 4.6.0 +Release: 1%{?dist}%{?extra_release} License: LGPLv2+ URL: https://libvirt.org/ @@ -260,10 +225,6 @@ URL: https://libvirt.org/ %define mainturl stable_updates/ %endif Source: https://libvirt.org/sources/%{?mainturl}libvirt-%{version}.tar.xz -Patch1: 0001-qemu-remove-chardevStdioLogd-param-from-vhostuser-co.patch -Patch2: 0002-qemu-consolidate-parameters-of-qemuBuildChrChardevSt.patch -Patch3: 0003-qemu-don-t-use-chardev-FD-passing-for-vhostuser-back.patch -Patch4: 0004-qemu-fix-UNIX-socket-chardevs-operating-in-client-mo.patch Requires: libvirt-daemon = %{version}-%{release} Requires: libvirt-daemon-config-network = %{version}-%{release} @@ -310,9 +271,7 @@ BuildRequires: perl-interpreter BuildRequires: perl %endif BuildRequires: %{python} -%if %{with_systemd} BuildRequires: systemd-units -%endif %if %{with_libxl} BuildRequires: xen-devel %endif @@ -325,47 +284,29 @@ BuildRequires: bash-completion >= 2.0 BuildRequires: ncurses-devel BuildRequires: gettext BuildRequires: libtasn1-devel -%if (0%{?rhel} && 0%{?rhel} < 7) -BuildRequires: libgcrypt-devel -%endif BuildRequires: gnutls-devel BuildRequires: libattr-devel # For pool-build probing for existing pools BuildRequires: libblkid-devel >= 2.17 # for augparse, optionally used in testing BuildRequires: augeas -%if 0%{?fedora} || 0%{?rhel} >= 7 BuildRequires: systemd-devel >= 185 -%else -BuildRequires: libudev-devel >= 145 -%endif BuildRequires: libpciaccess-devel >= 0.10.9 -BuildRequires: yajl-devel +BuildRequires: jansson-devel %if %{with_sanlock} BuildRequires: sanlock-devel >= 2.4 %endif BuildRequires: libpcap-devel -%if 0%{?rhel} && 0%{?rhel} < 7 -BuildRequires: libnl-devel -%else BuildRequires: libnl3-devel -%endif BuildRequires: avahi-devel BuildRequires: libselinux-devel BuildRequires: dnsmasq >= 2.41 BuildRequires: iptables -%if 0%{?rhel} && 0%{?rhel} < 7 -BuildRequires: iptables-ipv6 -%endif BuildRequires: radvd BuildRequires: ebtables BuildRequires: module-init-tools BuildRequires: cyrus-sasl-devel -%if 0%{?fedora} || 0%{?rhel} >= 7 BuildRequires: polkit >= 0.112 -%else -BuildRequires: polkit >= 0.93 -%endif # For mount/umount in FS driver BuildRequires: util-linux %if %{with_qemu} @@ -383,12 +324,8 @@ BuildRequires: parted-devel # For Multipath support BuildRequires: device-mapper-devel %if %{with_storage_rbd} - %if 0%{?fedora} || 0%{?rhel} >= 7 BuildRequires: librados2-devel BuildRequires: librbd1-devel - %else -BuildRequires: ceph-devel - %endif %endif %if %{with_storage_gluster} BuildRequires: glusterfs-api-devel >= 3.4.1 @@ -415,11 +352,7 @@ BuildRequires: fuse-devel >= 2.8.6 BuildRequires: libssh2-devel >= 1.3.0 %endif -%if 0%{?fedora} || 0%{?rhel} >= 7 BuildRequires: netcf-devel >= 0.2.2 -%else -BuildRequires: netcf-devel >= 0.1.8 -%endif %if %{with_esx} BuildRequires: libcurl-devel %endif @@ -495,25 +428,16 @@ Requires: iproute-tc %endif Requires: avahi-libs -%if 0%{?fedora} || 0%{?rhel} >= 7 Requires: polkit >= 0.112 -%else -Requires: polkit >= 0.93 -%endif -%if %{with_cgconfig} -Requires: libcgroup -%endif %ifarch %{ix86} x86_64 ia64 # For virConnectGetSysinfo Requires: dmidecode %endif # For service management -%if %{with_systemd} Requires(post): systemd-units Requires(post): systemd-sysv Requires(preun): systemd-units Requires(postun): systemd-units -%endif %if %{with_numad} Requires: numad %endif @@ -548,12 +472,10 @@ Network filter configuration files for cleaning guest traffic %package daemon-driver-network Summary: Network driver plugin for the libvirtd daemon Requires: libvirt-daemon = %{version}-%{release} +Requires: libvirt-libs = %{version}-%{release} Requires: dnsmasq >= 2.41 Requires: radvd Requires: iptables -%if 0%{?rhel} && 0%{?rhel} < 7 -Requires: iptables-ipv6 -%endif %description daemon-driver-network The network driver plugin for the libvirtd daemon, providing @@ -564,10 +486,8 @@ bridge capabilities. %package daemon-driver-nwfilter Summary: Nwfilter driver plugin for the libvirtd daemon Requires: libvirt-daemon = %{version}-%{release} +Requires: libvirt-libs = %{version}-%{release} Requires: iptables -%if 0%{?rhel} && 0%{?rhel} < 7 -Requires: iptables-ipv6 -%endif Requires: ebtables %description daemon-driver-nwfilter @@ -579,12 +499,9 @@ iptables and ip6tables capabilities %package daemon-driver-nodedev Summary: Nodedev driver plugin for the libvirtd daemon Requires: libvirt-daemon = %{version}-%{release} +Requires: libvirt-libs = %{version}-%{release} # needed for device enumeration -%if 0%{?fedora} || 0%{?rhel} >= 7 Requires: systemd >= 185 -%else -Requires: udev >= 145 -%endif %description daemon-driver-nodedev The nodedev driver plugin for the libvirtd daemon, providing @@ -595,9 +512,8 @@ capabilities. %package daemon-driver-interface Summary: Interface driver plugin for the libvirtd daemon Requires: libvirt-daemon = %{version}-%{release} -%if (0%{?fedora} || 0%{?rhel} >= 7) +Requires: libvirt-libs = %{version}-%{release} Requires: netcf-libs >= 0.2.2 -%endif %description daemon-driver-interface The interface driver plugin for the libvirtd daemon, providing @@ -608,6 +524,7 @@ netcf library %package daemon-driver-secret Summary: Secret driver plugin for the libvirtd daemon Requires: libvirt-daemon = %{version}-%{release} +Requires: libvirt-libs = %{version}-%{release} %description daemon-driver-secret The secret driver plugin for the libvirtd daemon, providing @@ -616,6 +533,7 @@ an implementation of the secret key APIs. %package daemon-driver-storage-core Summary: Storage driver plugin including base backends for the libvirtd daemon Requires: libvirt-daemon = %{version}-%{release} +Requires: libvirt-libs = %{version}-%{release} Requires: nfs-utils # For mkfs Requires: util-linux @@ -632,6 +550,7 @@ iSCSI, and multipath storage. %package daemon-driver-storage-logical Summary: Storage driver plugin for lvm volumes Requires: libvirt-daemon-driver-storage-core = %{version}-%{release} +Requires: libvirt-libs = %{version}-%{release} Requires: lvm2 %description daemon-driver-storage-logical @@ -642,6 +561,7 @@ volumes using lvm. %package daemon-driver-storage-disk Summary: Storage driver plugin for disk Requires: libvirt-daemon-driver-storage-core = %{version}-%{release} +Requires: libvirt-libs = %{version}-%{release} Requires: parted Requires: device-mapper @@ -653,6 +573,7 @@ volumes using the host disks. %package daemon-driver-storage-scsi Summary: Storage driver plugin for local scsi devices Requires: libvirt-daemon-driver-storage-core = %{version}-%{release} +Requires: libvirt-libs = %{version}-%{release} %description daemon-driver-storage-scsi The storage driver backend adding implementation of the storage APIs for scsi @@ -662,6 +583,7 @@ host devices. %package daemon-driver-storage-iscsi Summary: Storage driver plugin for iscsi Requires: libvirt-daemon-driver-storage-core = %{version}-%{release} +Requires: libvirt-libs = %{version}-%{release} Requires: iscsi-initiator-utils %description daemon-driver-storage-iscsi @@ -672,6 +594,7 @@ volumes using the host iscsi stack. %package daemon-driver-storage-mpath Summary: Storage driver plugin for multipath volumes Requires: libvirt-daemon-driver-storage-core = %{version}-%{release} +Requires: libvirt-libs = %{version}-%{release} Requires: device-mapper %description daemon-driver-storage-mpath @@ -683,6 +606,7 @@ multipath storage using device mapper. %package daemon-driver-storage-gluster Summary: Storage driver plugin for gluster Requires: libvirt-daemon-driver-storage-core = %{version}-%{release} +Requires: libvirt-libs = %{version}-%{release} %if 0%{?fedora} Requires: glusterfs-client >= 2.0.1 %endif @@ -700,6 +624,7 @@ volumes using libgfapi. %package daemon-driver-storage-rbd Summary: Storage driver plugin for rbd Requires: libvirt-daemon-driver-storage-core = %{version}-%{release} +Requires: libvirt-libs = %{version}-%{release} %description daemon-driver-storage-rbd The storage driver backend adding implementation of the storage APIs for rbd @@ -711,6 +636,7 @@ volumes using the ceph protocol. %package daemon-driver-storage-sheepdog Summary: Storage driver plugin for sheepdog Requires: libvirt-daemon-driver-storage-core = %{version}-%{release} +Requires: libvirt-libs = %{version}-%{release} Requires: sheepdog %description daemon-driver-storage-sheepdog @@ -723,6 +649,7 @@ sheepdog volumes using. %package daemon-driver-storage-zfs Summary: Storage driver plugin for ZFS Requires: libvirt-daemon-driver-storage-core = %{version}-%{release} +Requires: libvirt-libs = %{version}-%{release} # Support any conforming implementation of zfs Requires: /sbin/zfs Requires: /sbin/zpool @@ -764,6 +691,7 @@ parted and more. %package daemon-driver-qemu Summary: QEMU driver plugin for the libvirtd daemon Requires: libvirt-daemon = %{version}-%{release} +Requires: libvirt-libs = %{version}-%{release} # There really is a hard cross-driver dependency here Requires: libvirt-daemon-driver-network = %{version}-%{release} Requires: libvirt-daemon-driver-storage-core = %{version}-%{release} @@ -788,6 +716,7 @@ QEMU %package daemon-driver-lxc Summary: LXC driver plugin for the libvirtd daemon Requires: libvirt-daemon = %{version}-%{release} +Requires: libvirt-libs = %{version}-%{release} # There really is a hard cross-driver dependency here Requires: libvirt-daemon-driver-network = %{version}-%{release} %if 0%{?fedora} || 0%{?rhel} > 7 @@ -805,6 +734,7 @@ the Linux kernel %package daemon-driver-uml Summary: Uml driver plugin for the libvirtd daemon Requires: libvirt-daemon = %{version}-%{release} +Requires: libvirt-libs = %{version}-%{release} %description daemon-driver-uml The UML driver plugin for the libvirtd daemon, providing @@ -817,6 +747,7 @@ User Mode Linux %package daemon-driver-vbox Summary: VirtualBox driver plugin for the libvirtd daemon Requires: libvirt-daemon = %{version}-%{release} +Requires: libvirt-libs = %{version}-%{release} %description daemon-driver-vbox The vbox driver plugin for the libvirtd daemon, providing @@ -829,6 +760,7 @@ VirtualBox %package daemon-driver-libxl Summary: Libxl driver plugin for the libvirtd daemon Requires: libvirt-daemon = %{version}-%{release} +Requires: libvirt-libs = %{version}-%{release} Obsoletes: libvirt-daemon-driver-xen < 4.3.0 %description daemon-driver-libxl @@ -966,10 +898,8 @@ Requires: ncurses Requires: gettext # Needed by virt-pki-validate script. Requires: gnutls-utils -%if %{with_pm_utils} -# Needed for probing the power management features of the host. -Requires: pm-utils -%endif +# We dlopen(libjansson.so.4), so need an explicit dep +Requires: jansson %if %{with_bash_completion} Requires: %{name}-bash-completion = %{version}-%{release} %endif @@ -1229,29 +1159,13 @@ exit 1 %define arg_wireshark --without-wireshark-dissector %endif -%if %{with_pm_utils} - %define arg_pm_utils --with-pm-utils -%else - %define arg_pm_utils --without-pm-utils -%endif - %define when %(date +"%%F-%%T") %define where %(hostname) %define who %{?packager}%{!?packager:Unknown} %define arg_packager --with-packager="%{who}, %{when}, %{where}" %define arg_packager_version --with-packager-version="%{release}" -%if %{with_systemd} - %define arg_init_script --with-init-script=systemd -%else - %define arg_init_script --with-init-script=redhat -%endif - -%if 0%{?fedora} || 0%{?rhel} >= 7 - %define arg_selinux_mount --with-selinux-mount="/sys/fs/selinux" -%else - %define arg_selinux_mount --with-selinux-mount="/selinux" -%endif +%define arg_selinux_mount --with-selinux-mount="/sys/fs/selinux" %if 0%{?fedora} # Nightly firmware repo x86/OVMF @@ -1314,7 +1228,7 @@ rm -f po/stamp-po --without-apparmor \ --without-hal \ --with-udev \ - --with-yajl \ + --with-jansson \ %{?arg_sanlock} \ --with-libpcap \ --with-macvtap \ @@ -1323,7 +1237,7 @@ rm -f po/stamp-po --with-driver-modules \ %{?arg_firewalld} \ %{?arg_wireshark} \ - %{?arg_pm_utils} \ + --without-pm-utils \ --with-nss-plugin \ %{arg_packager} \ %{arg_packager_version} \ @@ -1333,7 +1247,7 @@ rm -f po/stamp-po %{?arg_loader_nvram} \ %{?enable_werror} \ --enable-expensive-tests \ - %{arg_init_script} \ + --with-init-script=systemd \ %{?arg_login_shell} make %{?_smp_mflags} V=1 gzip -9 ChangeLog @@ -1457,93 +1371,25 @@ exit 0 %post daemon -%if %{with_systemd} - %if %{with_systemd_macros} - %systemd_post virtlockd.socket virtlockd-admin.socket - %systemd_post virtlogd.socket virtlogd-admin.socket - %systemd_post libvirtd.service - %else -if [ $1 -eq 1 ] ; then - # Initial installation - /bin/systemctl enable \ - virtlockd.socket \ - virtlockd-admin.socket \ - virtlogd.socket \ - virtlogd-admin.socket \ - libvirtd.service >/dev/null 2>&1 || : -fi - %endif -%else - %if %{with_cgconfig} -# Starting with Fedora 16/RHEL-7, systemd automounts all cgroups, -# and cgconfig is no longer a necessary service. - %if 0%{?rhel} && 0%{?rhel} < 7 -if [ "$1" -eq "1" ]; then -/sbin/chkconfig cgconfig on -fi - %endif - %endif - -/sbin/chkconfig --add libvirtd -/sbin/chkconfig --add virtlogd -/sbin/chkconfig --add virtlockd -%endif +%systemd_post virtlockd.socket virtlockd-admin.socket +%systemd_post virtlogd.socket virtlogd-admin.socket +%systemd_post libvirtd.service # request daemon restart in posttrans mkdir -p %{_localstatedir}/lib/rpm-state/libvirt || : touch %{_localstatedir}/lib/rpm-state/libvirt/restart || : %preun daemon -%if %{with_systemd} - %if %{with_systemd_macros} - %systemd_preun libvirtd.service - %systemd_preun virtlogd.socket virtlogd-admin.socket virtlogd.service - %systemd_preun virtlockd.socket virtlockd-admin.socket virtlockd.service - %else -if [ $1 -eq 0 ] ; then - # Package removal, not upgrade - /bin/systemctl --no-reload disable \ - libvirtd.service \ - virtlogd.socket \ - virtlogd-admin.socket \ - virtlogd.service \ - virtlockd.socket \ - virtlockd-admin.socket \ - virtlockd.service > /dev/null 2>&1 || : - /bin/systemctl stop \ - libvirtd.service \ - virtlogd.socket \ - virtlogd-admin.socket \ - virtlogd.service \ - virtlockd.socket \ - virtlockd-admin.socket \ - virtlockd.service > /dev/null 2>&1 || : -fi - %endif -%else -if [ $1 = 0 ]; then - /sbin/service libvirtd stop 1>/dev/null 2>&1 - /sbin/chkconfig --del libvirtd - /sbin/service virtlogd stop 1>/dev/null 2>&1 - /sbin/chkconfig --del virtlogd - /sbin/service virtlockd stop 1>/dev/null 2>&1 - /sbin/chkconfig --del virtlockd -fi -%endif +%systemd_preun libvirtd.service +%systemd_preun virtlogd.socket virtlogd-admin.socket virtlogd.service +%systemd_preun virtlockd.socket virtlockd-admin.socket virtlockd.service %postun daemon -%if %{with_systemd} /bin/systemctl daemon-reload >/dev/null 2>&1 || : if [ $1 -ge 1 ] ; then /bin/systemctl reload-or-try-restart virtlockd.service >/dev/null 2>&1 || : /bin/systemctl reload-or-try-restart virtlogd.service >/dev/null 2>&1 || : fi -%else -if [ $1 -ge 1 ]; then - /sbin/service virtlockd reload > /dev/null 2>&1 || : - /sbin/service virtlogd reload > /dev/null 2>&1 || : -fi -%endif # In upgrade scenario we must explicitly enable virtlockd/virtlogd # sockets, if libvirtd is already enabled and start them if @@ -1551,28 +1397,15 @@ fi # guests %triggerpostun daemon -- libvirt-daemon < 1.3.0 if [ $1 -ge 1 ] ; then -%if %{with_systemd} /bin/systemctl is-enabled libvirtd.service 1>/dev/null 2>&1 && /bin/systemctl enable virtlogd.socket virtlogd-admin.socket || : /bin/systemctl is-active libvirtd.service 1>/dev/null 2>&1 && /bin/systemctl start virtlogd.socket virtlogd-admin.socket || : -%else - /sbin/chkconfig libvirtd 1>/dev/null 2>&1 && - /sbin/chkconfig virtlogd on || : - /sbin/service libvirtd status 1>/dev/null 2>&1 && - /sbin/service virtlogd start || : - /sbin/service virtlockd reload > /dev/null 2>&1 || : - /sbin/service virtlogd reload > /dev/null 2>&1 || : -%endif fi %posttrans daemon if [ -f %{_localstatedir}/lib/rpm-state/libvirt/restart ]; then -%if %{with_systemd} /bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || : -%else - /sbin/service libvirtd condrestart > /dev/null 2>&1 || : -%endif fi rm -rf %{_localstatedir}/lib/rpm-state/libvirt || : @@ -1620,11 +1453,7 @@ fi %posttrans daemon-config-network if [ -f %{_localstatedir}/lib/rpm-state/libvirt/restart ]; then -%if %{with_systemd} /bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || : -%else - /sbin/service libvirtd condrestart > /dev/null 2>&1 || : -%endif fi rm -rf %{_localstatedir}/lib/rpm-state/libvirt || : @@ -1636,16 +1465,11 @@ touch %{_localstatedir}/lib/rpm-state/libvirt/restart || : %posttrans daemon-config-nwfilter if [ -f %{_localstatedir}/lib/rpm-state/libvirt/restart ]; then -%if %{with_systemd} /bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || : -%else - /sbin/service libvirtd condrestart > /dev/null 2>&1 || : -%endif fi rm -rf %{_localstatedir}/lib/rpm-state/libvirt || : -%if %{with_systemd} %triggerun -- libvirt < 0.9.4 %{_bindir}/systemd-sysv-convert --save libvirtd >/dev/null 2>&1 ||: @@ -1655,7 +1479,6 @@ rm -rf %{_localstatedir}/lib/rpm-state/libvirt || : # Run these because the SysV package being removed won't do them /sbin/chkconfig --del libvirtd >/dev/null 2>&1 || : /bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || : -%endif %if %{with_qemu} %pre daemon-driver-qemu @@ -1676,35 +1499,18 @@ exit 0 %preun client -%if %{with_systemd} - %if %{with_systemd_macros} - %systemd_preun libvirt-guests.service - %endif -%else -if [ $1 = 0 ]; then - /sbin/chkconfig --del libvirt-guests - rm -f /var/lib/libvirt/libvirt-guests -fi -%endif +%systemd_preun libvirt-guests.service %post client /sbin/ldconfig -%if %{with_systemd} - %if %{with_systemd_macros} - %systemd_post libvirt-guests.service - %endif -%else -/sbin/chkconfig --add libvirt-guests -%endif +%systemd_post libvirt-guests.service %postun client /sbin/ldconfig -%if %{with_systemd} - %if %{with_systemd_macros} - %systemd_postun libvirt-guests.service - %endif +%systemd_postun libvirt-guests.service + %triggerun client -- libvirt < 0.9.4 %{_bindir}/systemd-sysv-convert --save libvirt-guests >/dev/null 2>&1 ||: @@ -1713,7 +1519,6 @@ fi # Run this because the SysV package being removed won't do them /sbin/chkconfig --del libvirt-guests >/dev/null 2>&1 || : -%endif %if %{with_sanlock} %post lock-sanlock @@ -1757,7 +1562,6 @@ exit 0 %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/ -%if %{with_systemd} %{_unitdir}/libvirtd.service %{_unitdir}/virt-guest-shutdown.target %{_unitdir}/virtlogd.service @@ -1766,11 +1570,6 @@ exit 0 %{_unitdir}/virtlockd.service %{_unitdir}/virtlockd.socket %{_unitdir}/virtlockd-admin.socket -%else -%{_sysconfdir}/rc.d/init.d/libvirtd -%{_sysconfdir}/rc.d/init.d/virtlogd -%{_sysconfdir}/rc.d/init.d/virtlockd -%endif %config(noreplace) %{_sysconfdir}/sysconfig/libvirtd %config(noreplace) %{_sysconfdir}/sysconfig/virtlogd %config(noreplace) %{_sysconfdir}/sysconfig/virtlockd @@ -2022,17 +1821,11 @@ exit 0 %endif -%if %{with_systemd} %{_unitdir}/libvirt-guests.service -%else -%{_sysconfdir}/rc.d/init.d/libvirt-guests -%endif %config(noreplace) %{_sysconfdir}/sysconfig/libvirt-guests %attr(0755, root, root) %{_libexecdir}/libvirt-guests.sh %files libs -f %{name}.lang -# RHEL6 doesn't have 'license' macro -%{!?_licensedir:%global license %%doc} %license COPYING COPYING.LESSER %config(noreplace) %{_sysconfdir}/libvirt/libvirt.conf %config(noreplace) %{_sysconfdir}/libvirt/libvirt-admin.conf @@ -2133,6 +1926,9 @@ exit 0 %changelog +* Mon Aug 6 2018 Daniel P. Berrangé - 4.6.0-1 +- Update to 4.6.0 release + * Fri Jul 13 2018 Fedora Release Engineering - 4.5.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild diff --git a/sources b/sources index 37401ee..e3cf9c9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libvirt-4.5.0.tar.xz) = 26710c7e5219f007524e9f93a642e55e4e8ea197afa6b2ca6a4b67b7028313f4b0d82924ee9a1e91ff688a4d2b53f89f3655fbeef0fa99a34f8418f37d787984 +SHA512 (libvirt-4.6.0.tar.xz) = beae0f1cafa73b9495d877979547bbc9b7ca2a7c3b213c5da92e6302b570d42df9d639f50380dbc0cebd6af983924dc27b1c81139c81dee0897f39a6a5158968