1. EINFÜHRUNG

Wine ist ein Programm, das es ermöglicht, Programme, die für Microsoft
Windows geschrieben wurden (inklusive DOS-, Windows 3.x-, Win32- und
Win64-Binärdateien), unter Unix auszuführen. Es besteht aus einem Programm-
Lader, der Microsoft Windows-Binärdateien lädt und ausführt, sowie
einer Library (Winelib genannt), die Aufrufe der Windows API unter
Verwendung der entsprechenden Unix- oder X11-Gegenstücke implementiert.
Die Library kann auch benutzt werden, um Windows-Code nativ nach Unix
zu portieren.

Wine ist Freie Software, die unter der GNU LGPL veröffentlicht wird;
Bitte lesen Sie die Details in der Datei LICENSE nach.

2. SCHNELLSTART

Um den Quelltext zu kompilieren, empfiehlt es sich immer, den Wine-
Installer für den Build und die Installation von Wine zu verwenden.
Rufen Sie dazu aus dem Wurzelverzeichnis des Wine-Quelltextes (das
diese Datei enthält) das folgende Kommando auf:

./tools/wineinstall

Starten Sie Programme mit "wine [Optionen] Programm". Weitere 
Informationen und Problemlösungen entnehmen Sie bitte dem Rest dieser
Datei, der Man-Page von Wine und insbesondere der Vielzahl an 
Informationen, die Sie auf http://www.winehq.org finden.

3. VORAUSSETZUNGEN

Um Wine kompilieren und ausführen zu können, brauchen Sie eines der
folgenden Betriebssysteme:

  Linux version 2.0.36 oder neuer
  FreeBSD 6.3 oder neuer
  Solaris x86 9 oder neuer
  NetBSD-current
  Mac OS X 10.4 oder neuer

Da Wine Thread-Support auf Kernelebene benötigt, werden nur die oben
aufgeführten Betriebssysteme unterstützt.
Andere Betriebssysteme, die Kernel-Threads unterstützen, werden unter
Umständen in der Zukunft unterstützt.

Linux-Info:
  Obwohl Linux 2.2.x immer noch funktionieren sollte und Linux 2.0.x
  vielleicht auch noch funktioniert (ältere 2.0.x-Versionen verzeichneten
  Abstürze im Zusammenhang mit Threads), sollte man am besten einen
  aktuellen Kernel wie 2.4.x oder 2.6.x verwenden.

FreeBSD-Info:
  Wine läuft prinzipiell erst ab FreeBSD 6.3 oder 7.0 richtig, wobei für
  FreeBSD 6.3 zusätzliche Patches erhältlich sind. Siehe dazu auch
  http://wiki.freebsd.org/Wine für weitere Informationen.

Solaris-Info:
  Höchstwahrscheinlich müssen Sie den Wine-Build mit der GNU-Toolchain
  (gcc, gas etc.) durchführen. Warnung: Die Installation von gas stellt nicht
  sicher, dass es vom gcc auch verwendet wird. Den gcc neu zu kompilieren, nach
  der Installation von gas, oder die Symbolischen Links von cc, as und ld
  mit den GNU-Tools zu verknüpfen, soll ausreichend sein.

NetBSD-Info:
  Stellen Sie sicher, dass Sie die Optionen USER_LDT, SYSVSHM, SYSVSEM und
  SYSVMSG in Ihrem Kernel aktiviert haben.

Mac OS X Info:
  Sie benötigen mindestens Xcode 2.4 um richtig unter x86 kompilieren zu können.

Unterstützte Dateisysteme:
  Wine sollte auf den meisten Dateisystemen laufen. Ein paar
  Kompatibilitäts-Probleme wurden auch gemeldet beim Dateizugriff über Samba.
  Weiterhin bietet NTFS nicht alle Dateisystemfunktionen, die von einigen
  Programmen benötigt werden. Ein natives Linux Dateisystem wie ext3 wird
  empfohlen.

Grundsätzliche Voraussetzungen:
  Sie müssen die Include-Dateien für X11-Entwicklung installiert haben
  (Debian nennt diese xlib6g-dev, Red Hat XFree86-devel).

  Natürlich benötigen Sie auch "make" (höchstwahrscheinlich GNU make).

  Des Weiteren benötigen Sie flex in der Version 2.5.33 oder höher und bison.

