The Wine development release 1.5.30 is now available.

What's new in this release (see below for details):
  - Mouse capture support in the Mac driver.
  - NTLM and Negotiate authentication in WinHTTP.
  - Support for proxy bypass in WinInet.
  - Various bug fixes.

The source is available from the following locations:

  http://prdownloads.sourceforge.net/wine/wine-1.5.30.tar.bz2
  http://mirrors.ibiblio.org/wine/source/1.5/wine-1.5.30.tar.bz2

Binary packages for various distributions will be available from:

  http://www.winehq.org/download

You will find documentation on http://www.winehq.org/documentation

You can also get the current source directly from the git
repository. Check http://www.winehq.org/git 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 1.5.30 (total 51):

   7698  Counter-Strike:Source crashes after a while
   9786  gpuViewer fails to start, trying to change HDC
  12044  Garry's mod crashes upon player death caused by prop.
  14096  Trackmania Nations Forever: Motion Blur does not work
  16632  Lula: The Sexy Empire: Crash to desktop on start
  16657  VeZA Route planner 2005: Crashes after a while of use with assertation failed
  18096  Microsoft Windows CE Platform Manager 4.0 sub-installer of Embedded VC++ 4.0 fails (setupapi.SetupDiGetINFClassW needs more flesh)
  18935  Peachtree First Accounting 2010 install fails because it can't find AVManagerUnified.dll
  20562  Outlook 2007  - Authentication fails
  20884  Write buffer overrun in LsaLookupNames2?
  23467  SnagIt 8.x/ 9.x needs gdiplus.dll.GdipEnumerateMetafileDestRect
  24169  QuarkXPress version 8.x hangs on start (missing double quoting of browser path in HKCR\htmlfile\shell\open\command)
  24200  msi: properly handle msidbComponentAttributes64bit attribute to support x64 installers that mix architectures in a single MSI package (32-bit and 64-bit components, filesystem, registry)
  25922  usbserial use yields flooding with fixme:ntdll:FILE_GetNtStatus Converting errno 62 to STATUS_UNSUCCESSFUL
  27356  SumatraPDF 1.6: titlebar not shown when leaving fullscreen
  27385  Peachtree First Accounting 2012 install fails because USER32.DLL GetListBoxInfo not found
  29358  Vit Registry Fix 9.5 crashes when clicking "close" button in "about" dialog
  29570  Some applications crash when being +relay traced due to ntdll's relay_call clobbering ECX (and EDX)
  29650  MP3Gain falters and crashes
  29847  comctl32: Sliders of disabled trackbars are rendered the same as enabled ones
  30181  BloxxIt launcher frequently crashes in mshtml
  30202  Steam crashes when viewing the store tab
  31515  Planetside 2 (Beta), installer fails
  32048  Microsoft SQL Server 2005 Express Edition: installer fails (needs unimplemented function xolehlp.dll.DtcGetTransactionManagerExW)
  32360  Office 2010 installers report custom action page faults
  32471  Multiple .NET 4.0 apps using WPF4 fail with "X Error of failed request: GLXBadDrawable" on glxdrv_wglMakeCurrent (Evolve client, JMP 10.0)
  32489  SetTimer does not respect the appropriate minimum timeout
  32674  Fotostation does not play video
  32728  GetOpenFileName doesn't work with native comctl32
  33122  TESV: Skyrim graphics error in Wine 1.5.25
  33195  Multiple applications ported to WinRT/ARM require msvcr110.dll.__crtGetShowWindowMode (MirandaIM, FinalBurn, ...)
  33282  Bioshock infinite wants _vscwprintf_p
  33325  Shadowgrounds survivor crashes compiling shaders
  33336  ParseURLFromOutsideSourceW( ) , "res" variable is set twice
  33367  Builtin msvcr90 with native msvcr100 may cause crashes
  33424  Armored Fist 3 crashes on start
  33443  ACT2000 contact database crash straight after start up.
  33468  SnagIt 9 needs msvcr90.dll._mbstok_s
  33469  KDE Dolphin: unimplemented netapi32.dll.NetGetAnyDCName
  33473  Key DACL prevents creation of registry keys.
  33500  Creo Elements/Direct Modeling Express 4.0 fails to install (msi script custom action return value translation too restrictive)
  33503  SnagIt 9.x needs ole32.dll.CLSIDFromProgIDEx
  33504  Microsoft SQL Server 2005 Express Edition: installer fails (needs more properties in Win32_OperatingSystem)
  33510  Microsoft SQL Server 2005 Express Edition: installer fails (null pointer dereference in wbemprox)
  33512  Microsoft SQL Server 2005 Express Edition: installer fails with unhandled exception
  33516  Galactic Civilizations II page faults and crashes when a new campaign is started.
  33525  Spices.Decompiler v.5.4.8.0 (.Net Decompiler) installer crashes
  33530  SnagIt 11.x editor tool crashes at startup on unimplemented function gdiplus.dll.GdipEnumerateMetafileDestPointI
  33531  pubseekoff function missing in msvcp60.dll
  33539  Spices.Decompiler v.5.4.8.0 (.Net Decompiler) "repair" install mode dumps all files in working directory of installer
  33543  Pervasive SQL v10 installer aborts with "not enough free disk space" (needs msi builtin "PrimaryVolumePath" and "PrimaryVolumeSpaceAvailable" properties)

----------------------------------------------------------------

Changes since 1.5.29:

Akihiro Sagawa (4):
      gdi32: Ignore the lfHeight value when it exceeds the limit.
      winedbg: Verify context flags before reading or writing registers.
      winedbg: Improve the register conversion to support over 64-bit registers.
      winedbg: Add x87 register support in gdb proxy.

Alexandre Julliard (18):
      server: When changing a process desktop, start the close timeout on the old desktop if necessary.
      ctapi32: Don't unload external libraries on process shutdown.
      msxml3: Don't unload external libraries on process shutdown.
      odbc32: Don't unload external libraries on process shutdown.
      sane.ds: Don't unload external libraries on process shutdown.
      makefiles: Generate the platform-specific libwine rules from configure.
      configure: Add rules for building libwine without soname on Android.
      kernel32: Disable relay for some trivial functions.
      configure: Add a helper macro for invoking pkg-config, and use it for libxml.
      configure: Use the pkg-config helper macro for hal and dbus.
      configure: Use the pkg-config helper macro for gnutls.
      configure: Use the pkg-config helper macro for sane.
      configure: Use the pkg-config helper macro for gphoto2.
      configure: Use the pkg-config helper macro for freetype.
      configure: Use the pkg-config helper macro for gstreamer.
      configure: Add a pkg-config check for liblcms.
      server: Use strerror instead of perror.
      wine.inf: Remove no longer used control panel section.

Andrew Eikum (7):
      winmm/tests: Only test non-mapper devices in interactive mode.
      oleaut32: COM cleanup for ITypeLib object.
      oleaut32: COM cleanup for ITypeInfo object.
      oleaut32: COM cleanup for internal loading structures.
      oleaut32: Finish COM cleanup for ITypeInfo objects.
      oleaut32: Finish COM cleanup for internal loading structures.
      oleaut32: Finish COM cleanup for ITypeLib objects.

André Hentschel (5):
      qedit/tests: Improve test messages.
      d3drm: Return a IDirect3DRMTexture in texture loading methods instead of error.
      d3drm: Add IDirect3DRMFace interface.
      d3drm: Add IDirect3DRMFace2 interface.
      d3drm/tests: Initial IDirect3DRMFace tests.

Aric Stewart (1):
      user32: Implement IMR_QUERYCHARPOSITION handling in the edit control.

Austin English (3):
      msvcr110: Add a missing function header.
      msvcr110: Implement __crtGetShowWindowMode.
      wined3d: Add NVidia GeForce GT 630.

Christian Costa (12):
      d3dxof: Add some template tests.
      d3dxof: Return correct error code in case of parsing failure.
      d3dxof: Introduce TOKEN_NONE and TOKEN_ERROR to differentiate end of file from error.
      d3dxof: Get rid of is_template_available.
      d3dxof: Avoid dealing with remaining byte until next token or eof, check_TOKEN handles them fine.
      d3dxof: Only parse templates for object files, but with RegisterTemplates parse the whole file.
      d3dxof: Get rid of go_to_next_definition.
      msi: Add tests to show that only msi cab filename is taken in case of mismatch with the one given by previous cab.
      msi: Use next cabinet from the media table instead of failing when there is a mismatch with continuous cabinet.
      d3dx9_36: Add stub for DisassembleEffect.
      d3dx9_36/tests: Add dump function for X files.
      d3dx9_36: Add tests for D3DXGetImageInfoFromFileInMemory with bmp with 1 to 8 bpp.

Daniel Jelinski (5):
      xolehlp: Fix calling convention.
      msi: Fix ComputerName property.
      comdlg32: Load ComboBoxEx before creating dialogs that use it.
      include: Added transact.idl.
      xolehlp: Implement ITransactionDispenser.

