Installing Microsoft Office 2000 on FreeBSD 5.3

CAIA Technical Report 041129A

Kris Mitchell
Jason But
November 29th, 2004
  1. Introduction
  2. Creating the .wine Directory
    1. Why Install via Linux?
    2. Installation Procedure - Internet Explorer
    3. Installation Procedure : Microsoft Office 2000
    4. Tweaking Wine
    5. Packaging the .wine Directory
  3. Getting it working on FreeBSD
    1. Printing with CUPS
    2. Installing Wine on FreeBSD 5.3
      1. KDE Integration
      2. KDE Icons
      3. MIME Types
      4. Konqueror Helper Scripts
      5. Autolaunching an application to open a MIME Type
      6. KDE Start Menu
      7. KDE Desktop
  4. Outstanding Issues
  5. Automating Installation
    1. Required Files
  6. Conclusion


FreeBSD, WINE and Microsoft Office typically do not live happily together. Reports on the web indicate that installation and operation is frustrating and fraught with difficulties. As part of a recent bout of enthusiasm, we have spent some time and managed to create a working installation for FreeBSD 5.3. Further, we have documented the entire setup procedure so that it can be replicated. We also provide some preconfigured installation scripts, packages and tar bundles for those who do not wish to do everything manually.

This report describes the installation procedure that we have undertaken. Following a brief discussion on FreeBSD versions, we step through the four basic steps required to get it all working.
Note: Microsoft Internet Explorer 6 and Microsoft Office 2000 are licensed products. You must ensure you have licenses for all copies of these software packages you wish to run. We take no responsibility for unlicensed installations of Microsoft Office 2000 under FreeBSD and Linux.

If you are inside CAIA, you may wish to read the CAIA specific MS Office 2000 Tech Report TR 041203A.

Creating the .wine Directory

The user's personal fake Windows installation exists in the ~/.wine directory. In this section we describe how to create a .wine directory consisting of Internet Explorer 6 and Microsoft Office 2000.

Why Install via Linux?

There are a number of reasons why we create a .wine directory under Linux, these are:
From this point it is expected that you have successfully installed Wine on your Linux system. Please visit to obtain the source, or a suitable installation package for your particular Linux distribution.

Our MS Office installation was done on a Gentoo Linux box (linux 2.6.7), with wine-20041019-r3 and winesetuptk-0.7 installed.

Installation Procedure - Internet Explorer

Like many MS products, Office 2000 requires Internet Explorer to be installed. Installing Internet Explorer under Wine can be a challenge however there is a script available at that configures a Windows 98 environment under Wine and automatically installs Internet Explorer 6 and Windows Media Player 7. Don't be frightened by the Japanese encoding of the page. There is an English README in the package that contains all the information you need to install IE 6 and Media Player 7. Installation of Microsoft Office 2000 does not require Media Player 7.
The installation script will still run correctly without the Media Player 7 installer.
You will need, at least the following files (URLs are provided in the README):
DCOM98.EXE    mfc40.dll    ie6setup.exe    InstMsiA.exe

You must download these files and place them in the wine-config-sidenet directory (created when you decompress the wine-config-sidenet tarball) before running the script.

Note: Installing Internet Explorer 6 requires an internet connection. This is because the IE 6 installer downloads the bulk of the installation files as it goes. If you are behind an HTTP proxy, the installer will appear to do nothing for quite a while. Eventually it will decide it can't contact the download server and pop-up a window which (after clicking the Advanced button) will allow you to set a proxy.
Once the proxy has been set, the install should continue as usual. The following is a run-through of the script (run as a non-privileged user):
bash-2.05b$ ./setup

wine-config-sidenet version 1.5.1 installer

Read readme.en or readme.ja.euc carefully before running setup.

This script will install wine-config-sidenet.

Setup started on 200411240857.
Checking which package to install ...
MFC 4.0 : YES
Internet Explorer 6 : YES
Windows Installer : YES
Windows Media Player 7.1 : NO

Continue with these options(y/n)?y

Cleaning up log files ...
Stopping wine process ...
Setting up wine base directory structure ...
Setting up wine install-time configuration ...
Setting up drives ...
Linked /mnt/cdrom to e drive.
Linked ~/c/windows/Fonts -> ~/.fonts

Setting up default registry ...
Log file: defaultinstall.log

