Wine Announcement

The Wine development release 3.12 is now available.

What's new in this release (see below for details):
  - Unicode data updated to Unicode 11.0.0.
  - Proxy configuration dialog in the Internet control panel.
  - Syntax fixes in the Cmd.exe command intepreter.
  - Some more glyphs in the Wingdings font.
  - Various bug fixes.

The source is available from the following locations:

Binary packages for various distributions will be available from:

You will find documentation on

You can also get the current source directly from the git
repository. Check for details.

Wine is available thanks to the work of many people. See the file
AUTHORS in the distribution for the complete list.


Bugs fixed in 3.12 (total 40):

  18164  dlls/iphlpapi/ifenum.c: compiler warnings on NetBSD
  18560  No crosshairs in Starfleet Academy
  20986  Euler fails to make a computation with maxima.exe: maxima.exe fails to start
  23048  Unreal Tournament 3 fails and locks up
  24641  ProPresenter 4.x (.NET 3.5 WPF app) fails on startup (devenum CreateInstance() doesn't support IID_IUnknown)
  27497  Regedit mangles registry keys containing embedded NULLs
  29325  Stranded II: laggy mouse pointer in the inventory screen
  30910  Lighting incorrectly drawn in Alien Shooter
  34365  Splinter Cell: Blacklist error with d3d_texture:wined3d_texture_apply_state_changes
  34916  cmd:batch fails on Windows 8 and 8.1
  35427  Diplomacy (1999) crashes on startup
  35706  Splinter Cell: Blacklist crashes with Field AO & SSAO
  35902  Certificates signed using ECDSA signature can not be verified (>= Win Vista - affects EA Origin, Uplay, Blizzard App, MoonBot)
  36798  kernel32/change.c fails on 3.16.x kernels
  38599  Heroes of Might & Magic III HD Edition becomes unresponsive after starting a scenario
  38689  Duke Nukem Forever: intense flickering, screen covered with grey
  38849  valgrind shows an uninitialized variable in programs/cmd/tests/batch.c:WCMD_assoc
  39218  advpack:advpack fails if privileges not high enough
  39222  mstask:task_scheduler fails if privileges not high enough
  39228  House of Caravan light sources are broken with ARB shaders enabled
  39238  mscft:inputprocessor fails if privileges not high enough
  39457  "for /R" tests fail when run in a directory containing spaces
  40694  Invalid behavior of "C: && echo haha" or "C: & echo haha"
  40706  FolderMerger cmd not valued, xcopy needs /k support
  42602  ::CompareItem(LPCOMPAREITEMSTRUCT lpCompareItemStruct) bad sort compared to Windows
  42823  cmd.exe behaves differently from Win7 regarding redefined labels
  42931  CMD START: invalid argument
  43049  League of Legends: massive performance regression
  44585  Multiple applications and games need ntdll.LdrRegisterDllNotification/LdrUnregisterDllNotification implementation (Firefox 60+, Diablo III v2. 6. 1. 49286+, World of Warcraft, Overwatch)
  44720  Intel Asteroids Direct3D12 sample requires ninput.dll.CreateInteractionContext
  44967  xcopy does not copy empty subdirectories if options /s and /e without space
  45051  cmd.exe for loop does not resolve wildcards with subdirectory
  45052  cmd.exe: if-statement does not resolve wildcards
  45355  FrameMaker 8: Abort with specific document due to USER lock error
  45359  SHGetKnownFolderPath doesn't handle flag KF_FLAG_DONT_UNEXPAND
  45387  arm64_map_dwarf_register: Don't know how to map register (64-66)
  45389  odbccp32:misc fails if privileges are not high enough
  45390  devenum:devenum fails if privileges are not high enough
  45403  dwarf2_parse_variable(): Assertion `subpgm->func' failed
  45410  Muv-Luv (Steam) wants USER32.dll.GetAutoRotationState semi-stub


Changes since 3.11:

Alex Henrie (5):
      include: Add definitions of SERVICES_*_DATABASEW for generic compilers.
      include: Add missing type declaration to CERT_EFSBLOB_VALUE_NAME.
      iphlpapi: Cast caddr_t to char* before doing pointer arithmetic.
      gdi32: Add DECLSPEC_HOTPATCH to GetDIBits.
      include: Add SYSTEM_FIRMWARE_TABLE_INFORMATION to winternl.h.

Alexander Morozov (1):
      ntoskrnl.exe: Improve KeInitializeTimerEx stub.

Alexandre Julliard (8):
      schedsvc: Only restart the directory watch once we've received data.
      user32: Don't copy window bits to or from the dummy surface.
      server: Add a couple of rectangle helper functions.
      server: Don't clip update regions to the desktop window.
      comdlg32/filedlg: Resize the Places toolbar along with the dialog.
      comctl32/taskdialog: Fix pointer cast warnings.
      user32/tests: Remove a duplicate todo test.
      user32: Update RedrawWindow behavior with explicit desktop window handle.

Alistair Leslie-Hughes (2):
      user32: Support SPI_S/GETAUDIODESCRIPTION in SystemParametersInfo.
      ntoskrnl.exe/tests: Add KeInitializeTimerEx tests.

Andrey Gusev (1):
      msi: Remove checks for negative value.

André Hentschel (4):
      dbghelp: Map SIMD dwarf registers on ARM64.
      dbghelp: Recompute location after fixing it.
      ole32/tests: Don't crash if EnumFormatEtc failed.
      advpack: Use ARRAY_SIZE() macro.

Aurimas Fišeras (3):
      po: Update Lithuanian translation.
      po: Update Lithuanian translation.
      po: Update Lithuanian translation.

Austin English (1):
      winecfg: Recommend against overriding secur32.

Dmitry Timoshkov (18):
      fonts: Add clock images to Wingdings font.
      mstask: Use current time as trigger begin time when necessary.
      mstask: Avoid an infinite loop.
      schedsvc: Minor cleanup.
      schedsvc: Avoid an infinite loop.
      schedsvc: Use current time as trigger begin time when necessary.
      user32/tests: Add a test for WM_MEASUREITEM when inserting an item to an owner-drawn listbox.
      user32/tests: Add a message test for an owner-drawn sorted listbox.
      user32/tests: Add some message tests for not an owner-drawn listbox.
      user32: Fix order of items passed in WM_COMPAREITEM data.
      user32: Fix the listbox sorting algorithm.
      user32: For an owner-drawn listbox without strings WM_MEASUREITEM still needs correct itemData.
      comctl32/listbox: Fix order of items passed in WM_COMPAREITEM data.
      comctl32/listbox: Fix the listbox sorting algorithm.
      oleaut32: Don't accept unsupported picture types in OleCreatePictureIndirect.
      oleaut32: IPicture::get_hPal() supports only bitmaps.
      oleaut32: IPicture::set_hPal() supports only bitmaps.
      oleaut32/tests: Add tests for IPicture::get_hPal() and IPicture::set_hPal().

Fabian Maurer (6):
      msvcrt: Use already existent oneexit_table functions for _onexit and _c_exit.
      user32: Always release menu item in EnableMenuItem.
      msvcrt: Use cdecl calling convention for atexit callback.
      ucrtbase: Add _crt_at_quick_exit stub.
      ucrtbase: Add quick_exit.
      ucrtbase: Implement quick_exit and _crt_at_quick_exit.

Hans Leidekker (1):
      configure: Allow building bcrypt with GnuTLS support on macOS.

Hua Meng (3):
      msvcp120: Add test for Concurrent_vector_grow_by.
      msvcp120: Add test for Concurrent_vector_grow_to_at_least_with_result.
      msvcp120: Add test for Concurrent_vector_Internal_resize and reverse.

Huw D. M. Davies (1):
      ntdll/tests: Skip the map protect tests if we can't disable no-exec.

Jason Edmeades (9):
      cmd: Add support for wildcards in if exist.
      cmd: Fix subdirectory prefix in for loops.
      xcopy: Handle multiple switches concatenated without whitespace.
      xcopy: Return code 1 for no files is never returned.
      xcopy: Fix copying empty directories.
      cmd: Support "c:<space>" etc when changing drive letters.
      cmd: Call and goto finds the next matching label.
      cmd: Fix issue in WCMD_assoc highlighted by valgrind.
      xcopy: Add support for xcopy /k.

Julian Rüger (1):
      po: Update German translation.

Józef Kucia (4):
      include/d3d12: Fix typos.
      dxgi: Avoid possible NULL pointer access in d3d11_swapchain_SetFullscreenState().
      wined3d: Fix snorm/unorm immediate values for UAV writes.
      d3d11/tests: Add test for unorm/snorm immediate constants.

Kim Malmo (1):
      po: Update Norwegian translation.

Lauri Kenttä (2):
      po: Update Finnish translation.
      po: Update Finnish translation.

Louis Lenders (1):
      ntoskrnl.exe: Add stub for IoUnregisterPlugPlayNotification.

Marcus Meissner (13):
      hnetcfg: GetModuleFileNameW gets characters, not bytes (Coverity).
      shell32: Use characters as arguments to GetTempPathW and GetLongPathNameW.
      kernel32: GetCalendarInfoW gets character sizes.
      kernel32: GetVolumePathNamesForVolumeNameW gets character as buffer size.
      psapi: GetProcessImageFileName gets character count as argument.
      shlwapi: SHGetIniStringW buffer size is in characters.
      icinfo: vsnprintfw takes characters as buffer size not bytes.
      d3dx9/tests: Fix string size to MultiByteToWideChar().
      comctl32/tests: Header item struct gets characters not bytes.
      comctl32: Treeview item gets characters not bytes passed in.
      shell32: Set size in characters in MENUITEMINFOW struct.
      quartz: StringFromGUID2 gets character counts, not bytes.
      amstream/tests: Use correct buffer size for StringFromGUID2.

Mark Jansen (1):
      ntdll/tests: Tests for RtlIpv6StringToAddress.

Matteo Bruni (2):
      d3dx10: Turn some ERR() into WARN().
      wined3d: Declare the correct number and type of fragment shader color outputs.

Michael Müller (4):
      crypt32: Implement verification of ECDSA signatures.
      ntdll: Implement LdrRegisterDllNotification and LdrUnregisterDllNotification.
      user32: Add semi-stub for GetAutoRotationState.
      msvcr120: Add stub for _SetWinRTOutOfMemoryExceptionCallback.

Michael Stefaniuc (32):
      gdi32/tests: Use the available ARRAY_SIZE() macro.
      shlwapi/tests: Use the available ARRAY_SIZE() macro.
      shlwapi/tests: Pass the correct buffer size to PathUnExpandEnvStringsW().
      shlwapi/tests: Pass the correct buffer size to WideCharToMultiByte().
      kernel32/tests: Use the available ARRAY_SIZE() macro.
      comdlg32/tests: Don't undefine ARRAY_SIZE().
      user32/tests: Don't undefine ARRAY_SIZE().
      user32/tests: Avoid a variable that holds an ARRAY_SIZE().
      kernel32/tests: Avoid ARRAY_SIZE-like macros.
      user32/tests: Avoid ARRAY_SIZE-like macros.
      user32/tests: Use the available ARRAY_SIZE() macro.
      include: Add a generic available ARRAY_SIZE().
      quartz: Use the more common ARRAY_SIZE spelling.
      user32: Use the more common ARRAY_SIZE spelling.
      dinput: Avoid ARRAY_SIZE-like macros.
      iphlpapi: Avoid ARRAY_SIZE-like macros.
      mscoree: Use the more common ARRAY_SIZE spelling.
      wininet: Use the more common ARRAY_SIZE spelling.
      winhttp: Use the more common ARRAY_SIZE spelling.
      dssenh/test: Replace a macro with ARRAY_SIZE.
      serialui: Replace a macro with ARRAY_SIZE.
      glu32: Avoid an ARRAY_SIZE-like macro.
      krnl386.exe16: Avoid ARRAY_SIZE-like macros.
      ole32: Use the more common ARRAY_SIZE spelling.
      shell32: Avoid ARRAY_SIZE-like macros.
      winex11.drv: Avoid ARRAY_SIZE-like macros.
      msvcr100/test: Replace a macro with ARRAY_SIZE.
      cryptui: Use the ARRAY_SIZE() macro.
      view: Use the ARRAY_SIZE() macro.
      oleview: Use the ARRAY_SIZE() macro.
      netapi32: Use the ARRAY_SIZE() macro.
      credui: Use the ARRAY_SIZE() macro.

Michał Janiszewski (3):
      ntdll: Only set owned bits in RTL_BITMAP.
      msvcrt: Don't forget to free the buffer in scanf.
      msvcrt: Update size checks for secure scanf versions.

Nikolay Sivov (7):
      crypt32: Correctly return how the issuer of a self signed certificate was matched.
      crypt32: Fix string arguments tracing.
      tools: Update to Unicode 11.0.0.
      po: Update Russian translation.
      comctl32/tests: Add some tests for ownerdrawn listbox.
      po: Update Russian translation.
      urlmon: Use ARRAY_SIZE() macro.

Piotr Caban (4):
      inetcpl.cpl: Add proxy server settings dialog.
      inetcpl.cpl: Add partial support for writing DefaultConnectionSettings registry setting.
      ucrtbase: Test child process exit code.
      ucrtbase: Report child process test failures in exit() tests.

Rafał Mużyło (1):
      d3d9: Expand rectangles in debug strings.

Sebastian Lackner (1):
      kernel32: Fill stack with meaningful values in call_process_entry mis-align workaround.

Zebediah Figura (39):
      devenum: Implement parsing and reading DMO monikers.
      devenum: Implement enumerating DMOs.
      wine.inf: Register mp3dmod DMO.
      mp3dmod: Support COM aggregation.
      hnetcfg: Store the full path in INetFwAuthorizedApplication_put_ProcessImageFileName().
      devenum: Merge factory.c into devenum_main.c.
      devenum: Use separate factories for CLSID_SystemDeviceEnum and CLSID_CDeviceMoniker.
      devenum: Make some variables static.
      devenum: Remove an unused typedef.
      include: Make fil_data.idl a common header.
      devenum/tests: DMORegister() returns E_FAIL if unable to access the registry.
      msdmo: DMORegister() returns E_FAIL if unable to access the registry.
      odbccp32/tests: Skip SQLGetInstalledDrivers() test if limited.
      odbccp32/tests: Set requestedExecutionLevel to asInvoker to prevent virtualization.
      msctf/tests: Set requestedExecutionLevel to asInvoker to prevent virtualization.
      msctf/tests: Skip tests if limited.
      hnetcfg: Store the long path in INetFwAuthorizedApplication_put_ProcessImageFileName().
      regedit: Print Latin-1 characters.
      dinput: Notify the desktop window when device input is received.
      strmbase: Implement CBaseFilter::FindPin().
      winegstreamer: Use CBaseFilter::FindPin().
      wineqtdecoder: Use CBaseFilter::FindPin().
      explorer: Wrap the desktop window procedure instead of replacing it.
      winex11.drv: Wake up the display on user input.
      strmbase: Update comment for copying pin info.
      quartz: Inline copying pin info and update comment.
      psapi/tests: Avoid linking statically to kernel32 functions.
      winegstreamer: Add a missing debugstr_a.
      dbghelp/tests: Add a simple test for StackWalk64().
      winemac.drv: Wake up the display on user input.
      psapi/tests: Link statically to psapi.
      psapi/tests: Avoid using PROCESS_ALL_ACCESS.
      psapi/tests: Avoid failing silently.
      psapi/tests: Call GetPerformanceInfo() after NtQuerySystemInformation().
      strmbase: Avoid leaking pFilter in CBaseFilter::FindPin().
      quartz: Use CBaseFilter::FindPin().
      strmbase: Use CBaseFilter::FindPin().
      qcap: Use CBaseFilter::FindPin().
      amstream: Use CBaseFilter::FindPin().

Zhiyi Zhang (4):
      comctl32/taskdialog: Fix buttons might disappear.
      comctl32/taskdialog: Use dynamic buffer for taskdialog_get_label_size().
      comctl32/taskdialog: Add support for radio buttons.
      comctl32/taskdialog: Add support for command links.

Alexandre Julliard