Daniel Lehman (6):
      wininet: Accept ProxyBypass from environment or registry.
      wininet: Only accept proxy and proxy bypass if type is INTERNET_OPEN_TYPE_PROXY.
      wininet: Copy and pass along proxyBypass in INTERNET_ConfigureProxy.
      wininet: Copy should_bypass_proxy and domain_matches from winhttp.
      wininet: Remove old FIXME about bypassing proxy.
      wininet: Free local proxyinfo in INTERNET_ConfigureProxy.

Detlef Riekenberg (3):
      shell32: Fix a copy & paste typo.
      dwrite/tests: Avoid refcount test failures.
      kernel32/tests: Avoid IOCTL_DVD_READ_STRUCTURE test failures.

Dmitry Timoshkov (18):
      winedump: Add support for 1st, 2nd and long names linker COFF archive members.
      include: Make IMAGE_RESOURCE_DIRECTORY_ENTRY match PSDK definition.
      include: Make KNONVOLATILE_CONTEXT_POINTERS match PSDK definition.
      kernel32: Add some tests for PEB and loader locks.
      gdiplus: Implement GdipEnumerateMetafileDestRect and GdipEnumerateMetafileDestRectI.
      gdiplus: Implement GdipEnumerateMetafileDestPoint and GdipEnumerateMetafileDestPointI.
      ole32: Add a semi-stub for CLSIDFromProgIDEx.
      server: Add a process flag indicating whether the process is terminating, use it to block thread creation in a being terminated process.
      server: Fail to set process affinity mask if the process is terminating.
      kernel32: Hold PEB lock during process exit.
      kernel32: Add more remote process tests.
      server: Set error to STATUS_PROCESS_IS_TERMINATING if the process is terminating.
      server: A destroyed process handle table means that the process is terminating.
      kernel32: DLL entry point is no longer called with PEB lock held.
      kernel32: Remove todo_wine from the now passing test.
      include/commdlg.h: Fix definition of LPPRINTHOOKPROC and LPSETUPHOOKPROC.
      comdlg32: Add a test for nCopies/dmCopies returned by PrintDlg.
      kernel32: Actually test normal ExitProcess behaviour.

Erich Hoover (3):
      server: Add builtin admins ACE to default registry DACL.
      advapi32: Fix default DACL test on win2k and w2k8 server editions.
      user32: SetTimer and SetSystemTimer should respect the timeout limits.

Francois Gouget (5):
      msi/tests: Add a trailing '\n' to an ok() call and fix a typo.
      fusion/tests: Fix compilation on systems that don't support nameless unions.
      dmsynth/tests: Fix compilation on systems that don't support nameless structs or unions.
      gphoto2.ds: Check for libgphoto2 and libgphoto2_port independently.
      sane.ds: Fix a typo in the libsane check.

Hans Leidekker (15):
      winhttp: Reset the content read counter.
      winhttp: Resend any request data when handling an authentication or redirect response.
      winhttp: Add support for NTLM and Negotiate authentication.
      winhttp: Get rid of the flags parameter to netconn_send.
      wininet/tests: Skip proxy tests on broken wininet.
      wbemprox: Implement more properties of Win32_OperatingSystem.
      wbemprox: Implement Win32_Processor.Family.
      wbemprox: Return a BSTR from get_stringvalue.
      msi: Properly map script function return values to MSI errors.
      wbemprox: Avoid a crash in to_safearray.
      msi: Assume a transform is applicable if it doesn't specify any products.
      fusion: Fix alignment in parse_clr_metadata.
      msi: Treat an empty install location as missing.
      msi: Set the PrimaryVolumePath and PrimaryVolumeSpaceAvailable properties.
      shell32: Implement ASSOCSTR_SHELLEXTENSION.

Jacek Caban (12):
      mshtml: Pass proper JSContext to nsIDOMHTMLDocument::Write and Open.
      mshtml: Added IHTMLAnchorElement::rel property implementation.
      mshtml: Added IHTMLAnchorElement::rel property tests.
      d3dcommon.idl: Added some missing defines.
      d3d11.idl: Added some missing declarations and C++ helper classes.
      mshtml: Set _retval in nsIDirectoryServiceProvider2 functions even when returning failure.
      configure: Use gcc -shared instead of dllwrap to build libwine.dll.
      winegcc: Use gcc -shared instead of dllwrap to build DLLs.
      ole32: Added more default handler QueryInterface tests.
      msxml3: Correctly handle VT_NULL in IXMLHTTPRequest::send.
      ieframe: Added stub IExternalConnection interface to InternetExplorer object.
      ieframe: Added more InternetExplorer object tests.

