Commit fd115355 authored by Alexandre Julliard's avatar Alexandre Julliard

Release 9.0.

parent 3d4ee138
Pipeline #12670 failed
The Wine development release 9.0-rc5 is now available. This is
expected to be the last release candidate before the final 9.0.
The Wine team is proud to announce that the stable release Wine 9.0
is now available.
What's new in this release:
- Bug fixes only, we are in code freeze.
This release represents a year of development effort and over 7,000
individual changes. It contains a large number of improvements that
are listed below. The main highlights are the new WoW64 architecture
and the experimental Wayland driver.
The source is available at <https://dl.winehq.org/wine/source/9.0/wine-9.0-rc5.tar.xz>
The source is available at <https://dl.winehq.org/wine/source/9.0/wine-9.0.tar.xz>
Binary packages for various distributions will be available
from <https://www.winehq.org/download>
......@@ -14,86 +16,312 @@ You will find documentation on <https://www.winehq.org/documentation>
Wine is available thanks to the work of many people.
See the file [AUTHORS][1] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.0-rc5/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.0-rc5 (total 22):
- #38780 AArch64 platforms: register X18 (TEB) must remain reserved for Wine to run 64-bit ARM Windows applications (Distro aarch64 toolchains need '-ffixed-x18' default, loader/libc/userland)
- #46777 Two Worlds 2 crashes on start
- #47406 Add support for debug symbols in separate files
- #49852 Performance regression in "msvcrt: Use correct code page in _write when outputing to console."
- #50998 Failed to open error Word 2007 (c0000135)
- #52491 SpaceDesk fails to connect to server
- #52962 dinput:force_feedback breaks ntoskrnl.exe:ntoskrnl on Windows 7/8
- #53319 robot battle game extremely slow after wine version 7.11 and above
- #54387 Pantsylvania crashes if Windows version is set to 3.1
- #54401 PhotoFiltre not printing
- #55010 psapi:psapi_main - test_EnumProcessModulesEx() sometimes gets a 0 image size on Windows 8
- #55497 Jennifer is Missing (Katjas Geheimnis) by Tivoli crashes on start
- #55731 advapi32:eventlog - test_eventlog_start() fails on Windows 7 & 10 2004 & 2009
- #55784 wldap32:parse - test_ldap_bind_sA() claims the server is down on w1064v2009
- #56070 BVE trainsim doesn't show its logo in the main window.
- #56113 Unfortunate Spacemen crashes on start
- #56117 Celtic Kings runs out of memory in mere seconds when music is enabled
- #56130 Wine is broken on Termux since 8.17-39-g25db1c5d49d
- #56134 VA-11 HALL-A crashes on startup
- #56149 Celtic Kings demo: window decorations missing in virtual desktop (VD size = desktop size)
- #56150 Wine 8.18 - Fedora 37 - Winwing F16EX joystick - dinput only reports 10 buttons
- #56152 "Script error: Handler not defined #FileIO" in "TKKG 1" (EN: Jennifer is Missing, DE: Katjas Geheimnis - Tivoli)
### Changes since 9.0-rc4:
```
Akihiro Sagawa (5):
d3d8/tests: Test the presentation parameters after creating a device.
d3d9/tests: Test the presentation parameters after creating a device.
d3d8/tests: Test the presentation parameters after creating an additional swap chain.
d3d9/tests: Test the presentation parameters after creating an additional swap chain.
d3d9: Update presentation parameters when creating a swap chain.
Alex Henrie (1):
winspool: Keep driver_9x in scope while it is in use.
Alexandre Julliard (2):
krnl386: Use NtContinue to restore the full context.
krnl386: Align the stack before calling the entry point.
Bernhard Übelacker (1):
msvcrt: Protect setlocale against concurrent accesses.
Enol Puente (1):
po: Update Asturian translation.
Gabriel Ivăncescu (4):
Revert "winex11: Use the correct root window for virtual desktops.".
winex11: Set MWM_FUNC_RESIZE for fullscreen desktop windows.
winex11: Update Virtual Desktop fullscreen WM state after setting window pos.
winex11: Move the update_desktop_fullscreen callsite to update_net_wm_states.
Hans Leidekker (2):
wldap32/tests: Skip tests when the server can't be reached.
wininet/tests: Update expected winehq.org certificate.
Jacek Caban (1):
gitlab: Cache config.cache in Clang builds.
Jinoh Kang (4):
ntdll/tests: Fix x86-32 extended context end offset in test_copy_context().
ntdll/tests: Fix incorrect calculation of context length in test_copy_context().
ntdll/tests: Don't hard code the maximum XState length in test_extended_context().
ntdll/tests: Fix xstate tests failing on Windows 11 and CPU with more XSAVE features.
Nikolay Sivov (2):
mfreadwrite/tests: Skip tests if D3D9 is unusable.
mf/tests: Skip tests if D3D9 is unusable.
Rémi Bernon (3):
dmusic: Clone streams instead of allocating wave data.
ntoskrnl.exe/tests: Use SUOI_FORCEDELETE when uninstalling the driver.
winewayland: Add missing breaks in keyboard layout switch.
Zebediah Figura (2):
wined3d: Avoid WARN() when failing to allocate a GL BO without a context.
wined3d: Only suballocate dynamic buffers.
```
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.0/AUTHORS
## What's new in Wine 9.0
### WoW64
- All transitions from Windows to Unix code go through the NT syscall
interface. This is a major milestone that marks the completion of the
multi-year re-architecturing work to convert modules to PE format and
introduce a proper boundary between the Windows and Unix worlds.
- All modules that call a Unix library contain WoW64 thunks to enable calling
the 64-bit Unix library from 32-bit PE code. This means that it is possible to
run 32-bit Windows applications on a purely 64-bit Unix installation. This is
called the _new WoW64 mode_, as opposed to the _old WoW64 mode_ where 32-bit
applications run inside a 32-bit Unix process.
- The new WoW64 mode is not yet enabled by default. It can be enabled by passing
the `--enable-archs=i386,x86_64` option to configure. This is expected to work
for most applications, but there are still some limitations, in particular:
- Lack of support for 16-bit code.
- Reduced OpenGL performance and lack of `ARB_buffer_storage` extension
support.
- The new WoW64 mode finally allows 32-bit applications to run on recent macOS
versions that removed support for 32-bit Unix processes.
### Wayland driver
- There is an experimental Wayland graphics driver. It's still a work in
progress, but already implements many features, such as basic window
management, multiple monitors, high-DPI scaling, relative motion events, and
Vulkan support.
- The Wayland driver is not yet enabled by default. It can be enabled through
the `HKCU\Software\Wine\Drivers` registry key by running:
wine reg.exe add HKCU\\Software\\Wine\\Drivers /v Graphics /d x11,wayland
and then making sure that the `DISPLAY` environment variable is unset.
### ARM64
- The completion of the PE/Unix separation means that it's possible to run
existing Windows binaries on ARM64.
- The loader supports loading ARM64X and ARM64EC modules.
- The 32-bit x86 emulation interface is implemented. No emulation library is
provided with Wine at this point, but an external library that exports the
interface can be used, by specifying its name in the
`HKLM\Software\Microsoft\Wow64\x86` registry key. The [FEX emulator][2]
implements this interface when built as PE.
- There is initial support for building Wine for the ARM64EC architecture, using
an experimental LLVM toolchain. Once the toolchain is ready, this will be used
to do a proper ARM64X build and enable 64-bit x86 emulation.
[2]: https://fex-emu.com
### Graphics
- The PostScript driver is reimplemented to work from Windows-format spool files
and avoid any direct calls from the Unix side.
- WinRT theming supports a dark theme option, with a corresponding toggle in
WineCfg.
- The Vulkan driver supports up to version 1.3.272 of the Vulkan spec.
- A number of GdiPlus functions are optimized for better graphics performance.
### Direct3D
- The multi-threaded command stream sleeps instead of spinning when not
processing rendering commands. This lowers power consumption in programs which
do not occupy the command stream's entire available bandwidth. Power
consumption should be comparable to when the multi-threaded command stream is
disabled.
- Direct3D 10 effects support many more instructions.
- Various optimizations have been made to core WineD3D and the Vulkan backend.
- The Vulkan renderer properly validates that required features are supported by
the underlying device, and reports the corresponding Direct3D feature level to
the application.
- `D3DXFillTextureTX` and `D3DXFillCubeTextureTX` are implemented.
- The legacy OpenGL ARB shader backend supports shadow sampling via
`ARB_fragment_program_shadow`.
- The HLSL compiler supports matrix majority compilation flags.
- `D3DXLoadMeshHierarchyFromX` and related functions support user data loading
via `ID3DXLoadUserData`.
### Audio / Video
- The foundation of several of the DirectMusic modules is implemented. Many
tests are added to validate the behavior of the dmime sequencer and the
dmsynth MIDI synthesizer.
- DLS1 and DLS2 sound font loading is implemented, as well as SF2 format for
compatibility with Linux standard MIDI sound fonts.
- MIDI playback is implemented in dmsynth, with the integration of the software
synthesizer from the FluidSynth library, and using DirectSound for audio
output.
- Doppler shift is supported in DirectSound.
- The Indeo IV50 Video for Windows decoder is implemented.
### DirectShow
- The Windows Media Video (WMV) decoder DirectX Media Object (DMO) is
implemented.
- The DirectShow Audio Capture filter is implemented.
- The DirectShow MPEG‑1 Stream Splitter filter supports video and system streams
as well as audio streams.
- The DirectShow MPEG‑1 Video Decoder filter is implemented.
### Input devices
- DirectInput action maps are implemented, improving compatibility with many old
games that use this to map controller inputs to in-game actions.
### Desktop integration
- URL/URI protocol associations are exported as URL handlers to the Linux
desktop.
- Monitor information like name and model id are retrieved from the physical
monitor's Extended Display Identification Data (EDID).
- In full-screen desktop mode, the desktop window can be closed through the
"Exit desktop" entry in the Start menu.
### Internationalization
- IME implementation is improved, with better support for native Windows IME
implementations. Many tests are added to validate the expected behavior of
these custom IMEs.
- Linux IME integration is improved, using over-the-spot or on-the-spot input
styles whenever possible, and more accurate IME message sequences.
- Locale data is generated from the Unicode CLDR database version 44. The
following additional locales are supported: `bew-ID`, `blo-BJ`, `csw-CA`,
`ie-EE`, `mic-CA`, `prg-PL`, `skr-PK`, `tyv-RU`, `vmw-MZ`, `xnr-IN`, and
`za-CN`.
- The user interface is translated to Georgian, bringing the total of full
translations to 16 languages, with partial translations to another 31
languages.
- Unicode character tables are based on version 15.1.0 of the Unicode Standard.
- The timezone data is generated from the IANA timezone database version 2023c.
- Locales using a script name, like `zh-Hans`, are also supported on macOS.
### Kernel
- The default Windows version for new prefixes is set to Windows 10.
- Address space layout randomization (ASLR) is supported for modern PE binaries,
to avoid issues with address space conflicts. Note that the selected load
addresses are not yet properly randomized.
- The Low Fragmentation Heap (LFH) is implemented for better memory allocation
performance.
- The virtual memory allocator supports memory placeholders, to allow
applications to reserve virtual space.
- The 64-bit loader and preloader are built as position-independent executables
(PIE), to free up some of the 32-bit address space.
- Stack unwinding works correctly across NT syscalls and user callbacks.
### Internet and networking
- All builtin MSHTML objects are proper Gecko cycle collector participants.
- Synchronous XMLHttpRequest mode is supported in MSHTML.
- WeakMap object is implemented in JScript.
- The Gecko engine is updated to version 2.47.4.
- Network interface change notifications are implemented.
### Cryptography and security
- Smart cards are supported in the Winscard dll, using the Unix PCSClite
library.
- Diffie-Hellman keys are supported in BCrypt.
- The Negotiate security package is implemented.
### Mono / .NET
- The Mono engine is updated to version [8.1.0][3].
[3]: https://github.com/madewokherd/wine-mono/releases/tag/wine-mono-8.1.0
### Builtin applications
- The Wine Debugger (winedbg) uses the Zydis library for more accurate x86
disassembly.
- WineCfg supports selecting old (pre-XP) Windows versions also in 64-bit
prefixes, to enable using ancient applications with the new WoW64 mode.
- All graphical builtin applications report errors with a message box instead of
printing messages on the console.
- The `systeminfo` application prints various data from the Windows Management
Instrumentation database.
- The `klist` application lists Kerberos tickets.
- The `taskkill` application supports terminating child processes.
- The `start` application supports a `/machine` option to select the
architecture to use when running hybrid x86/ARM executables.
- Most of the functionality of the `tasklist` application is implemented.
- The `findstr` application provides basic functionality.
### Development tools
- The WineDump tool supports printing the contents of Windows registry files
(REGF format), as well as printing data for both architectures in hybrid
x86/ARM64 PE files.
- The `composable`, `default_overload`, `deprecated`, and `protected` attributes
are supported in the IDL compiler.
- The `libwine.so` library is removed. It was no longer used, and deprecated
since Wine 6.0. Winelib ELF applications that were built with Wine 5.0 or
older will need a rebuild to run on Wine 9.0.
### Bundled libraries
- The FluidSynth library version 2.3.3 is bundled and used for DirectMusic.
- The math library of Musl version 1.2.3 is bundled and used for the math
functions of the C runtime.
- The Zydis library version is 4.0.0 is bundled and used for x86 disassembly
support.
- Vkd3d is updated to the upstream release 1.10.
- Faudio is updated to the upstream release 23.12.
- LDAP is updated to the upstream release 2.5.16.
- LCMS2 is updated to the upstream release 2.15.
- LibMPG123 is updated to the upstream release 1.32.2.
- LibPng is updated to the upstream release 1.6.40.
- LibTiff is updated to the upstream release 4.6.0.
- LibXml2 is updated to the upstream release 2.11.5.
- LibXslt is updated to the upstream release 1.1.38.
- Zlib is updated to the upstream release 1.3.
### External dependencies
- The Wayland client library, as well as the xkbcommon and xkbregistry
libraries, are used when building the Wayland driver.
- The PCSClite library is used for smart card support. On macOS, the PCSC
framework can be used as an alternative to PCSClite.
- For PE builds, a cross-compiler that supports `.seh` directives for exception
handling is required on all platforms except i386.
Wine version 9.0-rc5
Wine version 9.0
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.71 for Wine 9.0-rc5.
# Generated by GNU Autoconf 2.71 for Wine 9.0.
#
# Report bugs to <wine-devel@winehq.org>.
#
......@@ -611,8 +611,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='Wine'
PACKAGE_TARNAME='wine'
PACKAGE_VERSION='9.0-rc5'
PACKAGE_STRING='Wine 9.0-rc5'
PACKAGE_VERSION='9.0'
PACKAGE_STRING='Wine 9.0'
PACKAGE_BUGREPORT='wine-devel@winehq.org'
PACKAGE_URL='https://www.winehq.org'
......@@ -2388,7 +2388,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures Wine 9.0-rc5 to adapt to many kinds of systems.
\`configure' configures Wine 9.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
......@@ -2458,7 +2458,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of Wine 9.0-rc5:";;
short | recursive ) echo "Configuration of Wine 9.0:";;
esac
cat <<\_ACEOF
......@@ -2756,7 +2756,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
Wine configure 9.0-rc5
Wine configure 9.0
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
......@@ -3207,7 +3207,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by Wine $as_me 9.0-rc5, which was
It was created by Wine $as_me 9.0, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
......@@ -23361,7 +23361,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by Wine $as_me 9.0-rc5, which was
This file was extended by Wine $as_me 9.0, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
......@@ -23425,7 +23425,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
Wine config.status 9.0-rc5
Wine config.status 9.0
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment