Standing on Procursus

The rootless bootstrap on these devices is Procursus, which is itself a macOS-hosted cross-compile system that already ships a full X11 stack prebuilt for iphoneos-arm64. The approach is to stand on that rather than rebuild it: use the toolchain, and spend the effort on the parts Procursus does not provide, starting with the native display server.

Patches are managed with quilt, so every change to upstream source is tracked and the build stays reproducible. The pipeline runs in Docker, so it behaves the same on any machine.

The harder cross-compiles

mozjs 115
SpiderMonkey cross-compiled from Linux to iOS, with its JIT running on the A10. This is what lets gjs, and therefore GNOME Shell, run.
bun
Bun, the JavaScript runtime, cross-compiled to iOS. Its JIT and bun:ffi run even though iOS refuses an executable heap, by relocating generated code through mmap. opencode runs a full agent turn on the device.
Introspection
The GNOME Shell boot typelibs were generated on the device with the native Procursus toolchain, then packaged as xios-gnome-typelibs.
ICU
Built native-then-cross so its data compiler runs on the host, which unblocks Evolution Data Server and tracker full-text search downstream.
ANGLE
Google's ANGLE built from source with the Metal backend, packaged as the angle deb.
Qt6 and KF6
A six-module Qt6 ladder plus a KDE Frameworks 6 subset, KWin, Plasma Desktop/Mobile, and the first KDE app batch.

The repo

Packages are published to a self-contained apt repo, the same kind every jailbreak uses.

Pick a flavor, not a bare package

There is no single xios package. You install one of xios-gnome, xios-kde, xios-native, or xios-x11, and each pulls in the shared xios-core base. From there the in-app session picker lets you switch between running desktops.