The Wine development release 1.4-rc5 is now available.

What's new in this release (see below for details):
  - Bug fixes only, we are in code freeze.

The source is available from the following locations:

  http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.4-rc5.tar.bz2
  http://prdownloads.sourceforge.net/wine/wine-1.4-rc5.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.4-rc5:

   5485  Command and Conquer Generals (and Zero Hour) hang on splash screen
   8871  No text displayed in Bloodrayne2
  11133  Shade: Wrath of Angels Demo - no graphics drawn in game
  13156  ETO_OPAQUE and clear style are not transparent on a bitmap
  14075  Beyond Divinity: screen corruption
  15397  gdi32: path.c fails to build with gcc 4.2, -Werror -O3
  16557  print preview broken
  17201  No add-ins loadable in Office 2003 PowerPoint
  18975  RealMYST crashes on launch
  19531  Earthworm Jim: sound crackles, stutters and repeats.
  20202  Everquest 1 (eqgame.exe) crashes right before character enters world
  20333  Azteca and Diamond Drop 2 crash
  20783  TradeTiger does not show the login window correctly
  21293  Comanche 3 freezes after a mission
  21577  MYOB: Cannot add custom logo to template
  22187  Alice 2.2 fails with "can't create Java VM"
  22269  Cry of the Infected demo fails with "runtime error 7018"
  22838  Corel Draw 11 not loading
  25153  Windows Live Essentials beta (webc variant) doesn't detect .NET Framework 3.0 installation (Mono/Registry)
  25214  MS Office PowerPoint 2007 freezes when right-click on top bar
  26878  No sound in Sim City 3000 Unlimited
  26918  Atlantis II crashes when changing screen resolution
  27254  Astro Avenger crashes on launch (with built-in d3dxof.dll)
  27971  Installation of FooBar.msi using msiexec fails with /qb switch (unattended with basic UI)
  28066  Sound stops after some time (restarting sound in game usually possible)
  28404  Incoming Forces: visual glitches
  28579  Comanche 3 menu is unusable because of graphic issues
  28618  BC Kings refuses to start without DirectSound hardware acceleration
  28620  Assassin's Creed: eagle's eye graphic glitch with postprocessing enabled
  28859  SDP Downloader: access violations when deleting url
  29750  Spotify crashes when searching song or artist with the search box
  29767  ellipse_first_quadrant() runs into dead loop for large width and height because of negative overflow
  29904  Perfect World: Latest Descent patch crashes Launcher window
  29905  Microsoft Visual Studio 2008: attaching to process fails with "unknown error: 0x80070003" (support of "Session" namespace for named objects needed)
  29919  PanzerKiller hangs with a black screen on start
  29939  MS Paint's bucket fill tool doesn't work
  29967  Cyberboard Player hangs when opening a game
  29988  Wordpad crashes on opening the printer setup dialog

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

Changes since 1.4-rc4:

Alex Henrie (1):
      po: Update Catalan translation.

Alexandre Julliard (7):
      gdi32: Paint everything in ExtFloodFill when the DIB doesn't have a clip region.
      gdi32: Don't paint the text rectangle in transparent mode unless a rectangle is explicitly specified.
      gdi32: Avoid overflows for invalid coordinates in line clipping.
      wineps: Convert path points to device coords since GetPath returns logical coords.
      comdlg32: Avoid crash when driver name doesn't contain a backslash.
      gdi32: Use 64-bit values when computing ellipses to avoid overflows.
      gdi32: Avoid using uninitialized value in DIB pattern enhmetafile record.

Andrew Eikum (1):
      wineoss.drv: Fix DeleteTimerQueueTimer usage.

André Hentschel (1):
      progman: Remove dead code.

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

Christian Costa (5):
      d3dxof: Add tests for IDirectXFileData_GetName.
      d3dxof: Fix parsing of empty array + tests.
      d3dxof: Accept bigger names for objects.
      d3dxof: Fix leaking of IDirectXFileObject object in tests.
      d3dxof: Make sure the returned object pointer is null when there is no more object.

Detlef Riekenberg (1):
      commdlg: Fix GlobalReAlloc16 parameter order.

Dmitry Timoshkov (2):
      kernel32: Add a test to show that NtMapViewOfSection should not perform an image relocation.
      kernel32: Add a test for LoadLibrary called on a not DLL image.