Optionale Support-Bibliotheken:
  Der ./configure Aufruf zeigt am Ende optionale Bibliotheken an,
  die von Wine benutzt werden können, aber auf dem System nicht vorhanden
  sind. Siehe http://wiki.winehq.org/Recommended_Package für Tipps zum
  installieren fehlender Pakete.

  Auf 64-Bit Plattformen, falls Sie Wine als 32-Bit kompilieren (Standard),
  benötigen Sie die 32-bit Versionen dieser Bibliotheken;
  siehe dazu http://wiki.winehq.org/WineOn64bit
  Für ein reines 64-Bit Wine (oder ein gemischtes 32-Bit und 64-Bit Wine Setup),
  siehe http://wiki.winehq.org/Wine64

4. KOMPILIEREN

Wenn Sie sich dafür entscheiden, wineinstall nicht zu benutzen, führen Sie
bitte die folgenden Kommandos für den Build von Wine aus:

./configure
make

Das erledigt den Build des Programms "wine" und verschiedener Support-
Libraries / -Binärdateien.
Das Programm "wine" lädt ausführbare Windows-Dateien und führt sie aus.
Die Library "libwine" ("WineLib") kann benutzt werden, um Windows-Quelltexte
unter Unix zu kompilieren und zu verlinken.

Mit ./configure --help können Sie sich die Konfigurations-Optionen für
die Kompilierung anzeigen lassen.

5. SETUP

Nachdem der Build von Wine korrekt durchgelaufen ist, können Sie das
Kommando "make install" aufrufen; Dadurch werden das Wine-Programme und
Bibliotheken, die Man-Page und andere benötigte Dateien installiert.

Vergessen Sie nicht, erst alle früheren Wine-Installationen zu entfernen.
Führen Sie vor der Installation entweder "dpkg -r wine", "rpm -e wine" oder
"make uninstall" aus.

Die Konfigurations-Hinweise finden Sie im Support-Bereich
von http://www.winehq.org.

Im Falle von Library-Ladefehlern (z.B. "Error while loading shared libraries:
libntdll.so") fügen Sie bitte den Library-Pfad zur Datei /etc/ld.so.conf hinzu
und führen Sie ldconfig als root aus.

6. AUSFÜHREN VON PROGRAMMEN

Wenn Sie Wine aufrufen, können Sie den vollständigen Pfad zur ausführbaren
Datei angeben oder nur einen Dateinamen.

Beispiel: Um Notepad auszuführen:

    wine notepad           (den Suchpfad, der in der Registry
    wine notepad.exe       angegeben wurde, benutzend)

    wine c:\\windows\\notepad.exe  (die Dateinamen-Syntax von DOS benutzend)

    wine ~/.wine/drive_c/windows/notepad.exe  (die Dateinamen-Syntax
                                              von Unix benutzend)

        wine notepad.exe lesmich.txt (Programmaufruf mit Parametern)

Hinweis: Der Pfad zur Datei wird auch zum Pfad hinzugefügt, wenn ein
         vollständiger Dateiname auf der Kommandozeile angegeben wird.

Wine ist nicht perfekt, daher können manche Programme abstürzen.
In diesem Fall bekommen Sie einen Log vom Absturz, den Sie beifügen sollten,
wenn Sie den Fehler melden.

7. WEITERFÜHRENDE INFORMATIONEN

WWW:    Eine große Anzahl an Informationen findet sich im WineHQ unter
        http://www.winehq.org/ : Verschiedene Wine Guides,
        Applikations-Datenbank, Fehlerverfolgungs-System.
        Das ist vermutlich der beste Ausgangspunkt.

FAQ:    Die FAQ zu Wine befindet sich unter http://www.winehq.org/FAQ

Wiki:   Das Wine-Wiki finden Sie unter http://wiki.winehq.org

Mailing-Listen:
    Es gibt mehrere Mailing-Listen für die Wine-User und -Entwickler;
    Schauen Sie sich bitte dazu http://www.winehq.org/forums an.

Fehler:	Melden Sie Fehler bitte an Wine-Bugzilla unter http://bugs.winehq.org
    Schauen Sie bitte erst in der Bugzilla-Datenbank nach, ob Ihr Problem
    bereits gemeldet oder behoben wurde, bevor Sie eine Fehlermeldung verfassen.

IRC:    Online-Hilfe wird Ihnen im Chat-Kanal #WineHQ unter
        irc.freenode.net gewährt.

Git:    Der aktuelle Wine-Entwicklungs-Zweig ist über Git verfügbar.
        Besuchen Sie http://www.winehq.org/site/git für weitere Informationen.

Wenn Sie etwas hinzufügen oder einen Fehler beheben, senden Sie den Patch bitte
(vorzugsweise mit git-format-patch) an die Liste wine-patches@winehq.org, um ihn
in die nächste Ausgabe aufnehmen zu können.

--
Alexandre Julliard
julliard@winehq.org
