It happens than a newer version of Wine works worse than a previous one. It can be a regression or new features makes the execution slower, yet you do not need them.
In any case, you want an old wine to execute a Windows program. Archlinux is a rolling distribution and it gives you the newest and most recent version of software, but you can compile yourself and use the old versions.
The instruction focus on Wine, but the basic idea can be applied to other projects too.
As reference, here are the original build wine instructions.
Step 1. Download sources, if you already have them just use
$ git clone git://source.winehq.org/git/wine.git ~/wine-source $ cd ~/wine-source
Step 2. Find and put the version you want, here as example we see all versions 2 and set up for version 2.22
$ git tag | grep -e '-2\.' wine-2.0 wine-2.0-rc1 [...] wine-2.22 [...] wine-2.8 wine-2.9 $ git reset --hard wine-2.22
Step 3. Build! The make command will use up to 8 concurrent tasks, but try to keep the average CPU usage under 90%, to keep the computer responsive. You can change the
-j option to match the number of CPUs or hyperthreads of your system
$ mkdir ~/wine-source/BUILD $ cd ~/wine-source/BUILD $ CC="ccache gcc" ../configure.sh --prefix=/
Check if there are any problem. It is possible one needs to install some development libraries.
$ make -j8 -l 90.0
Step 4. If make has been successful, install
$ mkdir -p ~/bin/old_wine $ make install DESTDIR=~/bin/old_wine/wine2.22
Step 5. Reset the wine sources to the newest version. Ready for the next time. Otherwise you can simply delete the source directory
$ cd ~/wine-source $ git checkout HEAD $ git pull
When you need to use the old
wine you have to hide the one you installed system-wide. To do so just set up the
PATH environment variable to see the new directory than the system one.
$ wine --version wine-4.5 (Staging) $ export PATH=~/bin/old_wine/wine2.22/bin:"$PATH" $ wine --version wine-2.22
If you are using wine bottles you probably want to edit the file so it sets up the