The Wine maintenance release 1.2.2 is now available.

What's new in this release (see below for details):
  - Support for animated cursors.
  - Translation updates.
  - Various bug fixes.

The source is available from the following locations:

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

  16281  Support for animated cursors is not implemented
  17436  mRemote does not work
  17875  GetTempFileName with unique != 0 broken
  18958  Adobe Reader 9 has a divide by zero error during install
  21096  utorrent drops error 12157 when using a https tracker
  23285  Animated mouse pointer invisible in 3D mode in Ice Cream Tycoon
  23355  Ring-Protech CD/DVD Protection fails
  24470  winegcc: 32-bit libs are not found with -m32 on 64-bit host
  24606  Office 2007 crashes at open/save file dialogs because of Fortify (not a Wine bug)
  24627  ProPresenter 4.0.0.1 for Windows doesn't startup
  24673  iexplore: Error when using SSL
  24714  ProteoWizard: Unhandled marshal type 7
  24773  It is possible to click behind certain modal dialogs in Worms Armageddon, leading to loss of focus and crashes
  24871  Floppy diskette label and serial number not reported
  24952  dlls/user32/button.c handles incorrectly unknown button types
  25057  Magic Workstation: mwsplay.exe crashes when launching it
  25238  Wine is missing manpages for some built-in applications
  25339  make install-dev target broken for empty directory structures

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

Changes since 1.2.1:

Akihiro Sagawa (3):
      cryptui: Add Japanese translation.
      crypt32: Add Japanese translation.
      cryptui: Update Japanese translation.

Aleksey Bragin (1):
      msi: Fix freed memory access and fix freeing of invalid pointer.

Alexandre Julliard (16):
      user32: Fix a DC leak in DrawIconEx.
      mshtml: Try installing Gecko from the global data dir too.
      wininet: Load X509_STORE_CTX_get_ex_data from libcrypto not libssl.
      winhlp32: Use a standard About dialog, with the proper icon.
      wine.inf: Add a few more common functions to be excluded from relay traces.
      kernel32: Use RtlDosPathNameToNtPathName_U to validate the path in GetVolumeInformationW.
      configure: Disable Fortify if it's enabled by default, it's too broken.
      configure: More aggressive disabling of Fortify.
      kernel32: Fix a FAT format sanity check for floppies.
      winegcc: Detect the appropriate lib directory for 32/64 cross-builds.
      winegcc: Fix the lib dir detection.
      winedbg: Don't start another instance of the debugger when it crashes.
      ntdll: Don't call vectored exception handlers under the critical section.
      winapi: Add support for more spec entry flags.
      shell32: Store the raw AUTHORS file in resources instead of trying to convert to a C array.
      Updated the authors list.

Amine Khaldi (4):
      mpr: Fix translations.
      shlwapi: Fix translations.
      xcopy: Fix translations.
      comdlg32: Fix translations.

Anders Jonsson (10):
      cryptui: Fix typos in English resources.
      winmm: Fix typo in English, Slovak resources.
      winmm: Add Swedish translation.
      cryptdlg: Add Swedish translation.
      crypt32: Update Swedish translation.
      net: Add Swedish translation.
      progman: Fix typos in Swedish translation.
      kernel32: Add Swedish translation.
      cryptui: Fix typo in Swedish translation.
      taskmgr: Update Swedish translation.

Andrew Eikum (1):
      hlink: Implement HLINKGETREF flags handling.

André Hentschel (5):
      krnl386: Mention DOSBox.
      user32: Don't paint new button styles instead of crashing.
      widl: Fix for typelib generation when unaligned access to memory is not allowed.
      crypt32: Fix German translation.
      cryptui: Fix German translation.

Austin English (13):
      msiexec: Add a manpage.
      notepad: Add a manpage.
      regsvr32: Add a manpage.
      winemine: Add a manpage.
      winefile: Add a manpage.
      winecfg: Add a manpage.
      wineboot: Add a manpage.
      wineconsole: Add a manpage.
      regedit: Add a manpage.
      winepath: Add a manpage.
      winegcc: Symlink winegcc manpage to winecpp.
      tools: Fix install-dev target.
      appwiz.cpl: Fix Italian translation.