Jactry Zeng (1):
      msvcrt: Fixed typo of _strncoll and _strncoll_l.

Ken Thomases (11):
      winemac: Return 0 from ToUnicodeEx() for a key release.
      winemac: Change some run-time asserts to compile-time.
      winemac: Extract application-level handling of mouse move events to a separate method.
      winemac: Consolidate mouse move handling into -[WineApplicationController handleMouseMove:].
      winemac: Consolidate mouse button handling into -[WineApplicationController handleMouseButton:].
      winemac: Consolidate scroll wheel handling into -[WineApplicationController handleScrollWheel:].
      winemac: Apply cursor clipping to events that were in Cocoa's queue when clipping started.
      winemac: Prefer absolute mouse moves unless cursor is pinned by clipping or desktop edges.
      winemac: Mouse drags don't imply anything about z-order of target window because of implicit capture.
      winemac: Implement SetCapture().
      winemac: Unminimize a window on activation if there are only minimized windows.

Marcus Meissner (8):
      d3dx9_36: Use correct loop index (Coverity).
      mshtml: Specify correct variable in TRACE (Coverity).
      wbemprox: Free server on exit (Coverity).
      wbemprox: Initialize desc (Coverity).
      xmllite: Free elem in error paths (Coverity).
      xmllite: Do not leave start uninitialized (Coverity).
      dsound: Do not test undefined behaviour (Coverity).
      dplayx: Remove wrong HeapFree (Coverity).

Max Kellermann (1):
      msvcrt: Fix character/byte confusion in buffer overflow branch.

Nikolay Sivov (13):
      advapi32: Fix allocation length for domain list (Valgrind).
      advapi32: Allocate temporary name buffer once.
      po: Updated Russian translation.
      netstat: No need to allocate fixed length stats structs.
      oledb32: Use shared convert instance, use a single skip.
      msxml3: Fix ignorable whitespace detection.
      msxml3: Always return False for nodes that can't have children.
      msxml3: Explicitly use NULL_tid to terminate support error id arrays.
      user32: Implement GetListBoxInfo().
      user32: Fix right and bottom edge sizes.
      comctl32: Fix disabled thumb painting, for TBS_BOTH use edged rectangle.
      comctl32: Paint item as selected if it's TVIS_SELECTED and also focused.
      comctl32: Handle WM_ENABLE to update disabled style bit and repaint.

Piotr Caban (16):
      mshtml: Release nsISupports object in get_node function.
      mshtml: Fixed timer setting in remove_target_tasks.
      mshtml: Init nsAString in HTMLElement2_get_dir.
      msvcr100: Added _vscwprintf_p implementation.
      msvcrt: Added _mbstok_s_l implementation.
      msvcrt: Move _fstat32 and _fstat64i32 functions to msvcrt.
      wininet: Create raw HTTP headers dynamically.
      wininet: Take HTTP_QUERY_FLAG_REQUEST_HEADERS flag into account when creating HTTP_QUERY_RAW_HEADERS data information.
      wininet: Delete Content-Encoding header when uncompressing data.
      wininet: Add current raw headers to cache.
      wininet: Get rid of rawHeaders field in request_t structure.
      wininet: Add test of reading gzipped content from cache.
      wininet: Handle NULL req->netconn in INTERNET_DIAGNOSTIC_SOCKET_INFO query.
      wininet: Handle NULL req->netconn in INTERNET_OPTION_SECURITY_CERTIFICATE_STRUCT query.
      msvcp60: Export basic_streambuf::pubseekoff function.
      msvcp60: Fix errors in spec file.

Qian Hong (1):
      kernel32: Fixed string comparision for non-canonical locale identifiers such as zh_CN VS zh-Hans on OS X.

Rico Schüller (1):
      d3dx9: Remove unneeded variables.

Roderick Colenbrander (1):
      opengl32: Add a test for WGL_EXT_swap_control.

Ruslan Kabatsayev (1):
      netapi32: Add stub for NetGetAnyDCName.

Sam Edwards (3):
      gdi32: Prevent another possible buffer overflow in get_glyph_outline.
      gdi32: Improve glyph positioning for the subpixel case in get_glyph_outline.
      gdi32: Clip font glyphs to fit within text metrics.

Sergey Guralnik (1):
      riched20: Fix richtext copy/paste to OOffice.

Stefan Leichter (1):
      include: Fix prototype of CryptUIWizDigitalSign.

Volkan Gezer (1):
      po: Updated Turkish translation.

--
Alexandre Julliard
julliard@winehq.org
