Nachfolgend soll die Kompilation von „wine“ beschrieben werden.

Hintergrund

Für die Ausführung von Windows-Programmen unter Linux ist „wine“ eine gute Wahl. Damit aber zum Beispiel auch 32Bit-Programme ausgeführt werden können, muss auch die 32Bit-Variante von „wine“ installiert werden. Das bedeutet, dass zum Beispiel unter DEBIAN eine zusätzliche Architektur („i386“) hinzugefügt und die entsprechenden Pakete installiert werden müssen. Um dies zu verhindern, hat das Team um „wine“ die von Windows bekannte „Shared WoW64“-Bibliotheken hinzugefügt (siehe hier). In einem Test gelang die Nutzung nur, wenn die auf der Webseite beschriebenen Schritte durchgeführt werden.

Vorbereitung

Es wird mit einer CHROOT-Umgebung gearbeitet, wie sie hier beschrieben ist. Es wird ein Grundsystem genutzt. Alle zu installierenden Pakete werden hier aufgeführt.

Quellen herunterladen

Als erstes werden die Quellen heruntergeladen:

[schroot]~# apt -y install git && git clone https://gitlab.winehq.org/wine/wine.git ~/wine-dirs/wine-source

Abhängigkeiten

Jetzt können die Abhängigkeiten installiert werden.

Wine-Repository

Für die Kompilierung der 32Bit-Version von „wine“, ist es notwendig, dass die entsprechende Architektur hinzugefügt wird. Weiterhin muss das DEBIAN-Repository eingebunden werden:

[schroot]~# dpkg --add-architecture i386 && mkdir -pm755 /etc/apt/keyrings && wget -O - https://dl.winehq.org/wine-builds/winehq.key | gpg --dearmor -o /etc/apt/keyrings/winehq-archive.key - && wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/debian/dists/trixie/winehq-trixie.sources && apt update

Installation

Jetzt kann „wine“ installiert werden:

[schroot]~# apt install --install-recommends winehq-stable

Bauverzeichnisse

Die 32- und 64Bit-Versionen werden separat konfiguriert und gebaut. Es sollte daher jeweils eine Kopie vom Quellverzeichnis erstellt werden:

[schroot]~# cp -rv ~/wine-dirs/wine-source ~/wine-dirs/wine32-build && cp -rv ~/wine-dirs/wine-source ~/wine-dirs/wine64-build

64Bit-Version

Als erstes werden die bau-abhängigen Paket nachinstalliert:

[schroot]~# apt -y install flex bison gettext mingw-w64 libsdl2-dev libkrb5-dev libcapi20-dev libavdevice-dev libavfilter-dev libavformat-dev libffmpegthumbnailer-dev libpostproc-dev libswscale-dev libavcodec-dev libpcsclite-dev gcc-multilib libasound2-dev libpulse-dev libdbus-1-dev libfontconfig-dev libfreetype-dev libgnutls28-dev libgl-dev libunwind-dev libx11-dev libxcomposite-dev libxcursor-dev libxfixes-dev libxi-dev libxrandr-dev libxrender-dev libxext-dev libwayland-bin libwayland-dev libegl-dev libwayland-dev libxkbcommon-dev libxkbregistry-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libosmesa6-dev libudev-dev libvulkan-dev libcups2-dev libgphoto2-dev libsane-dev samba-dev ocl-icd-opencl-dev libpcap-dev libusb-1.0-0-dev libv4l-dev libxxf86vm-dev libxinerama-dev

Jetzt kann die Konfiguration und der Bau der 64Bit-Version erfolgen:

[schroot]~# cd ~/wine-dirs/wine64-build/
[schroot]~# ../wine-source/configure --enable-win64
[schroot]~# make

32Bit-Version

Auch hier werden noch Pakete installiert:

[schroot]~# apt -y purge libgstreamer1.0-dev:amd64 libgstreamer-plugins-base1.0-dev:amd64
[schroot]~# apt -y install libsdl2-dev:i386 libkrb5-dev:i386 libcapi20-dev:i386 libavdevice-dev:i386 libavfilter-dev:i386 libavformat-dev:i386 libffmpegthumbnailer-dev:i386 libpostproc-dev:i386 libswscale-dev:i386 libavcodec-dev:i386 libpcsclite-dev:i386 libfreetype-dev:i386 libasound2-dev:i386 libpulse-dev:i386 libdbus-1-dev:i386 libfontconfig-dev:i386 libfreetype-dev:i386 libgnutls28-dev:i386 libgl-dev:i386 libunwind-dev:i386 libx11-dev:i386 libxcomposite-dev:i386 libxcursor-dev:i386 libxfixes-dev:i386 libxi-dev:i386 libxrandr-dev:i386 libxrender-dev:i386 libxext-dev:i386 libwayland-bin:i386 libwayland-dev:i386 libegl-dev:i386 libwayland-dev:i386 libxkbcommon-dev:i386 libxkbregistry-dev:i386 libgstreamer1.0-dev:i386 libgstreamer-plugins-base1.0-dev:i386 libosmesa6-dev:i386 libudev-dev:i386 libvulkan-dev:i386 libcups2-dev:i386 libgphoto2-dev:i386 libsane-dev:i386 samba-dev:i386 ocl-icd-opencl-dev:i386 libpcap-dev:i386 libusb-1.0-0-dev:i386 libv4l-dev:i386 libxxf86vm-dev:i386 libxinerama-dev:i386

Danach kann die Konfiguration und der Bau der 32Bit-Version erfolgen:

[schroot]~# cd ~/wine-dirs/wine32-build/
[schroot]~# PKG_CONFIG_PATH=/usr/bin/pkgconfig ../wine-source/configure --with-wine64=../wine64-build
[schroot]~# make

.Ende des Dokuments