Lotus Notes unter Linux mit WINE

Was ist WINE?

Einer der Hauptgründe dafür, daß Linux auf dem Desktop noch nicht denselben Siegeszug wie auf dem Server angetreten hat, liegt darin, daß viele Unternehmen davor zurückschrecken, statt "liebgewonnener" Applikationen, die sie vom Windows-Desktop gewöhnt sind, einen Ersatz für die X11-Welt benutzen zu müssen, falls die bekannten Applikationen noch nicht portiert wurden. Dies fällt umso schwerer, wenn die Programme die einzige Tür darstellen zu einer ganzen Architektur, die im Backoffice des Unternehmens zur Anwendung kommt. Denn dann kämen zu den eventuellen Schulungskosten für neue Client-Programme auch noch die Kosten für die nötigen Anpassungen in der Backend-Architektur.

Nach dem Motto "Wenn der Prophet nicht zum Berg kommt, muß der Berg zum Propheten" hat sich das OpenSource Projekt WINE es sich zum Ziel gesetzt, solche Windows-Programme unter Linux und X11 nutzbar zu machen, indem man nicht darauf wartet, daß die einzelnen Programme auf X11 portiert werden, sondern die von den benötigten Programmen bigten Programmen benötigten Schnittstellen (API) den Programmmen zur Verfügung stellt: In diesem Projekt wurde die Win32-API unter Linux nachprogrammiert, so daß die einzelnen Funktionen, die unter Windows in DLLs bereitgestellt werden, jetzt als .so-Bibliotheken die entsprechenden Funktionen im Linux-Betriebssystem und dem X11-Windowsystem aufrufen. Die Bibliotheken des Projekts dienen somit quasi als "Übersetzer" zwischen den Windows-Binaries und der Linux-Laufzeitumgebung.

Ferner bietet WINE auch eine Bibliothek gegen die man Windows-Programme, die im Quelltext vorliegen kompilieren und linken kann; im besten Fall hat man damit die gesamte Portierung auf X11 in einem Schritt erledigt.

Lotus Notes

Lotus Notes ist der Client für die Kollaborations-Middleware rings um den Domino-Server von Lotus. Es erfreut sich gerade in größeren Unternehmen großer Beliebtheit und ist daher mit Sicherheit einer der größen Stolpersteine auf dem Migrationspfad weg von Microsoft Windows hin zu einem Unix-Derivat. Leider hat Lotus den Notes Client bisher nicht auf X11 portiert und hat dies nach eigenem Bekunden auch in der nächsten Zeit nicht vor. Grund dafür ist, daß nach Ansicht von Lotus das Betriebssystem Linux nicht hinreichend standardisiert ist und es deswegen zu aufwändig ist, die Lauffähigkeit des Programms sicherzustellen (komisch, andere schaffen das auch; unter anderem aucr anderem auch Lotus Mutterkonzern IBM). Dieses Argument wird umso seltsamer, wenn man bedenkt wie hervorragend Notes mit WINE zusammenarbeitet; dazu braucht man nicht eine einzige Datei aus dem Hause Microsoft. Das Linking gegen die WINE-Bibliothek sollte hier eigentlich ohne großen Aufwand einen ELF-formatigen "nativen" Client hervorbringen.

Solange Lotus nicht selbst einen Notes Client für Linux zur Verfügung stellt, muß der gewiefte Admin, der seine Unternehmensdesktops auf ein echtes Betriebssystem umstellen will, sich mit WINE selbst helfen.

Installation von WINE

Die einfache Methode besteht sicherlich darin, sich von der WINE-Homepage die aktuellen Binaries zu ziehen und diese mit dem Paketmanager des eigenen Systems (rpm, apt) zu installieren. Danach sollten sich die Konfigurationsdateien in ~/.wine befinden.

Die etwas aufwändigere Installation beeteht darin, sich den Quellcode von der WINE-Homepage zu besorgen und die Installation gemäß den mitgelieferten Informationen (README etc).durchzuführen. Dies hat potenziell den Vorteil, daß man beim Kompilieren starke Optimierungseinstellungen vorgeben kann. Abweichend von den meisten Projekten geht man hier nicht hier nicht direkt den bekannten Weg über ./configure, make und make install, sondern verwendet stattdessen das Skript ./tools/wineinstall. Auch hier sollte am Ende des Vorgangs die Konfiguration unter ~/.wine liegen.

Vorbereitung der Installation von Lotus Notes

Um eventuelle Reibereien mit einem bestehenden Windows-System auf dem Rechner zu vermeiden und um ganz ohne eine Windows-Installation auszukommen, muß zunächst eine "frische" Windows-Umgebung geschaffen werden, in der Notes dann installiert werden kann.

Dazu muß man ein Verzeichnis bereitstellen, welches im folgenden NOTESDIR heißen wird. Innerhalb dieses Verzeichnisses ist folgende Struktur zu schaffen:

NOTESDIR
 |
 |- config
 |- virtualWindows
	|
	|- Program Files
	|- Windows
		|
		|- Start Menu
		|	  |
		|	  |- Programs
		|
		|- System
		|- System32

Dabei stellt NOTESDIR/config das Verzeichnis dar, in dem alle Konfigurationseinträge wie z.B. auch die Registry gespeichert werden, une NOTESDIR/virtualWindows entspricht der obersten Ebene einer Windows-Umgebung (C:).

