[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH-for-7.0 v4 0/2] cocoa: run qemu_init in the main thread
From: |
Philippe Mathieu-Daudé |
Subject: |
[RFC PATCH-for-7.0 v4 0/2] cocoa: run qemu_init in the main thread |
Date: |
Thu, 17 Mar 2022 13:55:32 +0100 |
From: Philippe Mathieu-Daudé <f4bug@amsat.org>
Posting v4 in case someone want to iterate.
Pending issue raised by Akihiko Odaki:
* this actually breaks the "runas" option with ui/cocoa.
[+NSApplication sharedApplication] calls issetugid() to see if
setgid() or setuid() is called before and calls exit() if it evaluates
true. It does not evaluate true without this patch since setgid() and
setuid() are called after [+NSApplication sharedApplication]. This
patch, however, changes the order and triggers the check.
There are two options to solve the problem:
1. Move setgid and setuid calls after [+NSApplication
sharedApplication] to let NSApplication initialize as the original
user.
2. Do: [[NSUserDefaults standardUserDefaults] setBool:YES
forKey:@"_NSAppAllowsNonTrustedUGID"]
Option 2 would be preferred in terms of practicality since nobody
would want to initialize NSApplication as the original user (usually
superuser). However, _NSAppAllowsNonTrustedUGID is not documented by
Apple.
* Oudated comment in main():
1970 /*
1971 * Create the menu entries which depend on QEMU state (for consoles
1972 * and removeable devices). These make calls back into QEMU functions,
1973 * which is OK because at this point we know that the second thread
1974 * holds the iothread lock and is synchronously waiting for us to
1975 * finish.
1976 */
(https://marc.info/?l=qemu-devel&m=164752136410805)
Since v3:
- Move qemu_event_init before cbowner alloc
- Reduce main_thread scope to applicationDidFinishLaunching
- Updated updateUIInfo() comment
(s/cocoa_display_init/applicationDidFinishLaunching)
Since v2:
- Extracted code movement in preliminary patch
v3:
20220317115644.37276-1-philippe.mathieu.daude@gmail.com/">https://lore.kernel.org/qemu-devel/20220317115644.37276-1-philippe.mathieu.daude@gmail.com/
v2:
20220316160300.85438-1-philippe.mathieu.daude@gmail.com/">https://lore.kernel.org/qemu-devel/20220316160300.85438-1-philippe.mathieu.daude@gmail.com/
v1:
20220307151004.578069-1-pbonzini@redhat.com/">https://lore.kernel.org/qemu-devel/20220307151004.578069-1-pbonzini@redhat.com/
Paolo Bonzini (1):
ui/cocoa: run qemu_init in the main thread
Philippe Mathieu-Daudé (1):
ui/cocoa: Code movement
softmmu/main.c | 12 ++--
ui/cocoa.m | 161 ++++++++++++++++++++++---------------------------
2 files changed, 79 insertions(+), 94 deletions(-)
--
2.34.1
- [RFC PATCH-for-7.0 v4 0/2] cocoa: run qemu_init in the main thread,
Philippe Mathieu-Daudé <=