Scribus-SVN-Versionen mit CMake komplilieren: Difference between revisions

From Scribus Wiki
Jump to navigation Jump to search
Line 57: Line 57:


Viel Glück!
Viel Glück!
==Warum muß ich Scribus "kompilieren"?==
'''Und was bedeutet eigentlich kompilieren?'''
When you are going to build or compile Scribus, what you have downloaded is a large collection of plain-text files (ending in '.c' or '.cpp' to denote either the C or C++ language respectively). The reason there are so many is that this actually makes the process of developing software easier, and allows for use of small parts repeatedly by different functions of the overall program. These plain-text files need to be converted to binary files (ending in ',o' for object files) so that your PC can use them, and the program works efficiently.
The first step is to configure your downloaded directory of files. This requires a check of your PC to make sure the compiling programs and all the other required outside resources are present and sufficiently up-to-date. Just as Scribus itself consists of these small program files, it also will use those of outside programs, like CUPS, lcms, and so on, so it needs to have on hand those plain text files to connect to these outside resources. After checking for the necessary resources, a script is written to tell the compiler how to go about building Scribus. The process will fail if you are missing something, and '''cmake''' will give you error messages.
The Scribus Team now encourages the use of '''cmake''' for this configuring process. It is quick, easy to use, and easy for the developers to write for -- even '''cmake''' needs instructions. You can also pass to '''cmake''' several special parameters for your particular PC setup, where you want Scribus to be installed, for example.
Next, the actual 'build' process is done with a program called '''make'''. To start the process you simply enter <tt>make</tt> in a command line. That's it. You do not need to have ''root'' privileges to compile, and it is generally recommended that do not compile as root (one reason for this is that, by creating a number of files under root's name, you then interfere with subsequent updating from CVS). Compiling takes up a good part of your computer's resources, especially your processor(s), so you will find its performance rather sluggish while compiling is going on. Consequently, many find that compiling is best done by starting '''make''' and then walking away from the PC to let it do its work.
Finally, you need to install, done with the command <tt>make install</tt>. If you are going to install in the default location, you will need to have ''root'' privileges. On most Linux distros this can easily be done with the <tt>su</tt> command (after which you need root's password), or with '''sudo''', entered as <tt>sudo make install</tt>. You can run '''cmake''' with a command that can install Scribus in a directory for which you have write privileges, and therefore do not need to be '' root''.
For this help, and other advice, continue reading the following sections.


==Kompilieren mit CMake in aller Kürze==
==Kompilieren mit CMake in aller Kürze==

Revision as of 21:41, 26 December 2007


Nachdem lange Zeit die klassischen Autotools verwendet wurden, haben sich die Scribus-Entwickler dazu entschlossen, CMake als Ersatz einzusetzen. Es ermöglicht eine flexiblere Konfiguration und ist gleichzeitig weniger komplex. Außerdem ist es kompatibel mit den Compilern unter Linux/UNIX, Windows und OS X.

Sie benötigen ein CMake-Version ab 2.4.3, um optimale Ergebnisse zu erzielen. Ältere Versionen werden nicht funktionieren!

Der erste Schritt: Laden Sie die aktuelle SVN-Version herunter

SVN ist das Versionskontrollsystem, das für Scribus verwendet wird. Lesen Sie diesen Artikel, um mehr Informationen zur Bedienung zu erhalten.

Alle SVN-Links befinden sich unter der folgenden Adresse:

svn://scribus.info/Scribus/

Darüber hinaus gibt es die Adresse http://scribus.info/svn/Scribus/. Der Inhalt hier ist identisch, aber svn://scribus.info/Scribus/ ist normalerweise schneller. Der HTTP-Zugang könnte jedoch nützlich für diejenigen sein, die hinter paranoiden Firewalls oder Proxies sitzen.

Wenn Sie bisher mit -r <Version> auf CVS zugegriffen haben, so verwenden Sie jetzt SVN-Pfad:

Version SVN-Pfad Status
Version135x /trunk/Scribus **instabil/Entwicklerversion**
Version13x /branches/Version13x/Scribus
Version133x /branches/Version133x/Scribus **stabile Version**
Version12x /branches/Version12x/Scribus **veraltet**

Wenn Sie also SVN verwenden möchten, um eine aktuelle Version der stabilen Reihe zu erhalten, geben Sie folgendes ein.

svn co svn://scribus.info/Scribus/branches/Version133x/Scribus scribus133x

Um Ihre Arbeitskopie zu aktualisieren, müssen Sie später im Quellverzeichnis svn up eingeben.


Weiterführende Hinweise zum Thema SVN im allgemeinen und zu Scribus-SVN im besonderen:

Dank Anduin.net (http://anduin.net/) werden die anonymen SVN-Repositorien täglich aktualisiert.

Weitere Informationen zum Herunterladen von Scribus:

Wenn Sie zum erstenmal kompilieren, sollten Sie sich von der Kommandozeile nicht abschrecken lassen. Kopieren Sie einfach die jeweils relevanten Zeilen nacheinander in das Kommandozeilenfenster.

Seien Sie vorsichtig:

  • Anfänger sollten darauf achten, daß nur das letzte Kommando – make install – Root-Rechte benötigt. Für die übrigen Schritte reichen einfache Benutzerrechte.

Sie können Scribus auch in ein Verzeichnis installieren, für das Sie Schreibrechte haben. Siehe dazu die Option -DCMAKE_INSTALL_PREFIX, die weiter unten erklärt wird.

  • Und falls Sie bereits eine Scribus-Version installiert haben, vergessen Sie nicht die Option WANT_VERSIONING=1. Sie können sie mittels -DWANT_VERSIONING=1 erzwingen.

Viel Glück!

Warum muß ich Scribus "kompilieren"?

Und was bedeutet eigentlich kompilieren?

When you are going to build or compile Scribus, what you have downloaded is a large collection of plain-text files (ending in '.c' or '.cpp' to denote either the C or C++ language respectively). The reason there are so many is that this actually makes the process of developing software easier, and allows for use of small parts repeatedly by different functions of the overall program. These plain-text files need to be converted to binary files (ending in ',o' for object files) so that your PC can use them, and the program works efficiently.

The first step is to configure your downloaded directory of files. This requires a check of your PC to make sure the compiling programs and all the other required outside resources are present and sufficiently up-to-date. Just as Scribus itself consists of these small program files, it also will use those of outside programs, like CUPS, lcms, and so on, so it needs to have on hand those plain text files to connect to these outside resources. After checking for the necessary resources, a script is written to tell the compiler how to go about building Scribus. The process will fail if you are missing something, and cmake will give you error messages.

The Scribus Team now encourages the use of cmake for this configuring process. It is quick, easy to use, and easy for the developers to write for -- even cmake needs instructions. You can also pass to cmake several special parameters for your particular PC setup, where you want Scribus to be installed, for example.

Next, the actual 'build' process is done with a program called make. To start the process you simply enter make in a command line. That's it. You do not need to have root privileges to compile, and it is generally recommended that do not compile as root (one reason for this is that, by creating a number of files under root's name, you then interfere with subsequent updating from CVS). Compiling takes up a good part of your computer's resources, especially your processor(s), so you will find its performance rather sluggish while compiling is going on. Consequently, many find that compiling is best done by starting make and then walking away from the PC to let it do its work.

Finally, you need to install, done with the command make install. If you are going to install in the default location, you will need to have root privileges. On most Linux distros this can easily be done with the su command (after which you need root's password), or with sudo, entered as sudo make install. You can run cmake with a command that can install Scribus in a directory for which you have write privileges, and therefore do not need to be root.

For this help, and other advice, continue reading the following sections.

Kompilieren mit CMake in aller Kürze

Bitte beachten Sie, daß ein "Out-of-source-Build" empfohlen wird. Trotzdem ...

Wenn Sie sich im Scribus-Verzeichnis befinden:

/pfad/zu/cmake . -DCMAKE_INSTALL_PREFIX:PATH=/pfad/zum/installationsverzeichnis

z. B. /usr/local/bin/cmake . -DCMAKE_INSTALL_PREFIX:PATH=/opt/scribus134cvs

Einige Optionen, welche die Scribus-CMake-Dateien kennen (es werden noch mehr hinzukommen!):

  • WANT_DEBUG=1: Erstellt eine Debug-Version und verwendet -O0 -g3 statt -O2 (Dies ist momentan die Standardeinstellung und kann nur abgestellt werden, wenn Sie die Datei CMakeFiles.txt bearbeiten)
  • WANT_CAIRO=1: Läßt CMake nach Cairo suchen und kompiliert damit anstatt mit LibArt_LGPL.
  • WANT_LIBART=1 (Standardeinstellung in 1.3.3.x; in 1.3.5 nicht verfügbar): Läßt CMake nach LibArt_LGPL anstatt Cairo suchen und kompiliert es damit.

Wenn Sie also eine Debug-Version mit Cairo kompilieren wollen, dann sollte Ihre Eingabe in etwa so aussehen:

/usr/local/bin/cmake . -DCMAKE_INSTALL_PREFIX:PATH=/opt/scribus134cvs -DWANT_CAIRO=1 -DWANT_DEBUG=1

Außerhalb des Quellverzeichnisses kompilieren ("Out-of-source-builds")

Einer der Vorteile von CMake ist die Möglichkeit, einen sogenannten "Out-of-source-build" durchzuführen. Was ist das? Er ermöglicht es Ihnen, eine Anwendung zu kompilieren, ohne daß irgend etwas in das Verzeichnis geschrieben wird, in dem sich die Quelltexte befinden. Das bedeutet, daß ihr Quellverzeichnis sauber bleibt, und zwar immer. Auf diese Weise lassen sich ihre Quellen schneller und einfacher aktuell halten, und Sie können mehrere Varianten aus dem gleichen Quelltext erzeugen.

Um Quelltexte auf diese Weise zu kompilieren, benötigen Sie ein neues Zielverzeichnis für die Installation. Angenommen, Ihre Quellen befinden sich in:

/home/username/scribuscmake/Scribus

Erstellen Sie folgendes Verzeichnis:

/home/username/scribuscmake/zielverzeichnis

Anstatt nun etwa

/usr/local/bin/cmake . -DCMAKE_INSTALL_PREFIX:PATH=/opt/scribus134cvs

auszuführen, würden Sie statt dessen in das Zielverzeichnis wechseln und

/usr/local/bin/cmake ../Scribus -DCMAKE_INSTALL_PREFIX:PATH=/opt/scribus134cvs

Einfach!

Die Kompilierung abschließen

Wenn dieser Vorgang erfolgreich abgeschlossen ist, führen Sie einfach make && make install aus.

Das auf CMake basierende Buildsystem ist noch sehr neu für Scribus, und es wird sich noch verändern und Verbesserungen benötigen. Bitte berichten Sie über Probleme auf der Mailingliste oder dem Bugtracker.

Die Liste der noch zu erledigenden Aufgaben für dieses Buildsystem ist noch lang. Sie enthält unter anderem:

  • Die Überprüfung auf plattformübergreifende Funktionalität
  • Die Überprüfung, ob es gleichermaßen unter verschiedenen Unix-Varianten funktioniert
  • Die Überprüfung auf 64-Bit-Distributionen
  • Unterstützung für Win32 und Mac OSX

Das Kompilieren schlägt bei installierten Qt4-Bibliotheken fehl

Systeme, auf denen Qt3 und Qt4 parallel installiert sind:

uic und moc aus Qt4 befinden sich im $PATH, was dazu führt, daß das Kompilieren scheitert. So läßt sich das Problem lösen:

Entfernen Sie vorherige Konfigurationsoptionen aus dem Cache, indem Sie rm CMakeCache.txt ausführen.

Ändern Sie dann die $PATH-Variable, für mein Gentoo etwa: export PATH=/usr/qt/3/bin/:$PATH

Rufen Sie dann cmake erneut auf:

/pfad/zu/cmake . -DCMAKE_INSTALL_PREFIX:PATH=/pfad/zum/installationsverzeichnis


Einen Tarball zum Verteilen erstellen

Um einen Tarball zu erstellen, haben Sie bisher folgendes eingegeben: make dist. Nun rufen Sie make package_source oder /path/to/cpack -G TBZ2 --config CPackSourceConfig.cmake auf, um ein Quellcode-Archiv zu erzeugen. CMake 2.4.1 unterstützt nur gzip (tar.gz), aber bzip2 (tar.bz2) ist mit der CVS-Version von CMake möglich.