How to install lfreetype using wine?

I am using Ubuntu 11.10 64bit and trying to install wine 1.5, using this method:

Install Wine on Ubuntu:

sudo apt-get install libfreetype6-dev gobject* libxrender-dev libfontconfig-dev pthread* libpthread-stubs0-dev xext* libsm-dev

and copy the following commands in the Terminal:

wget http://prdownloads.sourceforge.net/wine/wine-1.5.0.tar.bz2
tar -xjvf wine-1.5.0.tar.bz2
cd wine-1.5.0

Install some packages:

sudo apt-get install flex bison qt3-dev-tools qt4-qmake
./configure
cd tools
./wineinstall

All goes well, but at the end, I get this error message:

checking for -lfreetype... not found
configure: error: FreeType 32-bit development files not found. Fonts will not be built. 
Use the --without-freetype option if you really want this.

Does anyone know how to install lfreetype?


Solution 1:

Get to the directory that you've extracted the files for wine.

In terminal, run this command:

./configure --without-freetype

Then after it's completely done, run:

make

Solution 2:

It complains about missing the 32bit dev package of freetype.
You can try installing it with sudo apt-get install libfreetype6-dev:i386 and see if the warning has gone.

Solution 3:

Revert the following patch from your source tree and compile again:

From a37f74f5adec8cd3f924fc96e083a66219086091 Mon Sep 17 00:00:00 2001
From: Nicolas Le Cam <[email protected]>
Date: Sat, 7 Apr 2012 22:46:58 +0200
Subject: [PATCH] configure.ac: Prefer pkg-config over freetype-config.

---
 configure    | 16 +++++++++++-----
 configure.ac | 14 ++++++++++----
 2 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/configure b/configure
index 3e6e777..5b0dcba 100755
--- a/configure
+++ b/configure
@@ -10262,7 +10262,12 @@ fi

 if test "x$with_freetype" != "xno"
 then
-    for ac_prog in freetype-config freetype2-config
+    if test "$PKG_CONFIG" != "false"
+    then
+        ac_freetype_incl="`$PKG_CONFIG --cflags freetype2 2>/dev/null`"
+        ac_freetype_libs="`$PKG_CONFIG --libs freetype2 2>/dev/null`"
+    else
+        for ac_prog in freetype-config freetype2-config
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
@@ -10305,10 +10310,11 @@ fi
 done
 test -n "$ft_devel" || ft_devel="no"