Install Japanese-spicific entry(y/n)?n
Disabled Japanese-spicific entry.
Setting up symlinks ...
Install prefix is /usr
MPlayer codec package found.
Linking some codecs for wine ...
Setting up wine configuration ...
Creating shortcut: K -> Wine -> Run...
Creating shortcut: K -> Wine -> Control Panel
Creating shortcut: K -> Wine -> Application Uninstaller
Creating shortcut: K -> Wine -> File Manager
Creating shortcut: K -> Wine -> KILL all wine processes
Creating shortcut: K -> Wine -> Wine configuration
Creating shortcut: K -> Wine -> Programs -> Accesories -> Notepad
Creating shortcut: K -> Wine -> Programs -> Accesories -> Mine Sweeper
Creating shortcut: K -> Wine -> Programs -> Accesories -> Registry Editor

Setting up DCOM98 ...
Log file: dcom98.log
Install DCOM98
DCOM98 License
DCOM98 setup completed.
Installing mfc40.dll ...
Setting up Internet Explorer 6 ...
Log file: ie6setup.log
IE 6 License
IE 6 Install Type
IE 6 Component Options

If you are behind a proxy, this is the point at which the installer appears to hang.
Please be patient-it eventually figures things out and opens a dialog allowing manual proxy configuration (under the `Advanced' option)

IE 6 Installing
IE 6 Restart
Checking if ie6setup needs to be started again ...
Internet Explorer 6 setup completed.
Simulating reboot ... This may take some time.
Press OK if some error dialog appears.
Log file: ie6setup_wineboot.log
Creating shortcut: K -> Wine -> Programs -> Internet Explorer
Updating Font Cache ...
Launching Internet Explorer ... This may take some time.
Press CANCEL if Internet Connection Wizard appears.
Log file: iexplore.log
IE 6 Install Complete
Setting up Windows Installer ...
Log file: instmsia.log
Microsoft Installer Installation Complete
All setup completed.

You need to make a few minor modifications to the Wine installation to before installing Microsoft Office 2000:
bash-2.05b$ mv c .wine/c-drive
bash-2.05b$ rm .wine/c-drive/windows/Fonts
bash-2.05b$ cp -r .fonts .wine/c-drive/windows/Fonts
bash-2.05b$ cd .wine/dosdevices/
bash-2.05b$ rm c: d: e:
bash-2.05b$ ln -s ../c-drive c:
bash-2.05b$ ln -s ../.. d:
bash-2.05b$ ln -s /mnt/cdrom e:
bash-2.05b$ ln -s /tmp x:
These changes (apart from bundling everything into a single .wine directory) enable Wine to execute programs directly from the CDROM (which is mapped to e:) If your Linux distribution mounts your CDROM to another location, you need to create a symlink to that location.

Installation Procedure : Microsoft Office 2000

When mounting the Office 2000 CDROM ensure you use the `unhide' option ie.
mount /dev/cdrom /mnt/cdrom -o unhide
Mount may need to be executed as root (depending on your system configuration)

Start the setup program for Microsoft Office on the CD:
cd /mnt/cdrom
Microsoft Office 2000 Registration
Microsoft Office 2000 License
Microsoft Office 2000 Installation Type

You need to select Customize here as there are a couple of options that MUST be disabled.
Microsoft Office 2000 Custom Install

The default here is for c:\Program File\Microsoft Office this if fine, just click Next
Microsoft Office 2000 Component Options

Ensure you set Microsoft Access for Windows and Office Assistant to Not Available

Microsoft Office 2000 Installation Progress
Microsoft Office 2000 Progress

At this point you need to fake a Windows reboot. This is done using the wineboot utility (which is part of Wine) on Gentoo it is installed at /usr/lib/wine/bin/wineboot but may somewhere else on other Linux distributions. Just run wineboot (with no parameters)
The 'reboot' will continue the installation process
Microsoft Office 2000 Installation after Reboot

Tweaking Wine

There a few tweaks we found made using MS Office on FreeBSD a little easier:
  1. Modify the user.reg file under the .wine directory
    Change "Personal"="c:\\Program Files" to "Personal"="d:\\" (this assumes you have a soft link in your .wine/dosdevices directory d: -> ../.. )
    To change the default Save directory to your home directory.
  2. Add "ShowDirSymlinks" = "1" to the .wine/config file so Wine applications will display soft links.

Packaging the .wine Directory

When this part of the installation completes, you should have a working Microsoft Office 2000 installation. At this point the .wine directory can be tared up for installation (decompression) on a FreeBSD machine.

Getting it working on FreeBSD

While the entire set of procedures can be implemented on older versions of FreeBSD, they appear to have problems when executing the Office Applications, frequently hanging and locking up the CPU. We have only found the configuration to function correctly on FreeBSD 5.3.

In this section we describe installing CUPS and Wine under FreeBSD 5.3 such that the previously created .wine directory can be used.

Printing with CUPS

The Common UNIX Printing System (CUPS) is becoming the default printing system for use in *NIX systems. Further, WINE seems to work best for printing when using CUPS as the underlying Print Manager. All commands required to install and configure CUPS must be executed as root.

CUPS can be installed under FreeBSD through the addition of the cups-base package.
pkg_add -r cups-base

To enable printing through WINE, it is also necessary to install the cups-lpr package.
pkg_add -r cups-lpr

Once these two packages are installed, CUPS needs to be correctly configured. We need to:
  1. Ensure that the CUPS lpr tool is the default system lpr.
    mv /usr/bin/lpr /usr/bin/bsdlpr
  2. Ensure that the CUPS daemon is automatically started on system boot.
    mv /usr/local/etc/rc.d/ /usr/local/etc/rc.d/
  3. Start CUPS so that we can use it without requiring a reboot.
    /usr/local/etc/rc.d/ start
CUPS is now installed, but no printers have been configured. Necessary files to edit exist in /usr/local/etc/cups

It is now necessary to install CUPS printers, please see the CUPS documentation for further instructions. Information about the printers to support can be found in (/usr/local/etc/cups/printers.conf) which corresponding PostScript Printer Definition (PPD) files for these printers are located in the (/usr/local/etc/cups/ppd) directory.

Installing Wine on FreeBSD 5.3

On FreeBSD 5.3 the latest version of Wine available in the ports tree is wine-20040505, this is the version we will be installing. However the FreeBSD port of Wine is not correctly configured to use CUPS. This is because the configure script expects to find the cups headers in /usr/include instead of /usr/local/include (where they are on FreeBSD). The simplest work-around for this problem is to create a symlink from /usr/local/include/cups to /usr/include/cups
ln -s /usr/local/include/cups /usr/include/cups
Make and install the port (or build a package if you wish to install it easily on a number of machines)
cd /usr/ports/emulators/wine
make package
After Wine is installed, the .wine directory created on the Linux box should just drop into place on the FreeBSD machine.

The remainder of this tech-report covers configuration and customisation of FreeBSD and Wine to integrate Microsoft Office into FreeBSD and KDE.

KDE Integration

This section describes how to build a series of files in the (~/.kde/share) directory that will allow a clean integration of Microsoft Office with the KDE environment, konqueror and the start menu.

KDE Icons

Installation of Icons for KDE is done by copying a matching (*.png) file to the directory (~/.kde/share/icons/<theme>/<resolution> /apps/<Icon Name>.png). Where <theme> is the name of the Icon Theme, <resolution> is the icon size in pixels in the format (WxH) and <Icon Name> is the name that the Icon will be known to KDE as.

For Microsoft Office, we wish to install four icons (Office, Microsoft_Word, Microsoft_Excel and Microsoft_PowerPoint) at size 48 by 48 pixels. We provide four sample PNG files to install but these should be replaced by whatever icon you feel is appropriate. The icons are installed to the hicolor theme as:

MIME Types

Registration of the mime type (mime1/mime2) is done with the properly configured file (~/.kde/share/mimelnk/mime1/mime2.desktop). The contents of this file is as follows:
  [Desktop Entry]
  Icon=<Icon Name>
  Patterns=<Filename Extensions>
Where <Icon Name> is the KDE Icon to associate with this MIME type and <Filename Extensions> is a semi-colon separated list of filename extensions to associate with this MIME type (eg. *.doc;*.DOC). The listed <Icon Name> is automatically displayed by KDE as the icon for a file of this MIME type.

For Microsoft Office we wish to register the three MIME types (application/msword), (application/msexcel) and (application/mspowerpoint).
File (~/.kde/share/mimelnk/application/msword.desktop)
  [Desktop Entry]
File (~/.kde/share/mimelnk/application/msexcel.desktop)
  [Desktop Entry]
File (~/.kde/share/mimelnk/application/mspowerpoint.desktop)
  [Desktop Entry]

Konqueror Helper Scripts

In order to launch MS Office documents from Konqueror we have written some helper scripts (which are called by Konqueror to launch MS Office apps). These scripts should be installed in the /usr/local/bin directory (as root)
These scripts are used in the following section Autolaunching an application to open a MIME Type
The code for the Word launcher script is included below. For Excel, replace WINWORD.EXE with EXCEL.EXE and for PowerPoint use POWERPNT.EXE.
# Launch Microsoft Word either by itself or with the provided file name to open.

# Fully qualifies pathname of the Windows Application to launch
PROGRAM="C:\\Program Files\\Microsoft Office\\Office\\WINWORD.EXE"

# If launched with no parameters, just run the application and exit.
if [ $# = 0 ]; then
    wine "$PROGRAM"
    exit 0

# Get the file to open and the directory where it resides.
FILE_NAME=`basename "$1"`
DIR_NAME=`dirname "$1"`

# Convert directory from relative to fully qualified path.
if [ `echo $DIR_NAME | cut -c 1` != "/" ]; then

# Change to the directory, run winepath to see if the directory maps to a fake
# windows drive.  WINEPATH_ERRS is 1 if not and 0 if yes.
cd "$DIR_NAME"
winepath "$DIR_NAME" > /tmp/winepath.chk 2>&1
WINEPATH_ERRS=`cat /tmp/winepath.chk | grep "Warning" | wc -l`

# If we cannot edit the file, show error box and terminate.
if [ $WINEPATH_ERRS -gt 0 ]; then
    kdialog --title "WINE/Microsoft Office Error!" --error \
  Attempting to open a file using a Windows Application where the file is not in a location accessible by your current WINE configuration.  To open this file you must either:
  - Move the file ($1) to a valid location.
  - Ensure that ($DIR_NAME) is accessible to WINE.
  Fake Windows drives are configured as softlinks (ln -s) in the directory (~/.wine/dosdevices).  The current configuration of this directory is:
    $(ls -l ~/.wine/dosdevices | tr -s " " | cut -d " " -f 9-) "
    exit 1

# Finally run the application.

Autolaunching an application to open a MIME Type

KDE can be configured to autolaunch an application to edit/view a file of a given MIME Type. Information as to which application to launch can be found in the (~/.kde/share/applnk/.hidden) directory. The contents of these files are as follows:
  [Desktop Entry]
  Name=<application name>
Where <executable> is the command to launch to open the document, <mimetype> is the MIME type that this file is linked with and <application name> is the name of the application as known to KDE. For Microsoft Office we wish to create three autolaunch items, one for each MIME type that we previously registered.

File (~/.kde/share/applnk/.hidden/word.desktop)
  [Desktop Entry]
File (~/.kde/share/applnk/.hidden/excel.desktop)
  [Desktop Entry]
File (~/.kde/share/applnk/.hidden/powerpoint.desktop)
  [Desktop Entry]

KDE Start Menu

Non hidden files in the (~/.kde/share/applnk) directory tree translate to the users KDE Start Menu, subdirectories within this tree define submenus. Within the submenu subdirectory, (*.desktop) files correspond to the menu entries while the (.directory) file describes the details of the submenu name. The format of a (.directory) entry is:
  [Desktop Entry]
  Name=<Submenu name>
  Icon=<Icon Name>
Where <Submenu name> is the name displayed as the menu item and <Icon Name> is the icon associated with the submenu. The format of the (*.desktop) files is:
  [Desktop Entry]
  Icon=<icon name>
  Name=<display name>
Where <display name> is the name displayed as the menu item, < icon name> is the KDE icon associated with this item, <comment> is the KDE comment about the menu item and <executable> is the application launched when the menu item is selected.

The KDE menu takes a while to realise that changes have been made to the menu structure and the Start Menu is updated.

For Microsoft Office, we wish to create a single KDE Submenu off the main KDE Start Menu which contains three Menu items, one for each of the main Microsoft Office Applications.

(File ~/.kde/share/applnk/Microsoft Office/.directory)
  [Desktop Entry]
  Name=Microsoft Office
(File ~/.kde/share/applnk/Microsoft Office/Microsoft Word.desktop)
  [Desktop Entry]
  Comment=FreeBSD, Wine and MS Office :)
  Exec=wine "C:\\\\Program Files\\\\Microsoft Office\\\\Office\\\\WINWORD.EXE"
  Name=Microsoft Word
(File ~/.kde/share/applnk/Microsoft Office/Microsoft Excel.desktop)
  [Desktop Entry]
  Comment=FreeBSD, Wine and MS Office :)
  Exec=wine "C:\\\\Program Files\\\\Microsoft Office\\\\Office\\\\EXCEL.EXE"
  Name=Microsoft Excel
(File ~/.kde/share/applnk/Microsoft Office/Microsoft PowerPoint.desktop)
  [Desktop Entry]
  Comment=FreeBSD, Wine and MS Office :)
  Exec=wine "C:\\\\Program Files\\\\Microsoft Office\\\\Office\\\\POWERPNT.EXE"
  Name=Microsoft PowerPoint

KDE Desktop

Placing application launching shortcuts in the desktop involves placing corresponding (*.desktop) files in the users (~/Desktop) directory. The format of these files are:
  [Desktop Entry]
  GenericName=<application name>
  GenericName[en_US]=<application name>
  Icon=<icon name>
  Name=<display name>
  Name[en_US]=<display name>
Where <icon name> is the icon to use on the desktop, <display name> is the name displayed on the desktop under the icon, < application name> is the information displayed under the shortcut properties, and <executable> is the executable to launch when the icon is clicked.

For Microsoft Office we recommend:
(File ~/Desktop/Word 2000.desktop)
  [Desktop Entry]
  Exec=wine "c:\\\\Program Files\\\\Microsoft Office\\\\Office\\\\WINWORD.EXE"
  GenericName=Microsoft Word
  GenericName[en_US]=Microsoft Word
  Name=Word 2000
  Name[en_US]=Word 2000
(File ~/Desktop/Excel 2000.desktop)
  [Desktop Entry]
  Exec=wine "c:\\\\Program Files\\\\Microsoft Office\\\\Office\\\\EXCEL.EXE"
  GenericName=Microsoft Excel
  GenericName[en_US]=Microsoft Excel
  Name=Excel 2000
  Name[en_US]=Excel 2000