Cheer Xiao (8):
      comdlg32: Update Simplified Chinese translation.
      oleview: Update Simplified Chinese translation.
      taskmgr: Update Simplified Chinese translation.
      winebot: Update Simplified Chinese translation.
      wineconsole: Update Simplified Chinese translation.
      winhlp32: Update Simplified Chinese translation.
      wordpad: Update Simplified Chinese translation.
      notepad: Update Simplified Chinese translation.

Damjan Jovanovic (1):
      comdlg32: Fix a stack overflow.

Dan Kegel (1):
      ws2_32: Null select() should fail with WSAEINVAL.

Davide Pizzetti (1):
      net: Italian translation update.

Detlef Riekenberg (1):
      shell32: We have a Unicode parameter when launching a CPL.

Dmitry Timoshkov (3):
      oleaut32: Handle VT_DATE in serialize_param()/deserialize_param().
      kernel32: Truncate the reported by GlobalMemoryStatus() memory limits for Win9x versions too.
      user32: FindWindow() should treat an empty title same way as NULL.

Erich Hoover (3):
      user32: Prepare for multi-frame storing of icons and cursors.
      user32: Add support for multiple frames in cursor format.
      winex11: Add support for animated cursors in X11 driver.

Eryk Wieliczko (1):
      comdlg32: GetSaveFileName: Don't append .* extension.

Francois Gouget (1):
      configure: Load wine lower in memory on FreeBSD to leave more space for mmap() and malloc().

Gerald Pfeifer (1):
      user32: Fix error handling in BITMAP_Load.

Hans Leidekker (3):
      advapi32: Fix handling of zero account and domain size parameters in LookupAccountSid.
      advapi32: Fix a buffer size query in LsaLookupSids.
      ntdll: Add a stub implementation of FSCTL_GET_RETRIEVAL_POINTERS.

Henri Verbeet (1):
      krnl386.exe: Return the default value if the section wasn't found in GetPrivateProfileString16().

Hwang YunSong (5):
      winmm: Update Korean resource.
      shlwapi: Update Korean resource.
      kernel32: Update Korean resource.
      taskmgr: Update Korean resource.
      winhlp32: Update Korean resource.

Igor Paliychuk (1):
      README: Added Ukrainian version.

Jacek Caban (1):
      mshtml: Try installing Gecko from hardcoded '/usr/share/wine/gecko/' location.

Juan Lang (7):
      wininet: Don't make use of OpenSSL's security checks, as crypt32 also verifies certificate chain.
      wininet: Store WININET_NETCONNECTION * in SSL context.
      wininet: Store security flags in WININET_NETCONNECTION.
      wininet: Don't retrieve a certificate that isn't used.
      wininet: Don't call SSL_connect until initialization is complete.
      wininet: Honor security flags when verifying certificates.
      wininet: More completely implement querying INTERNET_OPTION_SECURITY_FLAGS.

Jörg Höhle (1):
      kernel32/tests: GetVolumeInformationA X: succeeds iff drive's default dir is root.

Lauri Kenttä (1):
      shlwapi: Update Finnish translation.

Louis Lenders (3):
      kernel32: Fix GetTempFileName with invalid path.
      ws2_32: Return SOCKET_ERROR in stubbed WSALookupServiceNext, to prevent apps from looping forever.
      rpcrt4: Add stub for NdrMesTypeEncode2.

Luca Bennati (7):
      cryptui: Update Italian translation.
      cryptui: Update Italian translation.
      shlwapi: Update Italian translation.
      winmm: Update Italian translation.
      mpr: Update Italian translation.
      xcopy: Fix Italian translation.
      cmd: Fix Italian translation.

Marcus Meissner (4):
      winspool.drv: Check return value of EnumPrintersA.
      ntdll: Check and fix PE header protections.
      ntdll: Fixed file view mapping in regards to no-exec.
      winex11.drv: Do not include XFORM.eDx and eDy into font hashing/caching.