-    if test "$ft_devel" != "no"
-    then
-        ac_freetype_incl=`$ft_devel --cflags`
-        ac_freetype_libs=`$ft_devel --libs`
+        if test "$ft_devel" != "no"
+        then
+            ac_freetype_incl=`$ft_devel --cflags`
+            ac_freetype_libs=`$ft_devel --libs`
+        fi
     fi
     ac_freetype_libs=${ac_freetype_libs:-"-lfreetype"}
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lfreetype" >&5
diff --git a/configure.ac b/configure.ac
index 667d725..a57f133 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1384,11 +1384,17 @@ WINE_NOTICE_WITH(cms,[test "$ac_cv_lib_lcms_cmsOpenProfileFromFile" != "yes"],
 dnl **** Check for FreeType 2 ****
 if test "x$with_freetype" != "xno"
 then
-    AC_CHECK_PROGS(ft_devel,[freetype-config freetype2-config],no)
-    if test "$ft_devel" != "no"
+    if test "$PKG_CONFIG" != "false"
     then
-        ac_freetype_incl=`$ft_devel --cflags`
-        ac_freetype_libs=`$ft_devel --libs`
+        ac_freetype_incl="`$PKG_CONFIG --cflags freetype2 2>/dev/null`"
+        ac_freetype_libs="`$PKG_CONFIG --libs freetype2 2>/dev/null`"
+    else
+        AC_CHECK_PROGS(ft_devel,[freetype-config freetype2-config],no)
+        if test "$ft_devel" != "no"
+        then
+            ac_freetype_incl=`$ft_devel --cflags`
+            ac_freetype_libs=`$ft_devel --libs`
+        fi
     fi
     ac_freetype_libs=${ac_freetype_libs:-"-lfreetype"}
     WINE_CHECK_SONAME(freetype,FT_Init_FreeType,[ft_lib=yes],[ft_lib=no],[$ac_freetype_libs])
-- 
2.1.4

Solution 4:

To configure wine on 64-bit machine, you should do:

./configure --enable-win64

If you really want to compile 32-bit wine on 64-bit machine, then I think the easiest way is to use the lxc container as Ubuntu makes building 32-bit wine hard because the 64-bit system doesn't come with a full set of 32-bit development libraries (See: Bug #990982).

So the basic approach to compile both 32-bit and 64-bit wine is:

  1. Build 64-bit wine
  2. Build 32-bit tools in lxc
  3. Build 32-bit wine in lxc, referring to the 64-bit wine and 32-bit tools 1. built in the previous steps
  4. Install 32-bit wine
  5. Install 64-bit wine

On the page Building Biarch (Shared WoW64) Wine On Ubuntu we can read the following instructions:

  1. Install the 64-bit prerequisites:

    sudo apt-get update
    sudo apt-get build-dep wine
    
  2. Build 64-bit wine:

    mkdir $HOME/wine64
    cd $HOME/wine64
    ../wine-git/configure --enable-win64
    make -j4
    
  3. Install lxc:

    sudo apt-get install lxc
    
  4. Create a 32-bit container named "my32bitbox" using the Ubuntu template and bind your home directory to the /home directory in the container:

    sudo lxc-create -t ubuntu -n my32bitbox -- --bindhome $LOGNAME -a i386
    
  5. Copy the apt configuration from the host to the lxc container:

    sudo cp -R /etc/apt /var/lib/lxc/my32bitbox/rootfs/etc
    
  6. Start the container; at the console login prompt it gives you, log in with your username and password.

    sudo lxc-start -n my32bitbox
    
  7. Now you're inside the container, in your real home directory. If you are not in the container (you do not have the prompt username@my32bitbox), then open a new terminal and:

    sudo lxc-attach -n my32bitbox
    login yourusername+password
    
  8. Now, you are in the container. Do an out-of-tree build of Wine as normal, just to get the tools. You'll have to install all the needed prerequisites first. For instance:

    sudo apt-get update
    sudo apt-get install python-software-properties git-core
    sudo apt-get build-dep wine
    mkdir $HOME/wine32-tools
    cd $HOME/wine32-tools
    ~/wine-git/configure
    make -j4
    
  9. Still inside the container, do it again, this time pointing to the 64-bit build for data, and the 32-bit tools build for tools:

    mkdir $HOME/wine32
    cd $HOME/wine32
    ~/wine-git/configure --with-wine64=$HOME/wine64 --with-wine-tools=$HOME/wine32-tools
    make -j4
    
  10. Still inside the container, install the 32-bit wine to force the last little bit of building:

    cd $HOME/wine32
    sudo make install
    
  11. While still inside the container, shut it down:

    sudo shutdown -h now
    

    This drops you back out into your real machine. Next, you need to remove all existing Wine packages. You can do this from the command line but it's probably easier with aptitude or one of the GUI package management tools. You will need wine-mono, wine-gecko, and optionally winetricks for your compiled version of wine. However, these packages may depend on the existing wine installation which may force you to remove them.

  12. Install the newly built wine into your real machine:

    cd $HOME/wine32
    sudo make install
    cd $HOME/wine64
    sudo make install
    

    Warning: When you install a locally built version of Wine, the package management system will not know it exists since it did not come from a package. Thus it is possible to later break its dependencies or install a conflicting version of wine without a warning from the package management tools. You can prevent this by creating a package or by blocking conflicting packages with apt-pinning by setting "Pin-Priority: -1" for the packages.

  13. Next, install Mono, Gecko, and optionally winetricks if you had to remove their packages because of a dependency on a conflicting wine package.

Note: Many of the above commands require root privileges. Your user account needs to have access to root via sudo or you need to switch to a user account.