Eduardo Garcia (1):
      po: Spanish translation update.

Eduardo García (1):
      po: Spanish translation update.

Eric Pouech (1):
      kernel32: Enhance bare fd check by checking that the handle is a real console handle.

Francois Gouget (21):
      comctl32/tests: Make cbt_hook_proc() static.
      winedbg: The winedbg debug channel is unused in crashdlg.c so remove it.
      winex11: The x11drv debug channel is unused in pen.c so remove it.
      shell32: Make extracticon_create() static.
      msxml3/tests: Make test_XPath() static.
      po: Use full width full stops in the Chinese (Taiwan) translation.
      po: Mark a couple of incomplete / invalid Chinese (Taiwan) translations as fuzzy.
      po: Mark an incomplete Chinese (PRC) translation as fuzzy.
      po: Use full width full stops in the Chinese (PRC) translation.
      po: Remove some invalid shell folder path translations from the Chinese (PRC) translation.
      po: Fix some typography issues in the Chinese (PRC) translation.
      po: Fix some typography issues in the Chinese (Taiwan) translation.
      po: The msiexec usage should be translated to Hebrew.
      po: Don't translate the name or options of command line tools.
      po: Fix a couple of line wrapping issues in the Lithuanian translation.
      po: Restore some 'About' Norwegian Bokmål translations or improve the suggestions.
      po: Restore or add some 'Yes/No' Norwegian Bokmål translations.
      po: Remove English strings from the Polish shell folder path translations.
      po: Remove a few spaces before question marks in the Polish translation.
      po: Remove English strings from the Japanese shell folder path translations.
      po: Fix some typography issues in the Slovak translation.

Frédéric Delanoy (1):
      comctl32/tests: Use initialized window handle when rebuilding toolbar (Coverity).

Gaurav Jain (1):
      wined3d: Recognize Nvidia GeForce 320M, 8600M GT & 9400M.

Gustavo Henrique Milaré (1):
      po: Update Brazilian Portuguese translation.

Henri Verbeet (7):
      wined3d: Don't take the wined3d mutex during WM_DISPLAYCHANGE either.
      ddraw: Always pin surfaces.
      wined3d: Specify the depth range in surface_depth_blt().
      wined3d: Disable z-clipping for transformed vertices when WINED3D_RS_ZENABLE is disabled.
      ddraw/tests: Add tests for z-clipping with D3DRENDERSTATE_ZENABLE disabled.
      d3d8/tests: Add tests for z-clipping with D3DRS_ZENABLE disabled.
      d3d9/tests: Add tests for z-clipping with D3DRS_ZENABLE disabled.

Huw Davies (1):
      ole32: Trace the drop effect in hex.

Jaka Kranjc (2):
      po: Update Slovenian translation.
      po: Fixed remaining Slovenian true positives in the winepo error report.

Jan-Peter Nilsson (1):
      winhttp: Set the context on the request handle earlier.

Juan Lang (1):
      cryptnet: Don't call HttpEndRequest on a request that was never sent.

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

Jörg Höhle (1):
      mmdevapi/tests: Fix some render test failures.

Kusanagi Kouichi (1):
      gdi32: Initialize font signature of "System" font link.

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

Luca Bennati (2):
      po: Update Italian translation.
      po: Update Italian translation.

Maarten Lankhorst (1):
      mmdevapi: Fix exclusive test.

Marcus Meissner (2):
      user32: Remove duplicated call to GetSystemMenu (Coverity).
      quartz: Fixed sizeof()s to IsBadReadPtr (Coverity).

Michael Stefaniuc (1):
      avicap32: Add "stub" to the FIXME in a no yet implemented function.

Nikolay Sivov (3):
      wpp: Properly use va_start/va_end around vsnprintf().
      msxml3/tests: Some tests for IMXAttributes::addAttribute().
      msxml3/tests: Tests for IMXAttributes::clear().

Piotr Caban (1):
      urlmon/tests: Fixed protocol tests on IE9.

Ruei-Yuan Lu (2):
      po: Update Chinese (Taiwan) translation.
      po: Update Chinese (Taiwan) translation.

Thomas Faber (1):
      user32/tests: Do not depend on argument evaluation order.

Zoltan Nagy (2):
      po: Update Hungarian translation.
      po: Update Hungarian translation.

--
Alexandre Julliard
julliard@winehq.org
