Skip to content
Snippets Groups Projects
Commit b0738596 authored by Alexandre Julliard's avatar Alexandre Julliard
Browse files

Release 10.0.

parent 01f18092
No related branches found
Tags wine-10.0
No related merge requests found
Pipeline #40599 skipped
The Wine development release 10.0-rc6 is now available. This is
expected to be the last release candidate before the final 10.0.
The Wine team is proud to announce that the stable release Wine 10.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 6,000
individual changes. It contains a large number of improvements that
are listed below. The main highlights are the new ARM64EC
architecture and the high-DPI scaling support.
The source is available at <https://dl.winehq.org/wine/source/10.0/wine-10.0-rc6.tar.xz>
The source is available at <https://dl.winehq.org/wine/source/10.0/wine-10.0.tar.xz>
Binary packages for various distributions will be available
from the respective [download sites][1].
......@@ -16,59 +18,360 @@ See the file [AUTHORS][3] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/wikis/Download
[2]: https://gitlab.winehq.org/wine/wine/-/wikis/Documentation
[3]: https://gitlab.winehq.org/wine/wine/-/raw/wine-10.0-rc6/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 10.0-rc6 (total 18):
- #47036 C&C Red Alert 2 Yuri's Revenge missing graphical elements
- #48501 U.S. Naval Observatory MICA2 software has annoying error message upon closing
- #50398 Microsoft Office XP 2002 installer shows "Error 25504. Failed to set Feature xyz to the install state of Feature xyz for mode 2." message boxes since Wine 2.12
- #53567 The Medium crashes when starting new game
- #53891 user32:msg - test_swp_paint_regions() fails on Windows 7
- #55263 Boulder Remake doesn't recognise arrow keys (other keys work)
- #56452 Wingdings font seems not to be found; regression test done
- #57019 wineboot crashes in create_bios_processor_values() on 2013 Mac Pro
- #57076 Harmony Assistant 9.9.8d (64 bit) reports missing stoccata.ttf font on startup
- #57077 Micrografx Window Draw 4.0a crashes when backspacing while editing freeform text object
- #57179 File uploads in Hotline Client 1.2.3 hang after about 200 KB
- #57312 Rebuild 3: Broken texture filtering
- #57579 Deformed symbols in LTSpice
- #57610 No windows are shown when using a dual monitor setup
- #57632 fallout 3 radio broke with gstreamer 1.24.10 (9.22 silent, 10rc4 stalls)
- #57652 Some windows have cut bottom and right sides
- #57657 Null pointer dereference in traces
- #57661 Port Royale 2: black screen during intro videos
### Changes since 10.0-rc5:
```
Alexandre Julliard (3):
ieframe/tests: Fix more property change errors for the new test.winehq.org server.
wshom.ocx/tests: Mark a failing tests as todo.
winebth.sys: Don't print an error when Bluetooth is not available.
Bernhard Übelacker (2):
gdiplus/tests: Fix use-after-free of a graphics object (ASan).
kernel32/tests: Avoid stack buffer overflow in get_com_dir_size (ASan).
Elizabeth Figura (2):
msi/tests: Test msidbFeatureAttributesDisallowAdvertise.
msi: Set features to absent if advertising is disallowed.
Esme Povirk (1):
gdiplus/tests: Trace locked bitmap data on failure.
Rémi Bernon (5):
gdi32: Avoid crashing when tracing NULL xform.
configure: Use per-architecture cross flags if they are provided.
winex11: Adjust requested visible rect relative to the previous position.
winex11: Always blit offscreen over any other onscreen clients.
mf/topology_loader: Avoid modifying downstream media type when attempting to connect.
Santino Mazza (1):
gdiplus: Check for MapFont result in generate_font_link_info.
Zhiyi Zhang (1):
winex11.drv: Fix display name in X11DRV_UpdateDisplayDevices().
```
[3]: https://gitlab.winehq.org/wine/wine/-/raw/wine-10.0/AUTHORS
## What's new in Wine 10.0
### ARM64
- The ARM64EC architecture is fully supported, with feature parity with the
ARM64 support.
- Hybrid ARM64X modules are fully supported. This allows mixing ARM64EC and
plain ARM64 code into a single binary. All of Wine can be built as ARM64X
by passing the `--enable-archs=arm64ec,aarch64` option to configure. This
still requires an experimental LLVM toolchain, but it is expected that the
upcoming LLVM 20 release will be able to build ARM64X Wine out of the box.
- The 64-bit x86 emulation interface is implemented. This takes advantage of
the ARM64EC support to run all of the Wine code as native, with only the
application's x86-64 code requiring emulation.
No emulation library is provided with Wine at this point, but an external
library that exports the emulation interface can be used, by specifying
its name in the `HKLM\Software\Microsoft\Wow64\amd64` registry key. The
[FEX emulator][4] implements this interface when built as ARM64EC.
- It should be noted that ARM64 support requires the system page size to be
4K, since that is what the Windows ABI specifies. Running on kernels with
16K or 64K pages is not supported at this point.
[4]: https://fex-emu.com
### Graphics
- High-DPI support is implemented more accurately, and non-DPI aware windows
are scaled automatically, instead of exposing high-DPI sizes to
applications that don't expect it.
- Compatibility flags are implemented to override high-DPI support, either
per-application or globally in the prefix.
- Vulkan child window rendering is supported with the X11 backend, for
applications that need 3D rendering on child windows. This was supported
with OpenGL already, and the Vulkan support is now on par.
- The Vulkan driver supports up to version 1.4.303 of the Vulkan spec. It
also supports the Vulkan Video extensions.
- Font linking is supported in GdiPlus.
### Desktop integration
- A new opt-in modesetting emulation mechanism is available. It is very
experimental still, but can be used to force display mode changes to be
fully emulated, instead of actually changing the display settings.
The windows are being padded and scaled if necessary to fit in the
physical display, as if the monitor resolution were changed, but no actual
modesetting is requested, improving user experience.
- A new Desktop Control Panel applet `desk.cpl` is provided, to inspect and
modify the display configuration. It can be used as well to change the
virtual desktop resolution, or to control the new emulated display
settings.
- Display settings are restored to the default if a process crashes without
restoring them properly.
- System tray icons can be completely disabled by setting `NoTrayItemsDisplay=1`
in the `HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer`
key.
- Shell launchers can be disabled in desktop mode by setting `NoDesktop=1`
in the `HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer`
key.
### Direct3D
- The GL renderer now requires GLSL 1.20, `EXT_framebuffer_object`, and
`ARB_texture_non_power_of_two`. The legacy ARB shader backend is no longer
available, and the `OffscreenRenderingMode` setting has been removed.
- Shader stencil export is implemented for the GL and Vulkan renderers.
- A HLSL-based fixed function pipeline for Direct3D 9 and earlier is
available, providing support for fixed function emulation for the Vulkan
renderer. It can also be used for the GL renderer, by setting the D3D
setting `ffp_hlsl` to a nonzero value using the registry or the
`WINE_D3D_CONFIG` environment variable.
- The Vulkan renderer uses several dynamic state extensions, if available,
with the goal of reducing stuttering in games.
- An alternative GLSL shader backend using vkd3d-shader is now available,
and can be selected by setting the D3D setting `shader_backend` to
`glsl-vkd3d`. Current vkd3d-shader GLSL support is incomplete relative to
the built-in GLSL shader backend, but is being actively developed.
### Direct3D helper libraries
- Initial support for compiling Direct3D effects is implemented using
vkd3d-shader.
- D3DX 9 supports many more bump-map and palettized formats.
- D3DX 9 supports saving palettized surfaces to DDS files.
- D3DX 9 supports mipmap generation when loading volume texture files.
- D3DX 9 supports reading 48-bit and 64-bit PNG files.
### Wayland driver
- The Wayland graphics driver is enabled by default, but the X11 driver
still takes precedence if both are available. To force using the Wayland
driver in that case, make sure that the `DISPLAY` environment variable is
unset.
- Popup windows should be positioned correctly in most cases.
- OpenGL is supported.
- Key auto-repeat is implemented.
### Multimedia
- A new opt-in FFmpeg-based backend is introduced, as an alternative to the
GStreamer backend. It is intended to improve compatibility with Media
Foundation pipelines. It is still in experimental stage though, and more
work will be needed, especially for D3D-aware playback. It can be enabled
by setting the value `DisableGstByteStreamHandler=1` in the
`HKCU\Software\Wine\MediaFoundation` registry key.
- Media Foundation multimedia pipelines are more accurately implemented, for
the many applications that depend on the individual demuxing and decoding
components to be exposed. Topology resolution with demuxer and decoder
creation and auto-plugging is improved.
- DirectMusic supports loading MIDI files.
### Input / HID devices
- Raw HID devices with multiple top-level collections are correctly parsed,
and exposed as individual devices to Windows application.
- Touchscreen input and events are supported with the X11 backend, and basic
multi-touch support through the `WM_POINTER` messages is
implemented. Mouse window messages such as `WM_LBUTTON*`, `WM_RBUTTON*`,
and `WM_MOUSEMOVE` are also generated from the primary touch events.
- A number of USER32 internal structures are stored in shared memory, to
improve performance and reduce Wine server load by avoiding server
round-trips.
- An initial version of a Bluetooth driver is implemented, with some basic
functionality.
- The Joystick Control Panel applet `joy.cpl` enables toggling some advanced
settings.
- The Dvorak keyboard layout is properly supported.
### Internationalization
- Locale data is generated from the Unicode CLDR database version 46. The
following additional locales are supported: `kaa-UZ`, `lld-IT`, `ltg-LV`,
and `mhn-IT`.
- Unicode character tables are based on version 16.0.0 of the Unicode
Standard.
- The timezone data is based on version 2024a of the IANA timezone database.
### Internet and networking
- The JavaScript engine supports a new object binding interface, used by
MSHTML to expose its objects in a standard-compliant mode. This eliminates
the distinction between JavaScript objects and host objects within the
engine, allowing scripts greater flexibility when interacting with MSHTML
objects.
- Built-in MSHTML functions are proper JavaScript function objects, and
other properties use accessor functions where appropriate.
- MSHTML supports prototype and constructor objects for its built-in
objects.
- Function objects in legacy MSHTML mode support the `call` and `apply`
methods.
- The JavaScript garbage collector operates globally across all script
contexts within a thread, improving its accuracy.
- JavaScript ArrayBuffer and DataView objects are supported.
### RPC / COM
- RPC/COM calls are fully supported on ARM platforms, including features
such as stubless proxies and the typelib marshaler.
- All generated COM proxies use the fully-interpreted marshaling mode on all
platforms.
### C runtime
- C++ exceptions and Run-Time Type Information (RTTI) are supported on ARM
platforms.
- The ANSI functions in the C runtime support the UTF-8 codepage.
### Kernel
- Process elevation is implemented, meaning that processes run as a normal
user by default but can be elevated to administrator access when required.
- Disk labels are retrieved from DBus when possible instead of accessing the
raw device.
- Mailslots are implemented directly in the Wine server instead of using a
socketpair, to allow supporting the full Windows semantics.
- Asynchronous waits for serial port events are reimplemented. The previous
implementation was broken by the PE separation work in Wine 9.0.
- The full processor XState is supported in thread contexts, enabling
support for newer vector extensions like AVX-512.
### macOS
- When building with Xcode >= 15.3 on macOS, the preloader is no longer
needed.
- Syscall emulation for applications doing direct NT syscalls is supported
on macOS Sonoma and later.
### Builtin applications
- The input parser of the Command Prompt tool `cmd` is rewritten, which
fixes a number of long-standing issues, particularly with variable
expansion, command chaining, and FOR loops.
- The Wine Debugger `winedbg` uses the Capstone library to enable
disassembly on all supported CPU types.
- The File Comparison tool `fc` supports comparing files with default
options.
- The `findstr` application supports regular expressions and case
insensitive search.
- The `regsvr32` and `rundll32` applications can register ARM64EC modules.
- The `sort` application is implemented.
- The `where` application supports searching files with default options.
- The `wmic` application supports an interactive mode.
### Miscellaneous
- The ODBC library supports loading Windows ODBC drivers, in addition to
Unix drivers that were already supported through libodbc.so.
- Optimal Asymmetric Encryption Padding (OAEP) is supported for RSA
encryption.
- Network sessions are supported in DirectPlay.
### Development tools
- The IDL compiler generates correct format strings in interpreted stubs
mode (`/Oicf` in midl.exe) on all platforms. Interpreted mode is now the
default, the old mixed-mode stub generation can be selected with `widl
-Os`.
- The IDL compiler can generate typelibs in the old SLTG format with the
`--oldtlb` command-line option.
- The `winegcc` and `winebuild` tools can create hybrid ARM64X modules with
the `-marm64x` option.
- The `winedump` tool supports dumping minidump tables, C++ exception data,
CLR tables, and typelib resources.
### Build infrastructure
- The `makedep` tool generates a standard-format `compile_commands.json`
file that can be used with various IDEs.
- Using `.def` files as import libraries with `winegcc` is no longer
supported, all import libraries need to be in the standard `.a` format. If
necessary, it is possible to convert a `.def` library to `.a` format using
`winebuild --implib -E libfoo.def -o libfoo.a`.
- Static analysis is supported using the Clang Static Analyzer. It can be
enabled by passing the `--enable-sast` option to configure. This is used
to present Code Quality reports with the Gitlab CI.
### Bundled libraries
- The Capstone library version 5.0.3 is bundled and used for disassembly
support in the Wine Debugger, to enable disassembly of ARM64 code. This
replaces the bundled Zydis library, which has been removed.
- Vkd3d is updated to the upstream release [1.14][5].
- Faudio is updated to the upstream release 24.10.
- FluidSynth is updated to the upstream release 2.4.0.
- LDAP is updated to the upstream release 2.5.18.
- LCMS2 is updated to the upstream release 2.16.
- LibJpeg is updated to the upstream release 9f.
- LibMPG123 is updated to the upstream release 1.32.9.
- LibPng is updated to the upstream release 1.6.44.
- LibTiff is updated to the upstream release 4.7.0.
- LibXml2 is updated to the upstream release 2.12.8.
- LibXslt is updated to the upstream release 1.1.42.
- Zlib is updated to the upstream release 1.3.1.
[5]: https://gitlab.winehq.org/wine/vkd3d/-/releases/vkd3d-1.14
### External dependencies
- The FFmpeg libraries are used to implement the new Media Foundation
backend.
- A PE cross-compiler is required for 32-bit ARM builds, pure ELF builds are
no longer supported (this was already the case for 64-bit ARM).
- Libunwind is no longer used on ARM platforms since they are built as
PE. It's only used on x86-64.
Wine version 10.0-rc6
Wine version 10.0
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.72 for Wine 10.0-rc6.
# Generated by GNU Autoconf 2.72 for Wine 10.0.
#
# Report bugs to <wine-devel@winehq.org>.
#
......@@ -603,8 +603,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='Wine'
PACKAGE_TARNAME='wine'
PACKAGE_VERSION='10.0-rc6'
PACKAGE_STRING='Wine 10.0-rc6'
PACKAGE_VERSION='10.0'
PACKAGE_STRING='Wine 10.0'
PACKAGE_BUGREPORT='wine-devel@winehq.org'
PACKAGE_URL='https://www.winehq.org'
 
