This is an old revision of the document!
The wiki page for emulators/i386-wine(-devel|-compholio), the port for delivering a 32-bit Wine (for running 32-bit Microsoft Windows applications) capable of installing and running under FreeBSD/amd64.
This port can only be built in an i386 environment as the FreeBSD Port's Collection does not support cross compiling.
Packages
Packages for i386-wine(-devel|-compholio) are provided for all supported FreeBSD releases and FreeBSD-current via the normal FreeBSD Ports repository.
You do need a system installed with lib32 libraries. If ensure, test if /libexec/ld-elf32.so.1 is present on your system. If not you can fetch the set “lib32.txz” and install it the following way:
# tar -xpf /path/to/the/downloaded/lib32.txt -C /
To install wine do one of the following:
# pkg install i386-wine
for the stable version of wine,
# pkg install i386-wine-devel
for the development version of wine, or
# pkg install i386-wine-compholio
for the staging version of wine.
Alternatively you can install directly from the Ports Collection under emulators/i386-wine(-devel|-compholio) however both approaches uses the same precompiled binaries. For example:
# cd /usr/ports/emulators/i386-wine-devel # make install
To update the installed wine:
# pkg upgrade
}}}
== Port options ==
The precompiled packages are compiled using the following options:
||'''Option'''|| '''Description''' ||
|| CUPS || CUPS printing system support ||
|| GNUTLS || SSL/TLS support via GnuTLS ||
|| HAL || HAL (Hardware Abstraction Layer) support ||
|| LIBXSLT || Use libxslt (only used by msxml3.dll) ||
|| OPENAL || OpenAL support ||
|| X11 || X11 (graphics) support ||
= Building =
To build the i386-Wine port an i386 environment is required. If such an environment is not available then it can be created from FreeBSD/amd64:
{{{
# cd /usr/src
# make buildworld TARGET=i386
# make installworld TARGET=i386 DESTDIR=/compat/i386
# make distribution TARGET=i386 DESTDIR=/compat/i386
# mkdir /compat/i386/usr/ports
# mount -t devfs devfs /compat/i386/dev
# mount -t nullfs /usr/ports /compat/i386/usr/ports
When chrooting to /compat/i386 do these additional setups:
# chroot /compat/i386 # setenv MACHINE i386 # setenv UNAME_m i386 # setenv UNAME_p i386 # service ldconfig start
Lastly, the package can be created:
# cd /usr/ports/emulators/i386-wine-devel # make package
The package is available at
# echo /compat/i386/$(make -V PKGFILE)
TODO
- Add getdirentry patch to port (and upstream) [fixes many game regressions]
- Upstream wine64 patches [2/3 completed]
- Add wow64 support
- Add HAVE_STRUCT_RES_STATE patch to port (and upstream)
- Add warning for user when nvidia is installed but not up-to-date (helps with cryptic crashes)
- Add libva support