Bottles Brings Hope for Windows-only Software on ARM Devices

It’s been a while since I last wrote about Bottles. For anyone new to it, Bottles runs Windows software on Linux by hiding most of Wine’s configuration work behind a straightforward interface.
Its feature list has been growing consistently too. You can pull common Windows components like .NET and Visual C++ runtimes with a single click, or juggle multiple Wine and Proton runners per bottle.
Additionally, UMU support lets you run Proton games outside Steam, and snapshots give every experiment of yours a rollback point.
With its newest offering, Bottles pushes past x86_64 hardware. Bottles 67.4 is a test release aimed at ARM64 on Linux, which is delivered through an experimental cpak package.
And know that the ARM64 rollout actually spanned two releases. 67.3 added the first ARM64 build of the cpak package, and 67.4 followed hours later with a few misc fixes and Soda 11.0-10.
Must-know bits


Placeholder images of Bottles 67.3 running on an x86_64 system.
On ARM64 systems, cpak now fetches the right build for the platform, while Soda, Bottles’ Wine-based runner, carries native ARM64 and ARM64EC support. FEX also comes bundled for running x86 and x86_64 Windows software.
All of that makes Bottles genuinely useful on ARM64 Linux hardware, be it single-board computers or Arm-powered laptops.
What surprised me most was the speed at which this was delivered.
The request to add ARM64 (or AArch64) builds was opened a week ago. Within three days, there was a test candidate, the request poster (TCB13) confirmed Bottles launched on their own ARM64 hardware, and the issue was closed and marked as completed soon after.
The tagged releases followed on September 7.
If you were wondering why they chose cpak for the test run, Mirko Brombin from the Bottles team says that:
Cpak is being used for this test because it is the first packaging path where the application, Wine base and native ARM CI are available together.
The other part of the release is the inclusion of Soda 11.0-10, which comes with a range of updates. Battle.net crashing on startup is the issue that some of you will notice first. It has been fixed, and the underlying problem was XInput starting up without a Steam game ID.
For VR workloads, 64-bit Windows OpenXR apps can now connect to a host runtime such as Monado or WiVRn directly without needing to keep Steam or SteamVR running. You can go through the changelog (linked above) to learn more about this Soda release.
Installing it
Currently, the test ARM64 build ships only as a cpak, the OCI-based package format from the Containerpak project. Work is underway on getting the Flatpak release ready for this platform.
That said, you can quickly install the cpak test release on your ARM64 devices by running the following command:
cpak install github.com/bottlesdevs/bottlesIf you didn’t know, cpak is a packaging format that treats apps as OCI container images, each paired with a small manifest that lists its permissions and dependencies.
How cpak differs from Flatpak is that it does not lean on runtimes and portals the way Flatpak does. The cpak runtime mounts the OCI image directly, the manifest decides what the app can touch, and packages install from a Git origin instead of a central store.
![]()
