summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2020-08-13 14:44:42 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-08-17 08:45:35 +0100
commit7e25a6b4d52a16e812dfd444d65283d2c75d2d77 (patch)
tree1f61c98c9d24ed35b685af62bcdb1d83a36b80f9 /meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch
parent1bff01bda9741ad3a9b9e1937d73859636575c7c (diff)
downloadpoky-7e25a6b4d52a16e812dfd444d65283d2c75d2d77.tar.gz
qemu: Upgrade 5.0.0 -> 5.1.0
* Drop backported CVE fixes * Drop cpu backtrace patch from 2015 for debugging an issue which we no longer see (patch throws rejects, files have moved) * Update mips patch to account for file renames * Update chardev patch to match upstream code changes * Update webkitgtk patch, qemumips build works ok but qemux86 musl webkitgtk still fails. Need to figure out the correct fix and upstream it for this, current revert patch is not maintainable. Release notes for 5.1.0 mention slight qemumips performance improvements which would be valuable to us. My tests show no improvement in qemumips testimage execution time for core-image-sato-sdk. Fix a ptest issue for a file looking for /usr/bin/bash when we have /bin/bash. (From OE-Core rev: 686b770af67fdd2251f4ddab5b0eefc8fb0870ef) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch')
-rw-r--r--meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch56
1 files changed, 29 insertions, 27 deletions
diff --git a/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch b/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch
index 0810ae84c0..98fd5e9133 100644
--- a/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch
+++ b/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch
@@ -51,11 +51,11 @@ Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
51 qapi/char.json | 5 +++ 51 qapi/char.json | 5 +++
52 3 files changed, 109 insertions(+) 52 3 files changed, 109 insertions(+)
53 53
54diff --git a/chardev/char-socket.c b/chardev/char-socket.c 54Index: qemu-5.1.0/chardev/char-socket.c
55index 185fe38d..54fa4234 100644 55===================================================================
56--- a/chardev/char-socket.c 56--- qemu-5.1.0.orig/chardev/char-socket.c
57+++ b/chardev/char-socket.c 57+++ qemu-5.1.0/chardev/char-socket.c
58@@ -1288,6 +1288,67 @@ static bool qmp_chardev_validate_socket(ChardevSocket *sock, 58@@ -1292,6 +1292,67 @@ static bool qmp_chardev_validate_socket(
59 return true; 59 return true;
60 } 60 }
61 61
@@ -123,7 +123,7 @@ index 185fe38d..54fa4234 100644
123 123
124 static void qmp_chardev_open_socket(Chardev *chr, 124 static void qmp_chardev_open_socket(Chardev *chr,
125 ChardevBackend *backend, 125 ChardevBackend *backend,
126@@ -1296,6 +1357,9 @@ static void qmp_chardev_open_socket(Chardev *chr, 126@@ -1300,6 +1361,9 @@ static void qmp_chardev_open_socket(Char
127 { 127 {
128 SocketChardev *s = SOCKET_CHARDEV(chr); 128 SocketChardev *s = SOCKET_CHARDEV(chr);
129 ChardevSocket *sock = backend->u.socket.data; 129 ChardevSocket *sock = backend->u.socket.data;
@@ -133,7 +133,7 @@ index 185fe38d..54fa4234 100644
133 bool do_nodelay = sock->has_nodelay ? sock->nodelay : false; 133 bool do_nodelay = sock->has_nodelay ? sock->nodelay : false;
134 bool is_listen = sock->has_server ? sock->server : true; 134 bool is_listen = sock->has_server ? sock->server : true;
135 bool is_telnet = sock->has_telnet ? sock->telnet : false; 135 bool is_telnet = sock->has_telnet ? sock->telnet : false;
136@@ -1361,6 +1425,14 @@ static void qmp_chardev_open_socket(Chardev *chr, 136@@ -1365,6 +1429,14 @@ static void qmp_chardev_open_socket(Char
137 137
138 update_disconnected_filename(s); 138 update_disconnected_filename(s);
139 139
@@ -148,13 +148,15 @@ index 185fe38d..54fa4234 100644
148 if (s->is_listen) { 148 if (s->is_listen) {
149 if (qmp_chardev_open_socket_server(chr, is_telnet || is_tn3270, 149 if (qmp_chardev_open_socket_server(chr, is_telnet || is_tn3270,
150 is_waitconnect, errp) < 0) { 150 is_waitconnect, errp) < 0) {
151@@ -1380,9 +1452,26 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend, 151@@ -1384,11 +1456,27 @@ static void qemu_chr_parse_socket(QemuOp
152 const char *host = qemu_opt_get(opts, "host"); 152 const char *host = qemu_opt_get(opts, "host");
153 const char *port = qemu_opt_get(opts, "port"); 153 const char *port = qemu_opt_get(opts, "port");
154 const char *fd = qemu_opt_get(opts, "fd"); 154 const char *fd = qemu_opt_get(opts, "fd");
155+#ifndef _WIN32 155+#ifndef _WIN32
156+ const char *cmd = qemu_opt_get(opts, "cmd"); 156+ const char *cmd = qemu_opt_get(opts, "cmd");
157+#endif 157+#endif
158 bool tight = qemu_opt_get_bool(opts, "tight", true);
159 bool abstract = qemu_opt_get_bool(opts, "abstract", false);
158 SocketAddressLegacy *addr; 160 SocketAddressLegacy *addr;
159 ChardevSocket *sock; 161 ChardevSocket *sock;
160 162
@@ -171,19 +173,19 @@ index 185fe38d..54fa4234 100644
171+ } 173+ }
172+ } else 174+ } else
173+#endif 175+#endif
174+
175 if ((!!path + !!fd + !!host) != 1) { 176 if ((!!path + !!fd + !!host) != 1) {
176 error_setg(errp, 177 error_setg(errp,
177 "Exactly one of 'path', 'fd' or 'host' required"); 178 "Exactly one of 'path', 'fd' or 'host' required");
178@@ -1425,12 +1514,24 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend, 179@@ -1431,12 +1519,24 @@ static void qemu_chr_parse_socket(QemuOp
179 sock->has_tls_authz = qemu_opt_get(opts, "tls-authz"); 180 sock->has_tls_authz = qemu_opt_get(opts, "tls-authz");
180 sock->tls_authz = g_strdup(qemu_opt_get(opts, "tls-authz")); 181 sock->tls_authz = g_strdup(qemu_opt_get(opts, "tls-authz"));
181 182
183- addr = g_new0(SocketAddressLegacy, 1);
182+#ifndef _WIN32 184+#ifndef _WIN32
183+ sock->cmd = g_strdup(cmd); 185+ sock->cmd = g_strdup(cmd);
184+#endif 186+#endif
185+ 187+
186 addr = g_new0(SocketAddressLegacy, 1); 188+ addr = g_new0(SocketAddressLegacy, 1);
187+#ifndef _WIN32 189+#ifndef _WIN32
188+ if (path || cmd) { 190+ if (path || cmd) {
189+#else 191+#else
@@ -197,28 +199,28 @@ index 185fe38d..54fa4234 100644
197+#else 199+#else
198 q_unix->path = g_strdup(path); 200 q_unix->path = g_strdup(path);
199+#endif 201+#endif
202 q_unix->tight = tight;
203 q_unix->abstract = abstract;
200 } else if (host) { 204 } else if (host) {
201 addr->type = SOCKET_ADDRESS_LEGACY_KIND_INET; 205Index: qemu-5.1.0/chardev/char.c
202 addr->u.inet.data = g_new(InetSocketAddress, 1); 206===================================================================
203diff --git a/chardev/char.c b/chardev/char.c 207--- qemu-5.1.0.orig/chardev/char.c
204index 7b6b2cb1..0c2ca64b 100644 208+++ qemu-5.1.0/chardev/char.c
205--- a/chardev/char.c 209@@ -826,6 +826,9 @@ QemuOptsList qemu_chardev_opts = {
206+++ b/chardev/char.c
207@@ -837,6 +837,9 @@ QemuOptsList qemu_chardev_opts = {
208 },{
209 .name = "path", 210 .name = "path",
210 .type = QEMU_OPT_STRING, 211 .type = QEMU_OPT_STRING,
211+ },{ 212 },{
212+ .name = "cmd", 213+ .name = "cmd",
213+ .type = QEMU_OPT_STRING, 214+ .type = QEMU_OPT_STRING,
214 },{ 215+ },{
215 .name = "host", 216 .name = "host",
216 .type = QEMU_OPT_STRING, 217 .type = QEMU_OPT_STRING,
217diff --git a/qapi/char.json b/qapi/char.json 218 },{
218index a6e81ac7..517962c6 100644 219Index: qemu-5.1.0/qapi/char.json
219--- a/qapi/char.json 220===================================================================
220+++ b/qapi/char.json 221--- qemu-5.1.0.orig/qapi/char.json
221@@ -247,6 +247,10 @@ 222+++ qemu-5.1.0/qapi/char.json
223@@ -250,6 +250,10 @@
222 # 224 #
223 # @addr: socket address to listen on (server=true) 225 # @addr: socket address to listen on (server=true)
224 # or connect to (server=false) 226 # or connect to (server=false)
@@ -229,7 +231,7 @@ index a6e81ac7..517962c6 100644
229 # @tls-creds: the ID of the TLS credentials object (since 2.6) 231 # @tls-creds: the ID of the TLS credentials object (since 2.6)
230 # @tls-authz: the ID of the QAuthZ authorization object against which 232 # @tls-authz: the ID of the QAuthZ authorization object against which
231 # the client's x509 distinguished name will be validated. This 233 # the client's x509 distinguished name will be validated. This
232@@ -272,6 +276,7 @@ 234@@ -276,6 +280,7 @@
233 ## 235 ##
234 { 'struct': 'ChardevSocket', 236 { 'struct': 'ChardevSocket',
235 'data': { 'addr': 'SocketAddressLegacy', 237 'data': { 'addr': 'SocketAddressLegacy',