From da816802e022e8aa8eb197de94e18305a92766c1 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard <julliard@winehq.org> Date: Tue, 21 Jan 2020 18:03:21 +0100 Subject: [PATCH] Release 5.0. Signed-off-by: Alexandre Julliard <julliard@winehq.org> --- ANNOUNCE | 510 ++++++++++++++++++++++++++++++++++++++++++------------ VERSION | 2 +- configure | 18 +- 3 files changed, 411 insertions(+), 119 deletions(-) diff --git a/ANNOUNCE b/ANNOUNCE index 2d7087be2d2..c2e91f1625f 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,15 +1,25 @@ -The Wine development release 5.0-rc6 is now available. +The Wine team is proud to announce that the stable release Wine 5.0 +is now available. -Barring any last minute issue, this is expected to be the last -release candidate before the final 5.0. +This release represents a year of development effort and over 7,400 +individual changes. It contains a large number of improvements that +are listed in the release notes below. The main highlights are: -What's new in this release (see below for details): - - Bug fixes only, we are in code freeze. + - Builtin modules in PE format. + - Multi-monitor support. + - XAudio2 reimplementation. + - Vulkan 1.1 support. + +This release is dedicated to the memory of Józef Kucia, who passed +away in August 2019 at the young age of 30. Józef was a major +contributor to Wine's Direct3D implementation, and the lead developer +of the vkd3d project. His skills and his kindness are sorely missed by +all of us. The source is available from the following locations: - https://dl.winehq.org/wine/source/5.0/wine-5.0-rc6.tar.xz - http://mirrors.ibiblio.org/wine/source/5.0/wine-5.0-rc6.tar.xz + https://dl.winehq.org/wine/source/5.0/wine-5.0.tar.xz + http://mirrors.ibiblio.org/wine/source/5.0/wine-5.0.tar.xz Binary packages for various distributions will be available from: @@ -25,110 +35,392 @@ AUTHORS in the distribution for the complete list. ---------------------------------------------------------------- -Bugs fixed in 5.0-rc6 (total 21): - - 20465 Brothers In Arms Hell's Highway : Setup asks for DVD for every .cab file (SetupPromptForDiskA/W should only show a dialog if the file doesn't exist) - 37598 Double dark line inside default button, e.g. 'OK' / 'SAVE' - 41459 32bit 7zFM.exe closes unexpectedly with error "The system cannot allocate the required amount of memory" - 43271 Tomb Raider (2013) - unable to use interact key with CSMT - 43272 Crash after click Start button in virtual desktop mode when using Steam - 44408 Tetris for Windows has wrong colors for the game pieces and the score box - 44594 MindManager Pro v7.0 shows XML processing error on startup (needs support for 'exhaustive-errors', 'external-general-entities' and 'external-parameter-entities' features in MSXML SAX reader) - 44664 The Five Cores - distorted rendering - 45732 Far Cry 5 Cannot Steer Land Vehicles - 46036 7-Zip: Endless / infinite dialogs open when you copy a selection of directories from within one .zip file into another - 46361 Sonic Mania freezes/crashes when we use a gamepad on 4.0+ - 46616 ABBYY FineReader 14 crashes during installation - 47433 Accel World vs. Sword Art Online needs WTSRegisterSessionNotificationEx() to return true. - 47923 kernel32:debugger tests sometimes fail on Windows 10 - 48335 Serious Sam Classic TFE/TSE crash on saving the game - 48416 wine: Call from 0x7bc7b154 to unimplemented function api-ms-win-core-rtlsupport-l1-2-0.dll.RtlInstallFunctionTableCallback, aborting - 48444 Dark Messiah of Might and Magic demo: crash on start - 48452 The Witcher Enhanced Edition (GOG) some HUD graphics distorted starting wine 5.0-rc4 - 48454 Acrobat Reader 11 crashes a few seconds after startup - 48458 Changes to scanf.c and scanf.h have resulted in Star Citizen incorrectly showing green lighting - 48469 Pale Moon crashes when loading web page from address bar +What's new in Wine 5.0 +====================== ----------------------------------------------------------------- -Changes since 5.0-rc5: - -Alexandre Julliard (4): - kernel32: Catch stack overflow faults in IsBad*Ptr() functions. - winecfg: Fix list of configurable dlls to account for PE files. - msvcrt: Use unsigned comparisons in strcmp and strncmp. - wine.inf: Remove the winebus service also for ARM64. - -Alistair Leslie-Hughes (2): - dinput: Cap the buffer size to 20. - gdiplus: Check status as well before using bitmap. - -Andrew Eikum (1): - mscoree: Don't print FIXME for unused config file elements. - -André Hentschel (1): - d3dx9: Fix some spec file entries. - -Can Taşan (1): - po: Update Turkish translation. - -Charles Davis (1): - dbghelp: Look for .eh_fram if no .eh_frame is found. - -Gabriel Ivăncescu (4): - strmbase: Detach the window from the parent before destroying it. - quartz/tests: Test video window parent's WM_DESTROY notification. - winex11.drv: Don't confine the pointer to any window when just checking for active grab. - msctf: Clear the corresponding DocumentMgr pointers for Associated Focus Windows on destruction. - -Jacek Caban (9): - jscript/tests: Use wide char string literals instead of parse_script_with_error_a. - jscript/tests: Use wide char string literals instead of parse_htmlscript_a. - jscript/tests: Use wide char string literals instead of parse_script_a. - jscript/tests: Use wide char string literals instead of a2bstr. - jscript/tests: Use wide char string literals instead of strcmp_wa. - jscript/tests: Use wide char strings in a few more places. - kernel32/tests: Skip instruction pointer check of the last exception in exception race tests. - jscript/tests: Use wide char string literals in activex.c. - jscript/tests: Use wide char string literals in caller.c. - -Jeff Smith (1): - user.exe16: Releasing DC does not disable it. - -Michael Müller (2): - setupapi: Add support for IDF_CHECKFIRST flag in SetupPromptForDiskW. - setupapi/tests: Add test for IDF_CHECKFIRST and SetupPromptForDiskA/W. - -Nikolay Sivov (2): - comctl32/tests: Add some more ListView customdraw tests. - dwrite/tests: Improve DrawUnderline() test reliability by using text tested font actually supports. - -Paul Gofman (1): - d3dx9: Pass D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY when appropriate. - -Piotr Caban (5): - msvcrt: Pass catch_func_nested_frame struct to cxx_frame_handler. - msvcrt: Pass catch_func_nested_frame struct to call_catch_block. - msvcrt: Fix handling tryblocks inside current catch block on nested exception. - msvcrt: Fix floating point numbers scanning when null-byte is preceding the number. - urlmon: Fix CoInternetParse{Url,IUri} spec entry. - -Zebediah Figura (11): - httpapi/tests: Avoid depending on the availability of specific ports. - netapi32/tests: Fix the size passed to GetUserNameW() and GetComputerNameW() (Coverity). - include: Add more NTSTATUS codes. - rpcrt4/tests: Pass the default maximum call limit to RpcServerListen(). - comdlg32/tests: Use GetTempPathA() instead of the current directory in test_extension(). - explorerframe/tests: Remove some failing tests. - user32/tests: Fix some test failures with Windows 10. - msi/tests: Fix test_feature_override() to properly clean up its features on removal. - msi/tests: Fix a crash on Windows 10. - urlmon/tests: Avoid testing that only certain interfaces are queried. - urlmon/tests: Make the url tests a bit less verbose by default. - -Zhiyi Zhang (2): - ntdll: Fix some Rtl* functions having wrong calling convention. - api-ms-win-core-rtlsupport-l1-2-0: Add missing spec file entries. +*** PE modules + +- Most modules are built in PE format (Portable Executable, the + Windows binary format) instead of ELF when the MinGW compiler is + available. This helps various copy protection schemes that check + that the on-disk and in-memory contents of system modules are + identical. + +- The actual PE binaries are copied into the Wine prefix instead of + the fake DLL files. This makes the prefix look more like a real + Windows installation, at the cost of some extra disk space. + +- Modules that have been converted to PE can use standard wide-char C + functions, as well as wide-char character constants like L"abc". + This makes the code easier to read. + +- Not all modules have been converted to PE yet; this is an ongoing + process that will continue during the Wine 5.x development series. + +- The Wine C runtime is updated to support linking to MinGW-compiled + binaries; it is used by default instead of the MinGW runtime when + building DLLs. + + +*** Graphics + +- Multiple display adapters and monitors are properly supported, + including dynamic configuration changes. + +- The Vulkan driver supports up to version 1.1.126 of the Vulkan spec. + +- The WindowsCodecs library is able to convert more bitmap formats, + including palette-indexed formats. + + +*** Direct3D + +- Fullscreen Direct3D applications inhibit the screensaver. + +- DXGI swapchain presents inform the application when the + corresponding window is minimized. This typically allows + applications to reduce CPU usage while minimized, and is in some + cases required to allow the application window to be restored again. + +- Switching between fullscreen and windowed modes using the standard + Alt+Enter combination is implemented for DXGI applications. + +- The following features are implemented for Direct3D 12 applications: + - Switching between fullscreen and windowed. + - Changing display modes. + - Scaled presents. + - Swap intervals. + These features were previously already implemented for earlier + versions of the Direct3D API. + +- The handling of various edge cases is improved. Among others: + - Out of range reference values for the alpha and stencil tests. + - Sampling 2D resources with 3D samplers and vice versa. + - Drawing with mapped textures and buffers. + - Usage of invalid DirectDraw clipper objects. + - Creating Direct3D devices on invalid Windows, like the desktop + window. + - Viewports with a minimum Z larger than or equal to the maximum Z. + - Resources bound through both shader-resource views and + render-target or depth-stencil views at the same time. + - Blits between formats with and without alpha components. + Since well-behaved applications don't rely on these edge cases, they + typically only affect one or two applications each. There are + nevertheless quite a number of them. + +- Dirty texture regions are tracked more accurately for Direct3D 8 and 9 + texture uploads. + +- Uploads of S3TC-compressed 3D textures require less address space. + Since 3D textures can be potentially large, and address space + exhaustion is a concern for 32-bit applications, S3TC-compressed 3D + textures are uploaded per-slice, instead of in a single upload. + +- The ID3D11Multithread interface is implemented. + +- Various lighting calculation fixes and improvements for older + DirectDraw applications have been made. + +- Limited support for blits across swapchains is implemented. + +- More shader reflection APIs are implemented. + +- The wined3d CPU blitter can handle compressed source resources. + Support for compressed destination resources was already implemented + in a previous release. + +- The Direct3D graphics card database recognizes more graphics cards. + +- New HKEY_CURRENT_USER\Software\Wine\Direct3D registry keys: + - "shader_backend" (REG_SZ) + The shader backend to use. Possible values are "glsl" (default) + for GLSL, "arb" for ARB vertex/fragment programs and "none" to + disable shader support. + - "strict_shader_math" (REG_DWORD) + Enable (0x1) or disable (0x0, default) stricter translation of + Direct3D shaders, potentially at a performance cost. This + currently only makes a difference with the default GLSL shader + backend in combination with the proprietary NVIDIA drivers. + +- Deprecated HKEY_CURRENT_USER\Software\Wine\Direct3D registry key: + - "UseGLSL" + This has been superseded by the "shader_backend" setting above. + + +*** D3DX + +- Support for compressing textures using S3TC-compression is + implemented. + +- Various operations, like e.g. texture fills, on unmappable surfaces + are implemented more correctly. Previously their implementation + relied on the underlying Direct3D implementation not enforcing + mapping restrictions. + +- Various improvements and fixes have been made to the effect + framework. + + +*** Kernel + +- Most of the functions that used to be in Kernel32 are moved to + KernelBase, to follow the architecture of recent Windows versions. + +- Libraries of the wrong 32/64-bitness are ignored when found in the + search path, to enable loading the correct one if it's found further + in the path. + +- Kernel objects are better emulated for device drivers that expect to + manipulate objects from the kernel side. + +- The kernel-level synchronization objects like spin locks, fast + mutexes, remove locks, and resource variables are implemented. + +- The system battery state is properly reported to applications. + + +*** User interface + +- Minimized windows are displayed using their title bar instead of the + old Windows 3.1-style icons. + +- The new button styles Split Buttons and Command Links are + implemented. + +- The Edit control sets margins correctly also for CJK fonts. + + +*** Desktop integration + +- Symbolic links to the corresponding Unix directories are created for + the 'Downloads' and 'Templates' folders. + + +*** Input devices + +- Plug & Play device drivers can be installed and loaded on startup. + +- Game controllers are better supported, including proper support for + hat switch, wheel, gas and brake controls. + +- The old joystick API of Linux versions earlier than 2.2 is no longer + supported. + + +*** .NET + +- The Mono engine is updated to version 4.9.4, including parts of the + Windows Presentation Foundation (WPF) framework. + +- The Gecko and Mono add-ons support shared installation, where the + files are used directly from a global location under /usr/share/wine + instead of being copied into every new prefix. + + +*** Internet and networking + +- The Gecko engine is refreshed to support recent toolchains. + +- A number of new HTML APIs are implemented. + +- MSHTML supports some SVG elements. + +- Error object and exception propagation are supported in VBScript. + +- A number of VBScript builtin functions are implemented. + +- JScript EcmaScript compliant mode is extended to support more + features. + +- JScript and VBScript script objects expose type info interfaces. + +- The HTTP proxy configuration can be retrieved through DHCP. + +- Passport HTTP redirects are supported. + +- The HTTP service and corresponding client-side library (HTTPAPI) are + partially implemented. + + +*** Cryptography + +- ECC (elliptic-curve) keys are supported when using GnuTLS. + +- Importing keys and certificates from PFX blobs is implemented. + +- The PBKDF2 key derivation algorithm is supported. + + +*** Text and fonts + +- OpenType positioning features are supported in DirectWrite, and + enabled for Latin script by default, including kerning. + +- Font data access is made safer by validating the various data tables + before using them. + +- DirectWrite interfaces are updated to a recent SDK, implementing + some of the latest API additions. + + +*** Audio / Video + +- The XAudio2 libraries are reimplemented to use the external FAudio + library, for better compatibility. + +- The Media Foundation libraries are fleshed out, including: + - Support for builtin and user async work queues. + - Ability to submit periodic callbacks, waiting, scheduled, and + regular work items, with support for item priority. + - Support for media event queues. + - Various core API to handle media type objects, stream and + presentation descriptors, object attributes, byte stream objects, + samples and buffers. + - Initial Source Resolver implementation. + - Initial implementation of Source Reader API. + - Implementation for Sample Grabber object. + - Core support for building topology objects. + - Builtin presentation clock implementation, started implementing + Media Session functionality. + +- The video capture filter has been ported to use v4l2 instead of the + deprecated v4l1 API, allowing the use of some cameras which do not + support v4l1. + +- Support for YUV to RGB translation and reading from v4l2 devices + using mmap() has been removed; we now depend on libv4l2 for both of + these things. + +- The builtin AVI, MPEG-I, and WAVE decoders have been removed; we now + depend on GStreamer or the Mac QuickTime Toolkit to decode such + media files. + +- Some more VMR7 configuration APIs are implemented. + +- The sound drivers support per-channel volume adjustments. + + +*** Internationalization + +- Unicode character tables are based on version 12.1.0 of the Unicode + Standard. + +- Unicode normalization is implemented. + +- The geographic region id is automatically set in the registry based + on the current locale. It can be modified if necessary under + HKEY_CURRENT_USER\Control Panel\International\Geo. + +- The Sinhalese and Asturian locales are supported. + +- Codepage 28601 (Latin/Thai) is supported. + + +*** RPC/COM + +- The typelib marshaller supports complex structs and arrays. + +- There is an initial implementation of the Windows Script runtime + library. + +- There is an initial implementation of the Microsoft ActiveX Data + Objects (ADO) library. + + +*** Installers + +- Microsoft Installer (MSI) Patch Files are supported. + +- The WUSA tool (Windows Update Standalone Installer) supports + installing .MSU update files. + + +*** ARM platforms + +- Exception unwinding is implemented for ARM64, using the libunwind + library. + +- OLE stubless proxies are supported on ARM64. + + +*** Development tools / Winelib + +- The Visual Studio remote debugger can be used to debug applications + running under Wine. + +- The Debug Engine library (DBGENG) is partially implemented. + +- Binaries built for a Windows target no longer depend on the libwine + library, to enable them to run on Windows without any extra + dependencies. The libwine library is no longer built for Windows at + all. + +- The Resource Compiler and IDL Compiler support a '--sysroot' option + to allow locating header files in cross-compile environments. + +- Winegcc supports the options '--target', '--wine-objdir', + '--winebuild' and '-fuse-ld' that make it easier to use as a + cross-compiler, or with custom toolchains. + +- The wine/unicode.h header is no longer available to applications, + since the functions will ultimately be removed and replaced by the + standard C runtime wide character functions. + + +*** Build infrastructure + +- Test binaries are built in PE format if MinGW is available, so the + same test binary can run on both Wine and Windows. The 'crosstest' + make target is no longer needed or supported. + +- The 'fastcall' calling convention is supported in spec files. It + uses the correct name mangling for Windows builds. + +- A '-import' entry point flag is supported in spec files, to mark + functions that need a hotpatch code prefix to be generated for their + import thunks. + +- Winebuild supports a '--builtin' option to add a special signature + to PE binaries to mark them as Wine builtins. + + +*** Builtin applications + +- The CHCP tool is implemented. It allows setting the console codepage. + +- The MSIDB tool is implemented. It allows manipulating MSI databases. + + +*** Performance improvements + +- The various time functions use higher performance system clocks if + available, to reduce the overhead in the rendering loop of many + games. + +- File lookups take advantage of the ext4 filesystem case folding + support if it's enabled on the directory being searched. + +- No-data style listboxes (LBS_NODATA) have better performance for + large numbers of items. + +- Slim Reader/Writer locks, keyed events, and condition variables use + futexes on Linux to avoid wineserver round trips. + + +*** New external dependencies + +- The MinGW-w64 cross-compiler is used to build modules in PE format. + +- The FAudio library is used to implement XAudio2. + +- The Inotify library is used for file change notifications on BSD + platforms. + +- The Unwind library is used for exception handling on ARM64. + +- The Video4Linux version 2 library is used instead of version 1. + -- Alexandre Julliard diff --git a/VERSION b/VERSION index a32ddb06198..7c4b82049a8 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Wine version 5.0-rc6 +Wine version 5.0 diff --git a/configure b/configure index fd8fbfa4db0..3125c4444d9 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for Wine 5.0-rc6. +# Generated by GNU Autoconf 2.69 for Wine 5.0. # # Report bugs to <wine-devel@winehq.org>. # @@ -580,8 +580,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Wine' PACKAGE_TARNAME='wine' -PACKAGE_VERSION='5.0-rc6' -PACKAGE_STRING='Wine 5.0-rc6' +PACKAGE_VERSION='5.0' +PACKAGE_STRING='Wine 5.0' PACKAGE_BUGREPORT='wine-devel@winehq.org' PACKAGE_URL='https://www.winehq.org' @@ -2445,7 +2445,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 5.0-rc6 to adapt to many kinds of systems. +\`configure' configures Wine 5.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -2515,7 +2515,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Wine 5.0-rc6:";; + short | recursive ) echo "Configuration of Wine 5.0:";; esac cat <<\_ACEOF @@ -2764,7 +2764,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Wine configure 5.0-rc6 +Wine configure 5.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -3448,7 +3448,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 5.0-rc6, which was +It was created by Wine $as_me 5.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -21783,7 +21783,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 5.0-rc6, which was +This file was extended by Wine $as_me 5.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -21854,7 +21854,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -Wine config.status 5.0-rc6 +Wine config.status 5.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" -- GitLab