......@@ -2414,7 +2414,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 10.0-rc6 to adapt to many kinds of systems.
'configure' configures Wine 10.0 to adapt to many kinds of systems.
 
Usage: $0 [OPTION]... [VAR=VALUE]...
 
......@@ -2484,7 +2484,7 @@ fi
 
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of Wine 10.0-rc6:";;
short | recursive ) echo "Configuration of Wine 10.0:";;
esac
cat <<\_ACEOF
 
......@@ -2796,7 +2796,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
Wine configure 10.0-rc6
Wine configure 10.0
generated by GNU Autoconf 2.72
 
Copyright (C) 2023 Free Software Foundation, Inc.
......@@ -3261,7 +3261,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 10.0-rc6, which was
It was created by Wine $as_me 10.0, which was
generated by GNU Autoconf 2.72. Invocation command line was
 
$ $0$ac_configure_args_raw
......@@ -23858,7 +23858,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 10.0-rc6, which was
This file was extended by Wine $as_me 10.0, which was
generated by GNU Autoconf 2.72. Invocation command line was
 
CONFIG_FILES = $CONFIG_FILES
......@@ -23922,7 +23922,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 10.0-rc6
Wine config.status 10.0
configured by $0, generated by GNU Autoconf 2.72,
with options \\"\$ac_cs_config\\"
 
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment