65 Commits
Author SHA1 Message Date
osy 3359543d2c ios: run qemu-img in a helper extension on iOS 26
QEMU tools cannot run in the app process on iOS: a process may load QEMU
only once and qemu-img calls exit(). So disk snapshots of a stopped VM,
reclaiming space, compression, resizing and conversion on import were
macOS-only.

iOS 26 brings ExtensionKit, so qemu-img now runs in an ExtensionKit
extension (iOSHelper, and iOSHelper-SE for UTM SE since an extension's
bundle identifier must be prefixed by its host's). The helper speaks the
same QEMUHelperProtocol as the macOS XPC helper but loads the tool into
its own process, one tool per process. UTMProcess accepts an injected
connection so the remote path is shared with macOS, including file
access through bookmarks, whose implicit security scope grants the
resolving process access. UTMHelperProcess launches the helper and,
because the system hands a process that is still exiting to a launch
that comes too soon, tears it down with a handshake on the interruption
callback and runs helpers one at a time.

UTMQemuImage now reads the tool's output until it ends instead of
racing the exit message, resumes its continuations off the XPC reply
queue (a call made from that queue blocks in NSXPC), and stops the
process explicitly since the connection's exported object kept it from
ever being deallocated on macOS. The last stderr line becomes the error
text when the tool gives none.

Assisted-by: Claude:claude-fable-5-1
2026-09-23 23:10:06 -05:00
osy e6436a83b0 project: add DirectX support
- virglrenderer uses shmem for texture import/export so we need App Group for both iOS and macOS
- Add QEMURenderServer for new process model rendering (both Venus and Neptune)
- macOS: add DXMT and D3DMetal-Native backends
- We require 8G hostmem for Neptune but iOS currently fails > 256M
2026-07-30 18:31:26 -07:00
somniandosy 7a1274683a Update translations for Korean (ko) (#6995)
* Update README translations for Korean

* Add QEMUHelper translations for Korean

* Rewrite Platform translations for Korean

Based off Japanese translation file

I decided to rewrite the translation file instead of update existing one,
because the existing one is pretty bit old and it looks like nobody is
maintaining Korean translations for now.

Japanese translations are well organized and looks almost every strings
are added so I used that as base.

* Add platform-specific translations for Korean

* qemu: more verbose error when ISV=0

* github: update to Xcode 16.2

* Revert "qemu: more verbose error when ISV=0"

This reverts commit 45385bd51e.

---------

Co-authored-by: osy <[email protected]>
2025-04-07 18:20:42 -07:00
Tiffany Fungandosy 8193bca408 Update translations for zh-HK & zh-Hans (#6991)
* Update translations for zh-HK

* Update translations for zh-HK

* Update translations for zh-HK

* Update translations for zh-Hans

* qemu: more verbose error when ISV=0

* github: update to Xcode 16.2

* Update translations for zh-Hans

* Update translations for zh-HK

---------

Co-authored-by: osy <[email protected]>
2025-04-07 16:09:41 -07:00
Tiffany Fung 6b72359852 Improve translations for zh-Hans 2024-10-13 15:09:57 +08:00
Vincenzo Garambone c4eb8aad9e Add Italian localization 2024-02-26 19:58:13 -08:00
osy d9159539b1 helper: send SIGKILL if process is unresponsive
QEMU can refuse to react to SIGTERM due to a deadlock bug or for any other
reason. If it does not gracefully quit in 1 second, then we send SIGKILL.

Fixes #5769
2023-10-08 21:59:04 -07:00
osy 70a6a53a30 Merge branch 'main' into main 2023-10-03 21:27:31 -07:00
osy 9860d899de Merge pull request #5691 from s0rd3s/main
Add Russian language to UTM project
2023-10-03 21:22:48 -07:00
Peter Dave Hello c5ead5cfcc Fix/Update zh-Hant localization 2023-09-21 14:59:57 +08:00
Tiffany Fung abce5ab116 Fix translation for zh-hans 2023-09-12 08:54:11 +08:00
Tiffany Fung 217e2475cb Import localization for zh-hk 2023-09-12 08:52:50 +08:00
Tiffany Fung f3a5635add Create localization files for zh-hk 2023-09-12 08:51:23 +08:00
s0rd3s a162ec0308 localization: add Russian to project 2023-09-09 21:25:19 +03:00
osy 37ec3d81cb Merge pull request #5551 from pan93412/l10n/zh-Hant
l10n: zh-TW: update translation
2023-08-20 11:52:42 -07:00
Tiffany Fung c5ca7ccdaf Improve Simplified Chinese Translation (#5550)
* Create VMDisplayMetalViewInputAccessory.strings

* Update InfoPlist.strings

* Update VMDisplayMetalViewInputAccessory.strings

* Update InfoPlist.strings

* Update InfoPlist.strings

* Update Localizable.strings

* Delete Platform/iOS/Display/zh-cn.lproj directory

* Create VMDisplayMetalViewInputAccessory.strings

* Create VMDisplayWindow.strings

* Update VMDisplayWindow.strings

* Update Root.strings

* Update InfoPlist.strings

* Update Root.strings

* Update VMDisplayWindow.strings

* Update InfoPlist.strings

* Update InfoPlist.strings

* Update Localizable.strings

* Update Localizable.strings

* Add files via upload

* Update Localizable.strings

* Update VMDisplayQemuDisplayController.swift

Change ellipse "..." to "…" in accordance with other strings

* Rollback the last change to VMDisplayQemuDisplayController.swift

* Update README.zh-Hans.md

* Update README.zh-Hans.md

* Delete Localizable.stringsdict
2023-08-20 11:51:38 -07:00
pan93412 b8b250e4bf l10n: zh-TW: update translation 2023-08-10 17:23:00 +08:00
osy d5a9811f0c process: hold token to avoid XPC service termination
When under memory pressure, XNU can decide to terminate the XPC helper
unless there is a pending response. We force it to have a pending response
by providing a NOP callback which will only be triggered after QEMU
terminates.

Fixes #5489
2023-07-30 22:59:50 -07:00
osy bd78994000 process: change current directory to socket destination
When we use AF_UNIX, the path has a maximum length of 104 characters. In the
past, we dependend on buggy behaviour that truncates the path length and both
QEMU and SPICE used the truncated path as the destination. This can result in
collisions between different VMs as well as other issues.

Now, we change the current working directory to where the AF_UNIX socket file
will reside and use relative addresses for both processes.
2023-07-12 23:18:36 -07:00
osy 7f80bf8fa6 services: rename UTMQemu to UTMProcess 2023-07-12 23:18:36 -07:00
osy 03d200422f manager: factor out QEMUKit as a separate project 2023-06-25 08:43:05 -05:00
osy abc9e42d22 system: set TMPDIR before launching QEMU
QEMU uses g_get_tmp_dir() to get the tmp directory.

Fixes #4882
2023-01-03 19:36:30 -08:00
osy 9530ba7f48 config: all external drives should be read-only
1. If a drive is external, assume it is also read-only.
2. Internal drives can now be marked read-only (QEMU)
3. Fix read-only bookmarks not being created in the helper.

Fixes #4838
2023-01-03 13:49:08 -08:00
osy 201a2206f3 preferences: support changing renderer backend 2022-12-27 15:33:07 -08:00
skyarrow87 9582143baf Improve Japanese translation 2022-12-07 14:08:32 +09:00
skyarrow87 4ee1bd46cb Improve Japanese translation 2022-12-07 14:08:14 +09:00
osy 30fb6259df Merge pull request #4592 from mavethee/polish-localization
Add Polish localization
2022-12-03 17:03:29 -08:00
Marcin Mitura 55c62da123 Update some more strings for 4.1
Should be everything that I missed before.

And tried to find some common sense for `Development`,
2022-11-23 18:03:12 +01:00
Jezer Mejía e0ab22db2d Update Spanish (Latin America) localization.
Readded removed translations in one of the last changes.
2022-11-03 22:21:25 -06:00
Jezer Mejía b55971616d Update Spanish (Latin America) localization 2022-10-24 07:42:56 -06:00
conath ebfc93327e Add German localization
This is my first localization pass, with little proofreading and only brief testing. Seems mostly fine, but additional work is needed to fix missing localized strings.
2022-10-17 01:58:54 +02:00
conath eb573fdf74 Add German Localization to Xcode project
No translations yet
2022-10-17 01:58:54 +02:00
osy 217826ef58 Merge branch 'main' into add-finnish-localisations 2022-08-29 19:19:12 -07:00
osy 27cfdadae0 Merge pull request #4307 from JezerM/main
Add Spanish (Latin America) localization
2022-08-29 19:04:04 -07:00
osy 88e7c27e7b helper: terminate child task on quit 2022-08-29 18:43:47 -07:00
Marcus Ziadé 57efb457e7 Add Finnish localizations 2022-08-27 22:57:57 +03:00
Jezer Mejía 02e3b5d5db Add Spanish (Latin America) localization.
Based on English, French and Japanese localizations.
2022-08-16 16:47:35 -06:00
osy d091f103eb Merge remote-tracking branch 'origin/master' into MMP0-patch-1 2022-08-05 13:19:54 -07:00
osy 1e0e50515f project: add en localization 2022-07-31 18:47:11 -07:00
osy ef7c327521 project: add fr localization
Thanks @FRtranslator

Resolves #4212
2022-07-31 18:23:39 -07:00
MMP0 a1fc51fce7 Change to consistent wording 2022-07-25 14:57:45 +09:00
MMP0 2757e2b71c Create Localizable.strings 2022-07-23 16:32:41 +09:00
osy 02832890ee macOS: removed ugly hacks for < macOS 11.3 2022-07-10 21:20:56 -07:00
osy b65c9f6962 wizard: convert VHDX to QCOW2 for Windows VM 2022-01-10 15:41:36 -08:00
Ty 2d7be7ef86 Full zh-Hans localized 2021-10-03 21:15:19 +08:00
osy de973c410c build: make entitlement use configurable
Various configurations (paid/free/no ADP account) supported.
2021-08-30 20:41:43 -07:00
osy d915297066 project: update app group identifier 2021-08-09 01:39:14 -07:00
osy c5d89415d6 macOS: use app groups for socket sharing 2021-08-08 17:53:12 -07:00
osy 17e262ffc9 project: enable bridged networking
We make QEMULauncher an app bundle in order to use a provisioning profile.

Resolves #358
2021-07-11 20:39:40 -07:00
Yi-Jyun Pan 67b898ff9c l10n: zh-Hant: add and localize some lost strings 2021-06-07 19:14:29 +08:00