WINE Windows translation layer has matured like a fine... you get the picture
Along with DXVK 2.1, more and better compatibility comes to Linux – we'll drink to that
FOSDEM The WINE Project has reached version 8.0 and DXVK version 2.1 of its Vulkan-based DirectX translation layer. If you'd give Linux a go except for one or two pesky but necessary apps, it's worth a try.
Just over a year ago, we covered the release of WINE 7.0 and it's been working smoothly for us ever since. Now WINE 8.0 is here, and The Reg FOSS desk's trusty Ubuntu machine upgraded itself without even asking – and it still works just fine.
Like Linux itself, WINE has matured rather nicely in recent years, and the result is that things are getting boring – in the good way. You just install it, which is generally little hassle, and then it just works and keeps just working.
A random Windows app – Ability Office 11, in this case – working smoothly on Ubuntu 22.04 thanks to WINE 8
As a result, there are relatively few big-bang features in the release notes. All of WINE can now be built as Windows-style "Portable Executables" rather than the native Linux format of ELF executables. This important step has taken four years of work, and while on its own there's not much visible benefit, it cleans up the split between the Windows-like parts of WINE and the underlying UNIX-native parts. This should help WINE to support 32-bit Windows programs on 64-bit OSes which themselves lack 32-bit support.
Canonical planned to remove 32-bit app support from Ubuntu in 2019, but backtracked after users complained. Apple went ahead and dropped 32-bit support from macOS Catalina the same year.
Work is still under way on removing the dependence on 32-bit libraries, but for now, WINE 8 has what's described as "an experimental 'Windows-like' WoW64 mode," which may not work for all apps, but should mean that you can at least try to start a 32-bit Windows program under WINE 8 even if the underlying OS doesn't support 32-bit binaries at all – including macOS 10.15 and later. This should also improve x86 emulation on 64-bit Arm machines.
Other improvements include better DirectX and .NET support, with WINE's Mono engine updated to version 7.4.0. Support for Common Controls version 6 means better theming and HiDPI display support, which includes a new dark mode.
The WINE Project maintains three different branches –
winehq-staging – as the project's own wiki explains. Last January, we installed the new stable version, which at that time was 7.0. Since then, roughly every couple of months, the project puts out a new point release for that stable version, fixing minor bugs and issues but not changing the version number.
- helloSystem 0.8: A friendly, all-graphical FreeBSD
- Unix is dead. Long live Unix!
- Version 5 of the Endless OS enters testing
- Fedora 38 is finally taking shape
In contrast, the development branch sees a new point release every couple of weeks, and the staging branch is in almost constant flux. As we installed a stable version, it didn't change for nearly a year until this new release appeared, and then it automatically got upgraded along with the rest of the OS. That's one of the small joys of using an OS with an integrated package manager: so long as software comes from properly configured external repositories, such as the WINE's Ubuntu repo, those apps get updated automatically along with the rest of the OS. The handy
deb-get tool, which we described last year, automates this process for you.
For the most part, it's boring and just works, like many modern distros and like WINE itself. So last week, WINE 8 just appeared, and my lone Windows application just kept on working fine. This particular vulture doesn't need or want many Windows apps, and keeps only a copy of MS Word 2003 around, just for its outliner which helps with drafting larger articles. With the entire application category of outliners fading away this century, the one in MS Word is almost the last decent intrinsic (that is, single-pane) outliner standing, and Word 2003 is the last usable version of the app before it was cursed with the ribbon-based "fluent" interface.
For testing purposes, though, I grabbed a trial version of the latest Ability Office, which worked first time without issues.
Last week also saw the release of version 2.1 of DXKV, which translates Direct3D 9, 10 and 11 API calls to Vulkan calls. As The Reg covered when version 1.0 appeared, Vulkan is a cross-platform 3D graphics API, essentially the modern successor to OpenGL. Direct3D-based Windows games running under WINE on Linux can use DXVK to tap into hardware-accelerated 3D graphics, without the game being written for Linux or needing any Linux support.
The reason for the more R&D effort going into such tools is that a new commercial market is growing in significance: running Windows games on Linux with devices such as Valve's Steam Deck handheld games console. For any ardent non-gamers out there, Valve's Steam is an online video games store, which runs on Windows, Linux, macOS, iOS and Android. After some unfortunate early hiccups, the Steam service now allows quite a few Windows games to run happily – and quickly – on Linux boxes. Valve's Linux-based SteamOS has been around for a decade but the Steam Deck is doing rather well, and that means lots of owners running paid-for Windows apps on Linux machines.
Which in turn means money trickles down to the libraries and tools to make this happen because paying customers expect a smooth, polished experience. And that in turn should benefit corporate customers who are rolling out Linux network clients, but occasionally encounter a stubborn Windows-only app that some staff need.
Yes, of course, you can simply run Windows in a VM and put the app on that, and the VM could in fact run on a terminal server in a datacenter somewhere – but doing it that way means that you need a Windows license for every VM. If WINE can run the app well enough, that could save a lot of money.
WINE's compatibility database looks better with every release, and if things don't work out of the box, there's also Winetricks to help. If that seems like too much effort, but you don't mind spending a little to save the hassle, Codeweavers' Crossover makes it very much easier, and it even supports ChromeOS. ®