Browse Source

system: set TMPDIR before launching QEMU

QEMU uses g_get_tmp_dir() to get the tmp directory.

Fixes #4882
pull/4904/head
osy 3 years ago
parent
commit
abc9e42d22
  1. 1
      Managers/UTMQemuSystem.m
  2. 5
      QEMUHelper/QEMUHelper.m

1
Managers/UTMQemuSystem.m

@ -51,6 +51,7 @@ static void *start_qemu(void *args) {
envp[i] = environment[i].UTF8String;
}
envp[envc] = NULL;
setenv("TMPDIR", NSFileManager.defaultManager.temporaryDirectory.path.UTF8String, 1);
int argc = (int)qemuArgv.count + 1;
const char *argv[argc];

5
QEMUHelper/QEMUHelper.m

@ -121,9 +121,12 @@
task.arguments = newArgv;
task.standardOutput = standardOutput;
task.standardError = standardError;
NSMutableDictionary<NSString *, NSString *> *environment = [NSMutableDictionary dictionary];
environment[@"TMPDIR"] = NSFileManager.defaultManager.temporaryDirectory.path;
if (self.environment) {
task.environment = self.environment;
[environment addEntriesFromDictionary:self.environment];
}
task.environment = environment;
task.qualityOfService = NSQualityOfServiceUserInitiated;
task.terminationHandler = ^(NSTask *task) {
BOOL normalExit = task.terminationReason == NSTaskTerminationReasonExit && task.terminationStatus == 0;

Loading…
Cancel
Save