Wine

Wine is a "not an emulator" for running Windows applications under Linux, it works very well for some applications. I have been successfully using it over a year to design presentations with Powerpoint 2007;

Installation of wine and winetricks

  • Download the packages here and install them ( dpkg -i *.deb )
  • Invoke the 'Applications/System tools/Wine configuration' menu (this will create the .wine architecture under your home directory)
  • In addition, get the winetricks script: wget http://winetricks.org/winetricks, make it executable (chmod 755 winetricks) and copy it to your local bin path.
  • You will need also cabextract (aptitude install cabextract)

Powerpoint (version 2007)

See this AppDB entry for more info.

  • Insert the Microsoft Office CD and install it with wine /mnt/cdrom/SETUP.EXE
  • After the installation is done, invoke 'Applications/System tools/Wine configuration' again, and in the libraries tab, create a new entry for riched20 and select Native(Windows) for it. This is needed by PowerPoint (see the bottom of this page)
  • Now you got a new menu in 'Applications/Wine/Programs/Microsoft Office/'. It is (surprisingly) well integrated in the system. <crtl><c> <ctrl><v> works between Linux apps (e.g., gimp) and office apps, this is really cool !
  • You can also install the add-in 'save as PDF and XPS' from Microsoft (just download the file and invoke wine SaveAsPDFandXPS.exe). Make sure you use the latest version (some older versions failed to install in my experiments).
  • Install the missing fonts with winetricks allfonts

Note: Depending on wine version and configuration, displaying the slideshow results in a back screen and no response to any key input. This can be worked around in the SlideShow tab of the main menu / Configuration of the Slideshow. Click the 'hardware acceleration' checkbox (bottom) and select the windowed mode (top left).

Visual studio express edition (Version 2008)

See this AppDB entry for more info

  • install wine version 1.5.8 or 1.5.9 (from the sources, see http://www.winehq.org) Note: does not work with 1.5.10 - 1.5.12
  • make sure winbind is installed: aptitude install winbind (this is required by the mechanism that handles PDB files more info there)
  • Get winetricks from the svn (the distribution will fail installing dotnet)

svn checkout http://winetricks.googlecode.com/svn/trunk/src/

  • install dotnet 3.5 in a new wineprefix: winetricks prefix=VS2008 -q dotnet35 (note: this takes ages)
  • download the visual studio 2008 ISO from Microsoft
  • As root, mount -o loop -t udf VS2008ExpressENUX1397868.iso /mnt
  • As user (important, not as root !)
  • export WINEPREFIX=$HOME/.local/share/wineprefixes/VS2008/
  • wine /mnt/VCExpress/setup.exe

(alternatively, you can use SP1, but then you need to winetricks dotnet35sp1 instead of dotnet35 ).

For Graphite, I needed to do that as well:

  • replace $WINEPREFIX/drive_c/windows/system32/msvcp90.dll with the one from this link
  • set library msvcp90 to (native,builtin) in winecfg

Now there is a new entry in the Applications/Wine menu ! I did not manage to create a new project with it, but could successfully load existing project, and compile some of them.

I also successfully installed the following sofwares in the same Wineprefix:

  • CMake WINEPREFIX=$HOME/.local/share/wineprefixes/VS2008/ wine cmake-2.8.8-win32-x86.exe (cmake download)
  • python WINEPREFIX=$HOME/.local/share/wineprefixes/VS2008/ wine msiexec /i python-2.7.3.msi (python download)
  • Qt4 WINEPREFIX=$HOME/.local/share/wineprefixes/VS2008/ wine qt-win-opensource-4.8.2-vs2008.exe (Qt4 download, scroll down a bit and download library, smaller archive)

I could successfully compile and run Graphite with it ! (VS2008 with Wine seems to be sufficiently stable for cross-platform development), more tests will be posted, to be continued...

Important note: Before starting Visual Studio, you need to start: wine $WINEPREFIX/drive_c/Program\ Files/Microsoft\ Visual\ Studio\ 9.0/Common7/IDE/mspdbsrv.exe -start -spawn -shutdowntime -1 (else the compiler may get stuck sometimes). It is a server (that handled so-called "program data bases"). Started this way, it stays in memory (else there is a timeout that makes it exit after some time, and it seems that with the current WINE the compiler is not able to restart it).

Why don't I use a VM ? Because I think that the Wine approach is more elegant and "geeky" (it is probably less stable, but more lightweight). It is also funny to see POWERPOINT.EXE when doing ps axu...