(File ~/Desktop/PowerPoint 2000.desktop)
  [Desktop Entry]
  Exec=wine "c:\\\\Program Files\\\\Microsoft Office\\\\Office\\\\POWERPNT.EXE"
  GenericName=Microsoft PowerPoint
  GenericName[en_US]=Microsoft PowerPoint
  Name=PowerPoint 2000
  Name[en_US]=PowerPoint 2000

Outstanding Issues

It appears that when there are a number of office applications open at the same time, the menus and toolbars on one or more of the applications stop working.

Automating Installation

Our MS Office installer has been packaged as a three part installer. The first installer script installs and configures CUPS.
We provide cupsconfig.tbz which contains a number of configuration files and the installation script, this should be run as root. The script Note: This script will overwrite any pre-existing CUPS configuration. If you already have CUPS installed please ensure that you install the cups-lpr package and move /usr/bin/lpr to /usr/bin/bsdlpr. This is required to allow wine to print correctly with CUPS.

The second installer script installs our slightly modified FreeBSD package (wine-20040505.tbz). This package is the usual Wine port for FreeBSD 5.3 compiled with CUPS support. After installing Wine, the script copies the following files to the /usr/local/share/msoffice directory: Finally the script installs the Konqueror helper scripts contained in msofficescripts.tbz to the /usr/local/bin directory. This package includes the three Konqueror helper scripts as described above and another script,, which can be run as a regular user to correctly install the above tarballs. Line 33 of this script includes the line:
This refers to the number of files in your dotwine.tbz tarball (created from the .wine directory tree you built earlier). Our dotwine.tbz had 2175 files, you should replace this value with the output of the command:
tar -tf dotwine.tbz | wc -l
Where dotwine.tbz is the tarball you generate from your installed .wine directory. This value is used to provide a progress meter during non-privileged user installation.