Michael Stefaniuc (1):
      user32: Simplify the error handling in BITMAP_Load().

Paul Vriens (40):
      clock: Add the Serbian (Latin and Cyrillic) translation.
      notepad: Add the Serbian (Latin and Cyrillic) translation.
      uninstaller: Add the Serbian (Latin and Cyrillic) translation.
      wineboot: Add the Serbian Cyrillic and fix the Latin translation.
      avifil32: Add the Serbian (Latin and Cyrillic) translation.
      browseui: Add the Serbian (Latin and Cyrillic) translation.
      comdlg32: Add the Serbian (Cyrillic) translation.
      winspool.drv: Add the Serbian (Latin and Cyrillic) translation.
      write: Add the Serbian (Latin and Cyrillic) translation.
      wldap32: Add the Serbian (Latin and Cyrillic) translation.
      credui: Add the Serbian (Latin and Cyrillic) translation.
      oleacc: Add the Serbian (Latin and Cyrillic) translation.
      hhctrl.ocx: Add the Serbian (Latin and Cyrillic) translation.
      cryptdlg: Add the Serbian (Latin and Cyrillic) translation.
      devenum: Add the Serbian (Latin and Cyrillic) translation.
      gphoto2.ds: Add the Serbian (Latin and Cyrillic) translation.
      shdoclc: Add the Serbian (Latin and Cyrillic) translation.
      wininet: Add the Serbian (Latin and Cyrillic) translation.
      oledlg: Add the Serbian (Latin and Cyrillic) translation.
      localspl: Add the Serbian (Latin and Cyrillic) translation.
      xcopy: Add the Serbian (Latin and Cyrillic) translation.
      iccvid: Add the Serbian (Latin and Cyrillic) translation.
      localui: Add the Serbian (Latin and Cyrillic) translation.
      setupapi: Add the Serbian (Latin and Cyrillic) translation.
      winedbg: Update Serbian (Latin) translations.
      winedbg: Add the Serbian (Cyrillic) translation.
      mapi32: Add the Serbian (Latin and Cyrillic) translation.
      mpr: Add the Serbian (Latin and Cyrillic) translation.
      msacm32: Add the Serbian (Latin and Cyrillic) translation.
      msrle32: Add the Serbian (Latin and Cyrillic) translation.
      serialui: Add the Serbian (Latin and Cyrillic) translation.
      sane.ds: Add the Serbian (Latin and Cyrillic) translation.
      oleaut32: Add the Serbian (Latin and Cyrillic) translation.
      msvidc32: Add the Serbian (Latin and Cyrillic) translation.
      msvfw32: Add the Serbian (Latin and Cyrillic) translation.
      shlwapi: Add the Serbian (Latin and Cyrillic) translation.
      msi: Update Serbian (Latin and Cyrillic) translations.
      user32: Update Serbian (Latin and Cyrillic) translations.
      appwiz.cpl: Update Serbian (Latin and Cyrillic) translations.
      comctl32: Update Serbian (Latin and Cyrillic) translations.

Trygve Vea (9):
      crypt32: Updated Norwegian translation.
      cryptdlg: Updated Norwegian translation.
      user32: Updated Norwegian translation.
      wineboot: Updated Norwegian translation.
      wineps.drv: Updated Norwegian translation.
      msi: Updated Norwegian translation.
      wineconsole: Updated Norwegian translation.
      oledlg: Updated Norwegian translation.
      oleaut32: Updated Norwegian translation.

Vijay Kiran Kamuju (1):
      tools: Add trailing semicolon to MimeType in wine.desktop.

Vladimir Panteleev (1):
      user32: Update last active popup for all parents.

Wolfram Sang (1):
      user32: Check for valid pointer in CreateIconFromResource.

Yaron Shahrabani (1):
      kernel32: heb.nls: Made some corrections.

--
Alexandre Julliard
julliard@winehq.org
