Staging repository for Wine
Go to file
2014-07-25 18:58:53 -06:00
debian Updated changelog for Dynamic DST patch. 2014-07-26 00:57:56 +02:00
patches Move 98-Miscellaneous to Miscellaneous. 2014-07-25 18:58:53 -06:00
.gitignore patchupdate.py: Improve patch system and remove dependencies, when the order of patches doesn't matter. 2014-07-25 16:39:08 +02:00
LICENSE.LGPLv2.1 Merged with master. 2014-07-25 03:45:20 +02:00
LICENSE.Liberation Merged with master. 2014-07-25 03:45:20 +02:00
LICENSE.wine-compholio Merged with master. 2014-07-25 03:45:20 +02:00
precommit-hook.sh Precommit script should trigger even if just the changelog was updated. 2014-07-13 01:32:09 +02:00
README.md Split 02-ACL_Extended_Attributes into server-Stored_ACLs, server-Inherited_ACLs, shell32-Default_Folder_ACLs, and server-ACL_Compat. 2014-07-25 18:33:58 -06:00

wine-compholio

The Wine "Compholio" Edition repository includes a variety of patches for Wine to run common Windows applications under Linux.

These patches fix the following Wine bugs:

Besides that the following additional changes are included:

  • Add support for Dynamic DST (daylight saving time) information in registry
  • Lockfree algorithm for filedescriptor cache (improves file access speed)
  • No default ACLs for user shell folders
  • Other Pipelight specific enhancements
  • Reduced SetTimer minimum value from 10 ms to 5 ms (improves Silverlight framerates)
  • Support for GetVolumePathName
  • Support for PulseAudio backend for audio
  • Workaround for shlwapi URLs with relative paths
  • XEMBED support for embedding Wine windows inside Linux applications

Compiling wine-compholio

Please note that starting with wine-compholio 1.7.23 it is deprecated to manually apply patches without using the Makefile. To avoid typical pitfalls for package maintainers (like trying to use the patch commandline utility for binary patches or not updating the patchlist) it is highly recommended to use the Makefile in order to apply all patches. This ensures that the the correct patch utility is used, that the list of patches is updated appropriately, and so on. Please note that it is still possible to exclude patches if desired, take a look at the end of this document for more details.

The following instructions (based on the Gentoo Wiki) will give a short overview how to compile wine-compholio, but of course not explain all details. Make sure to install all required Wine dependencies before proceeding.

As the first step please grab the latest Wine source:

wget http://prdownloads.sourceforge.net/wine/wine-1.7.22.tar.bz2
wget https://github.com/compholio/wine-compholio-daily/archive/v1.7.22.tar.gz

Extract the archives:

tar xvjf wine-1*.tar.bz2
cd wine-1*
tar xvzf ../v1.7.22.tar.gz --strip-components 1

And apply the patches:

make -C ./patches DESTDIR=$(pwd) install

Afterwards run configure (you can also specify a prefix if you don't want to install wine-compholio system-wide):

./configure --with-xattr

Before you continue you should make sure that ./configure doesn't show any warnings (look at the end of the output). If there are any warnings, this most likely means that you're missing some important header files. Install them and repeat the ./configure step until all problems are fixed.

Afterwards compile it (and grab a cup of coffee):

make

And install it (you only need sudo for a system-wide installation):

sudo make install

Excluding patches

It is also possible to apply only a subset of the patches, for example if you're compiling for a distribution where PulseAudio is not installed, or if you just don't like a specific patchset. Please note that some patchsets depend on each other, and requesting an impossible situation might result in a failure to apply all patches.

Lets assume you want to exclude the patchset in directory DIRNAME, then just invoke the Makefile like this:

make -C ./patches DESTDIR=$(pwd) install -W DIRNAME.ok

Using the same method its also possible to exclude multiple patchsets. If you want to exclude a very large number of patches, it is easier to do specify a list of patches which should be included instead. To apply for example only the patchsets in directory DIRNAME1 and DIRNAME2, you can use:

make -C ./patches DESTDIR=$(pwd) PATCHLIST="DIRNAME1.ok DIRNAME2.ok" install