The final installation script is used to decompress these files to a non-privileged users home directory. This script requires KDE and must be run as a non-privileged user.

Required Files

All In One

Everything but dotwine.tbz - This package contains all of the packaged listed below

Individual Packages and Scripts

This package contains an installation script and a number of configuration files to setup CUPS on your machine.
This script copies the preconfigured .wine and KDE integration tarballs to /usr/local/share/msoffice and expands out the msofficescripts.tbz tarball into /usr/local/bin
This a the usual FreeBSD 5.3 wine port compiled with CUPS support
Konqueror helper scripts (expand (as root) in /usr/local/bin)
These scripts can also be used to simplify execution of MS Office applications from a terminal. This package is required by the Konqueror integration packages.
This tarball you must create yourself from the .wine directory you created earlier.
KDE Konqueror integration (expand in your home directory)
This tarball also contains generic icons for MS Office files. You should install this package if you intend to install any of the other KDE integration packages
Microsoft Office KDE menu item (expand in your home directory) This package expects kdekonq.tbz to be installed
Microsoft Office desktop shortcuts (expand in your home directory) This package expects kdekonq.tbz to be installed


Although the installation procedure is a little long winded, we have found Word, Excel and PowerPoint run quite well under FreeBSD and provide us with document format compatibility with the Microsoft world. Further, once packaged up installations of new systems are relatively painless (providing you have the appropriate license)

At this stage we have been unable to get MS Office XP to install under raw Wine. If anyone has achieved this and would be willing to share the details, we would be most appreciative.


Swinburne Homepage Site Map Search Index

Swinburne Copyright and disclaimer Privacy Feedback

Last Updated: Friday 3-Dec-2004 18:11:54 AEDT
Maintained by: Jason But
Authorised by: Grenville Armitage

IndexSearchSite MapSwinburne Home Page