Skip to content
This repository has been archived by the owner on Oct 1, 2020. It is now read-only.

Packaging

slackner edited this page Dec 15, 2014 · 17 revisions

In case you want to compile Wine Staging or create a package for it, you should follow these instructions. We are using a special Makefile based system to track dependencies between patches and we also provide our own tools to apply binary patches. Simply applying all patches insides the patches folder won't work. Please note that it is still possible to exclude patches if desired, take a look at the end of this document for more details.

Compiling Wine Staging

Before you can start compiling Wine Staging, you need to make sure that you have all necessary dependencies installed. The easiest way to find the appropriate packages for your distribution (especially if you want to create a package) is to take a look at an existing Wine source package. In case you are using a 64 bit system, you can choose to compile Wine for 32 and 64 bit, but you will always need the 32 bit part. Depending on the Distribution you are using, this can be a bit complicated and you can find some tips in the Wine Wiki.

Wine Staging also supports the following optional dependencies:

Library Function
libpulse PulseAudio support
libattr Windows ACL support
libtxc_dxtn DXTn software decoding / encoding support

The compilation will also continue without these libraries installed, though you may want to provide as much features as possible if you are creating a package.

Instructions

The following instructions (based on the Gentoo Wiki) will explain how to compile Wine Staging. If you encounter any problems, feel free to join our IRC channel #wine-staging.

As the first step please grab the latest Wine source (or use the git repos for development):

wget http://prdownloads.sourceforge.net/wine/wine-1.7.33.tar.bz2 
wget https://github.com/wine-compholio/wine-staging/archive/v1.7.33.tar.gz

Extract the archives:

tar xvjf wine-1*.tar.bz2
cd wine-1*
tar xvzf ../v1.7.33.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 Staging system-wide: --prefix=$HOME/staging-test):

./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 everything (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
Clone this wiki locally