Difference between revisions of "DE/Building OpenOffice.org de"
(→Different Platforms) |
|||
(23 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
− | [[Category: | + | {{Old|EN}} |
− | + | [[Category:DE]] | |
+ | |||
Dies sind die Anweisungen, wie man ein "einfaches" ("vanilla") (oder "Up-Stream") OpenOffice.org erstellt. Einfach bedeutet: ohne Werkzeuge wie ooo-build, das den Build-Prozeß übernimmt. Falls Sie ooo-build verwenden, schauen Sie stattdessen auf [[Erstellen_mit_ooobuild]]. | Dies sind die Anweisungen, wie man ein "einfaches" ("vanilla") (oder "Up-Stream") OpenOffice.org erstellt. Einfach bedeutet: ohne Werkzeuge wie ooo-build, das den Build-Prozeß übernimmt. Falls Sie ooo-build verwenden, schauen Sie stattdessen auf [[Erstellen_mit_ooobuild]]. | ||
Line 18: | Line 19: | ||
Sehen Sie sich für OS X auch [[AquaBuild]] ( experimentale Aqua-Version von OpenOffice.org) oder [[MacOSXBuildInstructions]] ( X11-Version ), für GNU/Linux Sparc [[GNULinuxSparcPorting]] und für Windows [[Windows]] an. | Sehen Sie sich für OS X auch [[AquaBuild]] ( experimentale Aqua-Version von OpenOffice.org) oder [[MacOSXBuildInstructions]] ( X11-Version ), für GNU/Linux Sparc [[GNULinuxSparcPorting]] und für Windows [[Windows]] an. | ||
− | = | + | = Einen Meilenstein (Milestone) erstellen = |
− | == | + | == Configure laufen lassen == |
− | + | Der erste Schritt nach dem Erhalten der Quellen (und hoffentlich aller Voraussetzungen) ist das laufen lassen von configure: | |
<pre> | <pre> | ||
Line 28: | Line 29: | ||
</pre> | </pre> | ||
− | + | Sie werden höchst wahrscheinlich configure mitteilen müssen, wo es einige Pakete wie beispielsweise Ant findet und welches Java es benutzen soll. Verwenden Sie | |
<pre> | <pre> | ||
./configure --help | ./configure --help | ||
</pre> | </pre> | ||
− | + | , um eine Liste der gültigen Optionen zu erhalten, die Sie verwenden können. | |
− | + | Falls Sie vergessen haben sollten, einige Abhängigkeiten zu installieren, wird Sie das Skript configure daran erinnern, welche fehlen. | |
− | + | ||
− | + | Besonderer Tipp in Bezug auf Ant: Stellen Sie sicher, dass Sie einen absoluten Pfad verwenden. | |
− | == | + | == Bootstrappen == |
− | + | Falls configure sauber durchläuft (d.h., es endet ohne irgendeinen Fehler oder eine Warnung), können Sie mit dem Erstellen fortfahren. | |
− | Configure | + | Configure erstellt eine Umgebungsdatei, die Sie in Ihre Shell einlesen müssen. |
− | + | Falls Sie eine Bash laufen haben, benutzen Sie | |
<pre> | <pre> | ||
cd <SRC_ROOT> | cd <SRC_ROOT> | ||
source LinuxX86Env.Set.sh | source LinuxX86Env.Set.sh | ||
</pre> | </pre> | ||
− | + | Falls Sie eine tcsh oder etwas ähnliches laufen haben, verwenden Sie | |
<pre> | <pre> | ||
cd <SRC_ROOT> | cd <SRC_ROOT> | ||
Line 54: | Line 54: | ||
</pre> | </pre> | ||
− | + | Beachten Sie: der Dateiname des Umgebungsskriptes könnte auf einer anderen Systemarchitektur anders lauten. Ersetzen Sie 'X86' durch etwas, das adäquat ist. Beachten Sie auch, dass es bei älteren Versionen 'Intel' und nicht 'X86' ist. | |
− | + | Der letzte Schritt vor dem realen Erstellen besteht darin, die Erstellungswerkzeuge (buildtools) zu kreieren, die OOo verwendet. Um dies zu tun, lassen Sie einfach folgendes laufen: | |
<pre> | <pre> | ||
./bootstrap | ./bootstrap | ||
Line 62: | Line 62: | ||
in <SRC_ROOT> | in <SRC_ROOT> | ||
− | == | + | == Das eigentliche Erstellen starten == |
− | + | Nun ist es an der Zeit für das eigentliche Erstellen | |
− | + | Tippen Sie einfach | |
<pre> | <pre> | ||
dmake | dmake | ||
</pre> | </pre> | ||
− | in <SRC_ROOT> | + | in <SRC_ROOT> ein und entspannen Sie sich dann. |
− | + | Das Erstellen von OOo erfordert einige Zeit (circa 10-12 Stunden auf einem Standard-Schreibtisch-PC), weshalb Sie in der Zwischenzeit andere Dinge tun können. | |
− | |||
− | |||
− | + | = Erstellen eines [[CWS]] = | |
+ | Um einen Child Workspace (CWS) zu erstellen, müssen Sie zuerst den Meilenstein (milestone) auschecken, auf dem der CWS basiert (sehen Sie oben das Erhalten der Quellen). Danach müssen Sie die Module, die in den CWS einbezogen sind, mit den CVS-Markierungen (cvs tag) des CWS aktualisieren. | ||
− | + | Sie können entweder [[EIS]] verwenden, um Informationen darüber zu erhalten, welcher Meilenstein die Basis für den CWS ist (sehen Sie sich hierzu das Feld "Milestone (current)" an) und welche Module in ihn einbezogen sind (sehen Sie sich hierzu die Tabelle "Modules & Files" an). Oder Sie können [http://go-oo.org/tinderbox/tags/tag-list Tinderbox's tag-list] benutzen, um diese Information zu erhalten. | |
+ | |||
+ | Sobald Sie alle benötigten Informationen gesammelt haben, können Sie folgendes ausführen: | ||
<pre> | <pre> | ||
Line 84: | Line 85: | ||
</pre> | </pre> | ||
− | + | Wobei | |
− | * SRC_ROOT | + | * SRC_ROOT das Verzeichnis auf der obersten Ebene Ihres Meilenstein-Checkouts ist. |
− | * cwstag | + | * cwstag die CVS-Markierung (cvs tag) des CWS ist. Die Markierung ist in der Form cws_<main codeline>_<name of cws>, zum Beispiel cws_src680_chart2mst3 |
− | + | Beachten Sie: Falls Sie CVS verwenden, das einen SSH-Tunnel benutzt, verwenden Sie SSH-Kompression eher als CVS-Kompression - dies ergibt bessere Resultate | |
− | + | Zum Beispiel können Sie eingeben: | |
<pre> | <pre> | ||
Line 100: | Line 101: | ||
= Tips and Tricks = | = Tips and Tricks = | ||
− | + | Hier einige Tipps, die Ihnen das Leben leichter machen oder das Erstellen beschleunigen können. | |
== ccache == | == ccache == | ||
− | + | Falls es möglich ist, ist es stärksten empfohlen, [http://ccache.samba.org/ ccache] zu installieren (und zu konfigurieren) - dies wird die Build-Zeit für anschließende Builds sehr stark reduzieren. Geben Sie die Erlaubnis für einen großen Cache und eine Menge von Dateien für den kompletten OOo-Build-Baum. Falls Sie an mehreren [[CWS]]s gleichzeitig arbeiten, zahlt es sich aus, seperate Cache zu haben wie auch seperate Cache für Nichtproduktive-/Produktiv-Builds innerhalb eines CWS, z.B. führen Sie, nachdem Sie die Umgebung gesourced haben, folgende Kommandos aus: | |
export CCACHE_DIR="${YOUR_SOURCES}/$CWS_WORK_STAMP/.ccache_$INPATH" | export CCACHE_DIR="${YOUR_SOURCES}/$CWS_WORK_STAMP/.ccache_$INPATH" | ||
Line 110: | Line 111: | ||
export CXX="ccache g++" | export CXX="ccache g++" | ||
− | in | + | in der Bash beziehungsweise in der Tcsh |
setenv CCACHE_DIR "${YOUR_SOURCES}/$CWS_WORK_STAMP/.ccache_$INPATH" | setenv CCACHE_DIR "${YOUR_SOURCES}/$CWS_WORK_STAMP/.ccache_$INPATH" | ||
Line 117: | Line 118: | ||
setenv CXX "ccache g++" | setenv CXX "ccache g++" | ||
− | + | Für Windows: Laden Sie von [http://artax.karlin.mff.cuni.cz/~kendy/ccache/ hier] herunter und machen Sie das Folgende: | |
export CCACHE_DIR="some/place/with/space" | export CCACHE_DIR="some/place/with/space" | ||
Line 125: | Line 126: | ||
# export USE_PCH= if you experience trouble with precompiled headers | # export USE_PCH= if you experience trouble with precompiled headers | ||
− | in | + | in der Bash beziehungsweise in 4NT: |
set CCACHE_DIR="some/place/with/space" | set CCACHE_DIR="some/place/with/space" | ||
Line 134: | Line 135: | ||
set CCACHE_CPP2=TRUE and keep USE_PCH=TRUE | set CCACHE_CPP2=TRUE and keep USE_PCH=TRUE | ||
− | + | Sehen Sie sich auch dies [http://www.nabble.com/ccache-for-MSVC-t4013218.html thread] an als Hintergrundinformation über Windows-CCache-Spezifikationen. | |
== set nodep=TRUE == | == set nodep=TRUE == | ||
− | + | Falls Sie die Umgebungsvariable nodep auf TRUE setzen, werden keine Dateien mit Informationen zu den Abhängigkeiten erstellt - das Build wird damit schneller fertiggestellt. | |
− | + | Allerdings sollten Sie dies nur in einem sauberen Build aktivieren. Sobald Sie OOo erstellt und danach Veränderungen vorgenommen haben, setzen Sie diese Variable wieder zurück um auf der sicheren Seite zu sein. | |
== set NO_HIDS=TRUE == | == set NO_HIDS=TRUE == | ||
− | + | Ähnlich der Variable nodeps unterdrückt diese das Erstellen von (Hilfe-IDs), die hauptsächlich für das automatische Testen verwendet werden - falls Sie nur OOo erstellen wollen, brauchen Sie diese nicht. | |
− | == | + | == Verwenden von parallelen Builds == |
− | + | Falls Sie eine Mehrprozessormaschine oder etwas ähnliches haben, können Sie parallele Builds starten. Es gibt zwei Ebenen von Parallelisierung - eine, die auf der Ebene des Makefiles arbeitet und eine andere auf Modulebene. | |
− | === set MAXPROCESS=< | + | === set MAXPROCESS=<Anzahl oder Prozesse> === |
− | + | Dies ist die Makefile-Parallelisierung. Dies teilt dmake mit, wieviele Vorgaben ihm für das Parallele Erstellen erlaubt sind. | |
− | === | + | === starten von parallelen build.pl === |
− | + | Für Parallelisierung auf Modulebene müssen Sie build aus dem Verzeichnis <SRC_ROOT>/instsetoo_native starten mit dem Schalter -P<number>, zum Beispiel: | |
<pre> | <pre> | ||
build -P2 | build -P2 | ||
</pre> | </pre> | ||
− | == | + | == Erstellen eines prebuilt Mozilla und Verwendung dieses anstelle eines jedesmal neukompilierten == |
− | + | Für die Mozilla-Komponenten haben Sie die Möglichkeit, diese entweder aus den Mozillaquellen zu erstellen, vorkompilierte Pakete ([http://tools.openoffice.org/moz_prebuild/680/ die "offiziellen" können Sie von tools.openoffice.org erhalten]) oder das System-Mozilla (dasjenige, das auf Ihrem Buildsystem installiert ist; nicht alles mag funktionieren, abhängig von der Version, die Sie installiert haben) benutzen. | |
− | + | Sie können einfach Ihre eigene Version von vorkonfigurierten Binärdateien erstellen, wenn Sie dies tun wollen (entweder weil Sie die offiziellen nicht benutzen können aufgrund einer nicht passenden Kompilerversion, die zu ihrem Erstellen benutzt wurde, oder aus anderen technischen Gründen oder weil Sie nicht Sachen benutzen wollen, die Sie nicht selbst erstellt haben). | |
− | + | Um dies zu tun, | |
− | * | + | * erstellen Sie das Modul <code>moz</code> aus den Mozillaquellen<br/>(verwenden Sie hierzu <code>--enable-build-mozilla</code>, wenn Sie configure starten und legen Sie den Mozillaquellen-Tarball in das Verzeichnis <code>moz/download</code>) |
* in <code>moz</code> run <code>dmake zip</code> to create the zip files | * in <code>moz</code> run <code>dmake zip</code> to create the zip files | ||
* you'll find the zips in <code>{unxlngi#,wntmsci#}.pro/zipped</code> | * you'll find the zips in <code>{unxlngi#,wntmsci#}.pro/zipped</code> | ||
Line 169: | Line 170: | ||
This will greatly reduce build-time (you save the time that would otherwise be spent on compiling mozilla) | This will greatly reduce build-time (you save the time that would otherwise be spent on compiling mozilla) | ||
− | == | + | == Sparen von Plattenplatz allein durch das Verknüpfen zum Solver == |
− | + | Verwenden Sie "--dlv_switch -link", wenn Sie build starten, um deliver mitzuteilen, dass es die Dateien nur verknüpfen soll, anstatt sie zu kopieren: | |
<pre> | <pre> | ||
build --dlv_switch -link | build --dlv_switch -link | ||
</pre> | </pre> | ||
− | == | + | == Reparieren des EPM-4-Produktnamenfehlers == |
− | + | Falls Sie folgende Fehlermeldung erhalten "epm: Product names can only contain letters and numbers!", müssen Sie epm patchen und die Namensprüfung auskommentieren: | |
<pre> | <pre> | ||
/* | /* | ||
Line 187: | Line 188: | ||
*/ | */ | ||
</pre> | </pre> | ||
+ | |||
+ | [[Category:Build_System]] |
Latest revision as of 12:35, 9 July 2018
Dies sind die Anweisungen, wie man ein "einfaches" ("vanilla") (oder "Up-Stream") OpenOffice.org erstellt. Einfach bedeutet: ohne Werkzeuge wie ooo-build, das den Build-Prozeß übernimmt. Falls Sie ooo-build verwenden, schauen Sie stattdessen auf Erstellen_mit_ooobuild.
Contents
- 1 Kompilieren von OpenOffice.org : das Verfahren
- 2 Einen Meilenstein (Milestone) erstellen
- 3 Erstellen eines CWS
- 4 Tips and Tricks
Kompilieren von OpenOffice.org : das Verfahren
Bekommen der Quellen
Um diese Anweisungen nicht länger als nötig zu machen, gibt es eine spezielle Seite hierzu unter Wie man die Quellen bekommt.
Abhängigkeiten
Sie benötigen natürlich einige installierte Entwicklungs-Bibliotheken (development libraries), um OpenOffice.org zu erstellen. Das Skript configure wird es beanstanden, wenn etwas fehlt. Bis dieser Leitfaden die Voraussetzungen auflistet, schauen Sie auf http://tools.openoffice.org/
Unterschiedliche Plattformen
Einige Informationen für bestimmte Plattformen werden unter tools zur Verfügung gestellt.
Sehen Sie sich für OS X auch AquaBuild ( experimentale Aqua-Version von OpenOffice.org) oder MacOSXBuildInstructions ( X11-Version ), für GNU/Linux Sparc GNULinuxSparcPorting und für Windows Windows an.
Einen Meilenstein (Milestone) erstellen
Configure laufen lassen
Der erste Schritt nach dem Erhalten der Quellen (und hoffentlich aller Voraussetzungen) ist das laufen lassen von configure:
cd <SRC_ROOT> cd config_office ./configure
Sie werden höchst wahrscheinlich configure mitteilen müssen, wo es einige Pakete wie beispielsweise Ant findet und welches Java es benutzen soll. Verwenden Sie
./configure --help
, um eine Liste der gültigen Optionen zu erhalten, die Sie verwenden können.
Falls Sie vergessen haben sollten, einige Abhängigkeiten zu installieren, wird Sie das Skript configure daran erinnern, welche fehlen.
Besonderer Tipp in Bezug auf Ant: Stellen Sie sicher, dass Sie einen absoluten Pfad verwenden.
Bootstrappen
Falls configure sauber durchläuft (d.h., es endet ohne irgendeinen Fehler oder eine Warnung), können Sie mit dem Erstellen fortfahren. Configure erstellt eine Umgebungsdatei, die Sie in Ihre Shell einlesen müssen. Falls Sie eine Bash laufen haben, benutzen Sie
cd <SRC_ROOT> source LinuxX86Env.Set.sh
Falls Sie eine tcsh oder etwas ähnliches laufen haben, verwenden Sie
cd <SRC_ROOT> source LinuxX86Env.Set rehash
Beachten Sie: der Dateiname des Umgebungsskriptes könnte auf einer anderen Systemarchitektur anders lauten. Ersetzen Sie 'X86' durch etwas, das adäquat ist. Beachten Sie auch, dass es bei älteren Versionen 'Intel' und nicht 'X86' ist.
Der letzte Schritt vor dem realen Erstellen besteht darin, die Erstellungswerkzeuge (buildtools) zu kreieren, die OOo verwendet. Um dies zu tun, lassen Sie einfach folgendes laufen:
./bootstrap
in <SRC_ROOT>
Das eigentliche Erstellen starten
Nun ist es an der Zeit für das eigentliche Erstellen Tippen Sie einfach
dmake
in <SRC_ROOT> ein und entspannen Sie sich dann. Das Erstellen von OOo erfordert einige Zeit (circa 10-12 Stunden auf einem Standard-Schreibtisch-PC), weshalb Sie in der Zwischenzeit andere Dinge tun können.
Erstellen eines CWS
Um einen Child Workspace (CWS) zu erstellen, müssen Sie zuerst den Meilenstein (milestone) auschecken, auf dem der CWS basiert (sehen Sie oben das Erhalten der Quellen). Danach müssen Sie die Module, die in den CWS einbezogen sind, mit den CVS-Markierungen (cvs tag) des CWS aktualisieren.
Sie können entweder EIS verwenden, um Informationen darüber zu erhalten, welcher Meilenstein die Basis für den CWS ist (sehen Sie sich hierzu das Feld "Milestone (current)" an) und welche Module in ihn einbezogen sind (sehen Sie sich hierzu die Tabelle "Modules & Files" an). Oder Sie können Tinderbox's tag-list benutzen, um diese Information zu erhalten.
Sobald Sie alle benötigten Informationen gesammelt haben, können Sie folgendes ausführen:
cd <SRC_ROOT> setenv CVSROOT ":pserver:anoncvs@anoncvs.services.openoffice.org:/cvs" cvs [optional cvs flags such as -z #] update -dP -r <cwstag> <module1> <module2> <moduleN>
Wobei
- SRC_ROOT das Verzeichnis auf der obersten Ebene Ihres Meilenstein-Checkouts ist.
- cwstag die CVS-Markierung (cvs tag) des CWS ist. Die Markierung ist in der Form cws_<main codeline>_<name of cws>, zum Beispiel cws_src680_chart2mst3
Beachten Sie: Falls Sie CVS verwenden, das einen SSH-Tunnel benutzt, verwenden Sie SSH-Kompression eher als CVS-Kompression - dies ergibt bessere Resultate
Zum Beispiel können Sie eingeben:
cd src680-m172 setenv CVSROOT ":pserver:anoncvs@anoncvs.services.openoffice.org:/cvs" cvs -z3 update -dP -r cws_src680_chart2mst3 chart2/ offuh/
Tips and Tricks
Hier einige Tipps, die Ihnen das Leben leichter machen oder das Erstellen beschleunigen können.
ccache
Falls es möglich ist, ist es stärksten empfohlen, ccache zu installieren (und zu konfigurieren) - dies wird die Build-Zeit für anschließende Builds sehr stark reduzieren. Geben Sie die Erlaubnis für einen großen Cache und eine Menge von Dateien für den kompletten OOo-Build-Baum. Falls Sie an mehreren CWSs gleichzeitig arbeiten, zahlt es sich aus, seperate Cache zu haben wie auch seperate Cache für Nichtproduktive-/Produktiv-Builds innerhalb eines CWS, z.B. führen Sie, nachdem Sie die Umgebung gesourced haben, folgende Kommandos aus:
export CCACHE_DIR="${YOUR_SOURCES}/$CWS_WORK_STAMP/.ccache_$INPATH" ccache -M 2G -F 100000 export CC="ccache gcc" export CXX="ccache g++"
in der Bash beziehungsweise in der Tcsh
setenv CCACHE_DIR "${YOUR_SOURCES}/$CWS_WORK_STAMP/.ccache_$INPATH" ccache -M 2G -F 100000 setenv CC "ccache gcc" setenv CXX "ccache g++"
Für Windows: Laden Sie von hier herunter und machen Sie das Folgende:
export CCACHE_DIR="some/place/with/space" ccache -M 2G -F 10000 export CCACHE_CPP2=TRUE export CXX="guw.pl ccache cl" # export USE_PCH= if you experience trouble with precompiled headers
in der Bash beziehungsweise in 4NT:
set CCACHE_DIR="some/place/with/space" ccache -M 2G -F 10000 set CXX=ccache cl unset USE_PCH # if you want to experient with precompiled headers (not recommended): set CCACHE_CPP2=TRUE and keep USE_PCH=TRUE
Sehen Sie sich auch dies thread an als Hintergrundinformation über Windows-CCache-Spezifikationen.
set nodep=TRUE
Falls Sie die Umgebungsvariable nodep auf TRUE setzen, werden keine Dateien mit Informationen zu den Abhängigkeiten erstellt - das Build wird damit schneller fertiggestellt.
Allerdings sollten Sie dies nur in einem sauberen Build aktivieren. Sobald Sie OOo erstellt und danach Veränderungen vorgenommen haben, setzen Sie diese Variable wieder zurück um auf der sicheren Seite zu sein.
set NO_HIDS=TRUE
Ähnlich der Variable nodeps unterdrückt diese das Erstellen von (Hilfe-IDs), die hauptsächlich für das automatische Testen verwendet werden - falls Sie nur OOo erstellen wollen, brauchen Sie diese nicht.
Verwenden von parallelen Builds
Falls Sie eine Mehrprozessormaschine oder etwas ähnliches haben, können Sie parallele Builds starten. Es gibt zwei Ebenen von Parallelisierung - eine, die auf der Ebene des Makefiles arbeitet und eine andere auf Modulebene.
set MAXPROCESS=<Anzahl oder Prozesse>
Dies ist die Makefile-Parallelisierung. Dies teilt dmake mit, wieviele Vorgaben ihm für das Parallele Erstellen erlaubt sind.
starten von parallelen build.pl
Für Parallelisierung auf Modulebene müssen Sie build aus dem Verzeichnis <SRC_ROOT>/instsetoo_native starten mit dem Schalter -P<number>, zum Beispiel:
build -P2
Erstellen eines prebuilt Mozilla und Verwendung dieses anstelle eines jedesmal neukompilierten
Für die Mozilla-Komponenten haben Sie die Möglichkeit, diese entweder aus den Mozillaquellen zu erstellen, vorkompilierte Pakete (die "offiziellen" können Sie von tools.openoffice.org erhalten) oder das System-Mozilla (dasjenige, das auf Ihrem Buildsystem installiert ist; nicht alles mag funktionieren, abhängig von der Version, die Sie installiert haben) benutzen. Sie können einfach Ihre eigene Version von vorkonfigurierten Binärdateien erstellen, wenn Sie dies tun wollen (entweder weil Sie die offiziellen nicht benutzen können aufgrund einer nicht passenden Kompilerversion, die zu ihrem Erstellen benutzt wurde, oder aus anderen technischen Gründen oder weil Sie nicht Sachen benutzen wollen, die Sie nicht selbst erstellt haben). Um dies zu tun,
- erstellen Sie das Modul
moz
aus den Mozillaquellen
(verwenden Sie hierzu--enable-build-mozilla
, wenn Sie configure starten und legen Sie den Mozillaquellen-Tarball in das Verzeichnismoz/download
) - in
moz
rundmake zip
to create the zip files - you'll find the zips in
{unxlngi#,wntmsci#}.pro/zipped
Copy them to a location of your liking.
Now instead of using --enable-build-mozilla
, use --disable-build-mozilla
and copy the zips you created or downloaded to moz/zipped
and these will be used when compiling.
This will greatly reduce build-time (you save the time that would otherwise be spent on compiling mozilla)
Sparen von Plattenplatz allein durch das Verknüpfen zum Solver
Verwenden Sie "--dlv_switch -link", wenn Sie build starten, um deliver mitzuteilen, dass es die Dateien nur verknüpfen soll, anstatt sie zu kopieren:
build --dlv_switch -link
Reparieren des EPM-4-Produktnamenfehlers
Falls Sie folgende Fehlermeldung erhalten "epm: Product names can only contain letters and numbers!", müssen Sie epm patchen und die Namensprüfung auskommentieren:
/* * for (i = 0; prodname[i]; i ++) * if (!isalnum(prodname[i] & 255)) * { * puts("epm: Product names can only contain letters and numbers!"); * usage(); * } */