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 unsure, 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.txz -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
  • i386-wine.1445855602.txt.gz
  • Last modified: 2015/10/26 10:33
  • by BaptisteDaroussin