Als nächstes muß die Konfiguration angepaßt werden. Dazu kopiert man am einfachsten die Datei ~/.wine/config nach NOTESDIR/config und paßt die Kopie dann an die neuen Verzeichnisse an. Ein Verzeichnisse an. Eine Beispieldatei könnte so aussehen ($NOTESDIR muß natürlich ersetzt werden):

WINE REGISTRY Version 2
;; All keys relative to \\Machine\\Software\\Wine\\Wine\\Config

[Drive C]
"Path" = "$NOTESDIR/virtualWindows"
"Type" = "hd"
"Filesystem" = "win95"

[Drive G]
"Path" = "/mnt/cdrom"
"Type" = "cdrom"
"Device" = "/dev/cdrom"
"Filesystem" = "win95"

[Drive F]
"Path" = "/tmp"
"Type" = "hd"
"Filesystem" = "win95"

[Drive E]
"Path" = "${HOME}"
"Type" = "hd"
"Filesystem" = "win95"

[wine]
"windows" = "C:\\windows"
"system" = "C:\\windows\\SYSTEM"
"path" = "C:\\windows\\system;C:\\windows"
"temp" = "F:"
"GraphicsDriver" = "x11drv"

[Version]
"Windows" = "win98"

[DllDefaults]
"DefaultLoadOrder" = "native, so, builtin"

[DllOverrides]
"kernel,kernel32" = "builtin"
"oleaut32"     = "builtin, native"
"ole32"        = "builtin, native"
"commdlg"      = "builtin, native"
"comdlg32"     = "builtin, native"
"comctl,comctl32" = "builtin, native"
"shell"        = "builtin, native"
"shell32"      = "builtin, native"
"shfolder"     = "builtin, native"
"shlwapi"      = "builtin, native"
"shdocvw"      = "builtin, native"
"advapi32"     = "builtin, native"
"msvcrt"       = "native, builtin"
"mciavi.drv"   = "native, builtin"
"mcianim.drv"  = "native, builtin"
"*" = "builtin, native"

[x11drv]
"AllocSystemColors" = "100"
"PrivateColorMap" = "N"
"PerfectGraphics" = "Nrs" = "100"
"PrivateColorMap" = "N"
"PerfectGraphics" = "N"
"Managed" = "N"
"Desktop" = "1200x900"
"UseDGA" = "Y"
"UseXShm" = "Y"
"UseXVidMode" = "Y"
"UseTakeFocus" = "Y"
"DXGrab" = "N"
"DesktopDoubleBuffered" = "Y"
"TextCP" = "0"

[fonts]
"Resolution" = "96"
"Default" = "-adobe-helvetica-"
"DefaultFixed" = "fixed"
"DefaultSerif" = "-adobe-times-"
"DefaultSansSerif" = "-adobe-helvetica-"

[FontDirs]

[serialports]

[parallelports]
"Lpt1" = "/dev/lp0"

[ppdev]

[spooler]
"FILE:" = "tmp.ps"
"LPT1:" = "|lpr"

[ports]

[Debug]

[registry]
"LoadGlobalRegistryFiles" = "Y"
"LoadHomeRegistryFiles" = "Y"
"LoadWindowsRegistryFiles" = "Y"
"WritetoHomeRegistryFiles" = "Y"
"SaveOnlyUpdatedKeys" = "Y"

[Tweak.Layout]
"WineLook" = "Win98"

[Console]

[Clipboard]
"ClearAllSelections" = "0"
"PersistentSelection" = "1"

[afmdirs]
"1" = "/usr/share/ghostscript/fonts"
"2" = "/usr/share/a2ps/afm"
"3" = "/usr/share/enscript"
"4" = "/usr/X11R6/lib/X11/fonts/Type1"

[WinMM]
"Drivers" = "wineoss.drv"
"WaveMapper" = "msacm.drv"
"MidiMapper" = "midimap.drv"

[dsound]

Damit ist die Vorbereitung abgeschlossen, die Registry wird on-the-fly beim ersten Start in der neuen Umgebung erstellt.

Installation von Lotus Notes

Zur Installation von Notes mountet man zunächst die CDROM; im Beispiel gehe ich davon aus, daß sie unter /mnt/cdrom gemountet wird. Zur Installation führt man die folgenden Befehle aus (dabei wird. Zur Installation führt man die folgenden Befehle aus (dabei wird $NOTESDIR wie gehabt ersetzt):

cd $NOTESDIR/virtualWindows
WINEPREFIX=$NOTESDIR/config wine /mnt/cdrom/setup.exe

Ab hier gestaltet sich die Installation eigentlich wie unter Windows und hängt von den gegebenen Umständen ab. Achtung: Die Installation scheint manchmal zu hängen, das ist aber nicht der Fall. Dabei wird im Hintergrund die Registry aktualisiert, was ein wenig Zeit in Anspruch nimmt. Nach einer Tasse Kaffee und erfolgter Installation kann man das Programm starten mit folgendem Aufruf:

WINEPREFIX=$NOTESDIR/config wine $NOTESDIR/virtualWindows/Lotus/Notes/notes.exe
Als Ergebnis bekommt man nach erfolgreichem Login dann die Startseite von Notes: