Installation
Allgemeine Hinweise zur Installation von KVIrc 4.0
Minimale Anforderungen
Um KVIrc 4.0 kompilieren zu können, wird mindestens diese Software benötigt:
- Qt GUI Toolkit 4.6 - http://qt-project.org
- CMake 2.6.4 - http://www.cmake.org
- C++ compiler - http://gcc.gnu.org
- Pthread
- Dynamic Linker
- KDE (Optional) - http://www.kde.org
- GNU gettext (Optional) - http://www.gnu.org/software/gettext
- OpenSSL (Optional) - http://www.openssl.org
- Perl (Optional) - http://www.perl.com
- Sound System
Qt GUI Toolkit
Wenn Ihre Distribution KDE installiert hat, ist auch Qt bereits installiert. Falls nicht, einfach Qt4 aus den Depots Ihrer Distributuin installieren.
Bevor Cmake aufgerufen wird, bitte sicherstellen, dass $QTDIR auf das richtige Verzeichnis zeigt. Dies erleichtert das Auffinden der richtigen Qt-Version.
$QTDIR kann mit diesem Befehl eingestellt werden:
# export QTDIR="Ihr Qt-Verzeichnis"
Auf meinem System ist Qt z. B. im Verzeichnis /usr/lib64/qt installiert, daher rufe ich den Befehl so auf:
# export QTDIR=/usr/lib64/qt
Um sicher zu gehen, dass die richtige Qt-Version installiert ist, einfach diesen Befehl aufrufen:
# qmake -v
Bei mir lautet die Ausgabe beispielsweise:
QMake version 2.01a
Using Qt version 4.7.2 in /usr/lib64/qt/lib
Wenn mehrere Versionen von Qt installiert sind und eine bestimmte Version genutzt werden soll, reicht das exportieren von QTDIR nicht aus. Da das CMake-Modul, welches QT4 sucht, selbst qmake aufruft, um das Verzeichnis der Qt4-Bibliotheken zu finden, kann der PATH angepasst werden. Damit kann CMake dazu gebracht werden, die gewünschte qmake-Version zu nutzen:
#PATH=/opt/qt4.7/bin/:$PATH cmake ..
Bitte beachten: Kompilieren mit KDE4-Unterstützung veranlasst KVIrc gegen die gleiche Qt4-Version zu linken, die auch KDE4 nutzt. Dies kann zu Link-Problemen führen. Deaktivieren der KDE4-Unterstützung ist die einzige bekannte Lösung zur Zeit.
Weiterhin ist zu beachten, dass dann die Qt-Bibliotheken beim Start von KVIrc angegeben werden müssen:
#LD_LIBRARY_PATH=/opt/qt4.7/lib/ kvirc4
CMake
Dies ist normalerweise in neueren Distributionen enthalten.
Um dies zu überprüfen reicht folgender Befehl
# cmake --version
Bei mir lautet die Ausgabe beispielsweise:
cmake version 2.8.3
C++ Compiler
Es wird ein vernünftiger C++ Compiler benötigt. Normal ist unter Linux der gcc von den GNU Tools. Es wird die Version 4.3 von gcc bevorzugt.
Um dies zu überpüfen reicht dieser Befehl:
# gcc -v
Bei mir lautet die Ausgabe beispielsweise:
Reading specs from /usr/lib64/gcc/x86_64-slackware-linux/4.5.2/specs
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-slackware-linux/4.5.2/lto-wrapper
Target: x86_64-slackware-linux
Configured with: ../gcc-4.5.2/configure --prefix=/usr --libdir=/usr/lib64
--mandir=/usr/man --infodir=/usr/info --enable-shared --enable-bootstrap
--enable-languages=ada,c,c++,fortran,java,objc,lto --enable-threads=posix
--enable-checking=release --with-system-zlib --enable-libssp --enable-lto
--with-python-dir=/lib64/python2.6/site-packages --disable-libunwind-exceptions
--enable-__cxa_atexit --with-gnu-ld --verbose --disable-multilib
--target=x86_64-slackware-linux --build=x86_64-slackware-linux --host=x86_64-slackware-linux
Thread model: posix
gcc version 4.5.2 (GCC)
Pthread Implementation
Dies ist normalerweise in der Distribution enthalten und bereits installiert. Die Bibliothek heißt libpthread.so.
Sie kann mit dem Befehl "find" gesucht werden:
# find / -name libpthread.so
Bei mir lautet die Ausgabe beispielsweise:
# /usr/lib64/libpthread.so
Wenn sie nicht vorhanden ist (CMake wird einen Hinweis ausgeben), kann sie vom bevorzugten GNU-Spiegelserver heruntergeladen werden.
Das configure-Skript wird auch fehlschlagen, wenn die Bibliothek irgendwo auf dem System versteckt ist (z. B. nicht in /lib, /usr/lib oder /usr/local/lib): Dann sollte sie wohl verschoben werden.
Dynamic Linker Interface
Es wird die Bibliothek des dynamischen Linkers benötigt: libdl.so.
Diese ist gewöhnlich bereits installiert, solang keine Fehlermeldung deswegen erscheint, braucht man sich nicht hierum zu kümmern. Einige Systeme haben diese Schnittstelle bereits in der libc integriert.
KDE (Optional)
Wenn die KDE-Unterstützung mitkompiliert werden soll, wird natürlich KDE benötigt.
Das Paket kdelibs sollte ausreichen.
Bevor Cmake aufgerufen wird, muss sichergestellt sein, dass die Variable $KDEDIR auf das richtige Verzeichnis zeigt.
Diese kann bei Bedarf wie folgt eingestellt werden:
# export KDEDIR="Ihr KDE-Verzeichnis"
In meinem Fall ist KDE in /usr installiert, daher benutze ich:
# export KDEDIR=/usr
GNU gettext (Optional)
Wenn eine andere Sprache als Englisch verwendet werden soll, wird das Paket GNU gettext benötigt. Speziell msgfmt wird von KVIrc genutzt.
Dies ist gewöhnlich in den Distributionen enthalten und meistens bereits installiert. Dies kann überprüft werden mit:
# msgfmt --version
KVIrc wird sich nicht beschweren, wenn das obige Programm fehlt, es wird dann die Erstellung der Übersetzungen überspringen.
Wenn der obige Befehl fehlschlägt, muss das Paket gettext installiert werden, wenn eine andere Sprache als Englisch genutzt werden soll.
OpenSSL (Optional)
Wenn Secure-Socket-Layer-Unterstützung (SSL) mitkompiliert werden soll, werden die OpenSSL-Bibliothek und -Header benötigt (libssl.so und openssl/ssl.h).
Perl (Optional)
Wenn die integrierte Dokumentation erstellt werden soll, wird auch Perl benötigt. Jede Version sollte funktionieren.
Wenn die Unterstützung für Perlskripte kompiliert werden soll, wird eine funktionierende Perl-Installation benötigt. libperl.so MUSS mit der MULTPLICITY-Option kompiliert worden sein.
Dies kann mit 'perl -V' überprüft werden.
Die Art, wie Programme Perl einbetten können, hat sich von Version 5.8 zu Version 5.10 geändert. KVIrc sollte mit Perl >= 5.004 zusammenarbeiten, aber 5.10 wird empfohlen, vor allem, da zukünftige Aktualisierungen die Kompatibilität brechen können.
Sound System (Optional)
Wenn DCC VOICE den GSM-Codec unterstützen soll, wird eine neuere Version von libgsm benötigt.
Diese ist nicht unbedingt zur Kompilierzeit erforderlich, da KVIrc diese nur zur Ausführungszeit sucht, wenn DCC VOICE mit GSM-Codec benutzt werden soll.
Diese kann mit dem Befehl "find" gesucht werden:
# find / -name libgsm*
Bei mir lautet die Ausgabe beispielsweise:
# /usr/lib64/libgsm.so
Die meisten Distributionen enthalten diese Bibliothek. Einige liefern sie nur als statische Version "libgsm.a" aus: Wenn der vorherige 'find'-Befehl nur etwas wie "/usr/lib64/libgsm.a" ausgegeben hat, kann mit folgenden Befehlen manuell ein 'dynamisches' Archiv erstellt werden:
# cd /usr/lib64
# ld --whole-archive -shared -o libgsm.so.1 libgsm.a
# ln -s libgsm.so.1 libgsm.so
# ldconfig
Wenn sie gar nicht installiert ist, kann sie über die Distribution nachinstalliert oder aus dem Web heruntergeladen werden.
Wenn das /snd-Modul verschiedene Audioformate abspielen können soll, muss entweder ein Soundsystem wie Phonon, ein Sound-Daemon wie esd oder eine neue Version der audiofile-Bibliothek benutzt werden. Ohne dies wird KVIrc nur *.au Dateien wiedergeben können.
Konfigurieren der Umgebung
Da KVIrc 4.0 CMake als Build-System nutzt, muss dies zur Erstellung der Makefiles für das Programm make genutzt werden.
Dafür empfehlen wir die "außerhalb-der-Quellen"-Methode: Alle Dateien werden erstellt, ohne das Quellenverzeichnis zu beschmutzen.
# mkdir release
# cd release
# cmake [Ihre Optionen] ..
Hiermit wurde eine außerhalb-der-Quellen-Umgebung erschaffen; nützlich, um ein sauberes Arbeitsverzeichnis zu haben.
Zu beachten ist, dass die abschließenden Punkte für Cmake benötigt werden; ansonsten wird Cmake NICHT die richtige Umgebung erzeugen.
Die CMake-Regeln unterstützen einige Flags. Wenn keine angegeben werden, wird CMake versuchen, eine passende Umgebung zu erstellen :)
Wenn Flags benutzt weren sollen, müssen diesen ein Wahrheitswert oder eine Zeichenkette übergeben werden.
Um z. B. nach /usr zu installieren anstatt nach /usr/local und die Phonon-Unterstützung zu deaktivieren, würde der Befehl so lauten:
# cmake -DCMAKE_INSTALL_PREFIX=/usr -DWANT_PHONON=0 ..
Hier ist eine Liste mit Erklärungen:
- -DWANT_DEBUG (default: OFF)
Kompiliert das Programm mit Symbolen zur Fehlersuche.
Nützlich für Fehlerberichte. - -DWANT_STRIP (default: OFF)
Nur verfügbar, wenn debug deaktiviert ist. Diese Eigenschaft verhindert das Strippen von Objekten vor der Installation.
(Beim Strippen der Objekte werden Symbole in den Objektdateien entfernt, was deren Größe verringert, aber die Fehlersuche erschwert bzw. unmöglich macht.) - -DWANT_VERBOSE(default: OFF)
Ausfürhliche Ausgaben während des Kompilierens erzeugen. - -DCMAKE_INSTALL_PREFIX=PATH (default: a system-dependant directory)
Dies wird alles unterhalb von /path installieren. - -DLIB_SUFFIX=SUFFIX (default: empty)
libkvilib und die KVIrc Module werden unterhalb des Verzeichnisses ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX} installiert. Standard ist ein leeres Suffix. Wird hauptsächlich bei 64bit Distributionen verwendet (-DLIB_SUFFIX=64). - -DMANDIR=DIRECTORY (default: $CMAKE_INSTALL_PREFIX/share/man)
Dies installiert die man-pages nach DIRECTORY. - -DCOEXISTENCE (default: OFF)
Wenn aktiviert, werden Versionsinformationen an kvirc und libkvilib anehangen, so dass mehrere unterschiedliche KVIrc-Versionen auf dem selben System existieren können. - -DUSE_ENV_FLAGS (default: OFF)
Wenn aktiviert, werden die KVIrc-Installationsregeln nicht versuchen, die CMAKE_C(XX)_FLAGS zu setzen. Stattdessen wird Cmake die systemweiten Variablen nutzen.
Die Aktivierung dieser Eigenschaft überstimmt den Wert von -DWANT_DEBUG. - -DCMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT (default: OFF, not cached
Dies wird den Installationspfad auf einen guten Standardwert setzen.
Folgende Kompilierungen sollten den korrekten Pfad aus dem CMake-Zwischenspeicher nutzen.
Diese Eigenschaft ist nützlich, um Installationsprobleme unter OS X zu lösen. - -DWANT_UNIVERSAL_BINARY (default: OFF)
(De-) Aktiviert die Erstellung eines »Universal Binaries« unter OS X. - -DWANT_PHONON (default: ON)
(De-) AKtiviert die Phonon-Audio-Backend-Unterstützung. - -DWANT_OSS (default: ON)
(De-) Aktiviert die OpenSoundSystem-Audio-Backend-Unterstüzung.
Wenn deaktiviert, wird ebenfalls die Audiofile-Unterstützung deaktiviert - -DWANT_AUDIOFILE (default: ON)
(De-) Aktiviert die Audiofile-Audio-Backend-Unterstützung. - -DWANT_ESD (default: ON)
(De-) Aktiviert die ESounD-Audio-Backend-Unterstützung. - -DWANT_QTDBUS (default: ON)
(De-) Aktiviert die Qt-DBus-Unterstützung. - -DWANT_QTWEBKIT (default: ON)
(De-) Aktiviert die Qt-WebKit-Unterstützung. - -DWANT_KDE4 (default: ON)
(De-) Aktiviert die Unterstützung für KDE4. - -DWANT_SSL (default: ON)
(De-) Aktiviert die Crypto-Funktionen, die OpenSSL nutzen. - -DWANT_CRYPT (default: ON)
(De-) Aktiviert die Kryptografiefunktionen und die komplette Unterstützung für Kryptografie/Textumwandlung. Erzeugt ein leicht kleineres Programm - -DWANT_IPV6 (default: ON)
(De-) Aktiviert die IPv6-Unterstützung.
Selbst wenn Sie nur eine IPv4-Verbindung haben, könnten Sie diese Option aktivieren wollen: Sie unterstützt das Nachschlagen von IPv6-Hostnamen. - -DWANT_TRANSPARENCY (default: ON)
(De-) Aktiviert die Pseudo- bzw. reale Transparenz.
Die Pseudo-Transparenz lässt das KVIrc-Fenster halbtransparent erscheinen (es ist keine echte Transparenz, nur ein gutaussehender Trick). Transparenz benutzt Compositing und braucht eine unterstützte Hardware, um zu funktionieren.
Wenn KDE-Unterstützung aktiviert ist, wird KVIrc eine Option haben, die KVIrc eine abgedunkelte Version des Arbeitsflächenhintergrundes als Fensterhintergrund nutzen lässt. Ohne KDE-Unterstützung kann ein selbst gewähltes Bild als Hintergrund dienen (Hier kann natürlich das Arbeitsflächenhintergrundbild gewählt werden, dies funtkioniert in wohl fast allen Fenstermanagern).
Es sieht gut aus, verbraucht aber gewöhnlich etwas Speicher und macht das Programm etwas größer. Besonders, wenn Objekte bewegt werden, kann die CPU-Nutzung höher als sonst sein.
Deshalb kann die Transparenz hier deaktiviert werden. - -DWANT_PERL (default: ON)
(De-) Aktiviert die Perl-Unterstützung.
Es gibt keine Möglichkeit, Perl-Skripte innerhalb von KVIrc auszuführen.
Es können Perl-Skripte außerhalb von KVIrc ausgeführt werden, z. B. mit exec().
Hinweis: Es wird auf jeden Fall nach Perl gesucht, um, falls vorhanden, die Dokumentation zu erstellen. - -DWANT_PYTHON (default: ON)
(De-) Aktiviert die Python-Unterstützung.
Es gibt keine Möglichkeit, Python-Skripte innerhalb von KVIrc auszuführen. - -DWANT_IPC (default: ON)
(De-) Aktiviert die Unterstützung für die Inter-Prozess-Kommunikation.
Es ist nicht möglich, eine laufende KVIrc-Instanz entfernt zu bedienen. Allgemein heißt das: Jedesmal, wenn das KVIrc-Programm aufgerufen wird, wird eine neue Instanz gestartet.
Wenn dieser Schalter nicht benutzt wird, wird eine neue Instanz nur gestartet, wenn keine auf dem gleichen Display läuft, oder eine »new session« wird über die Kommandozeilenoption erzwungen.
Wenn eine Sitzung bereits läuft, wird die Kommandozeile an die diese über IPC (X-Event-basierte Kommunikation) weitergegeben.
Diese Option spart ein paar KB an KVIrc. Wenn Sie wirklich wenig Speicher haben, möchten Sie es vielleicht nutzen, ansonsten ist IPC eine gute Sache. - -DWANT_GETTEXT (default: ON)
(De-) Aktiviert die Nutzung von GetText, um die Übersetzungsdateien zu erstellen. - -DWANT_DOXYGEN (default: ON)
(De-) Aktiviert die Erstellung der Entwicklerdokumentation mittels Doxygen. - -DWANT_GSM (default: ON)
(De-) Aktiviert die Nutzung der GSM-Bibliothek. Dies deaktiviert den DCC-VOICE-GSM-Codec, kann aber helfen, wenn die Kompilierung wegen GSM abbricht :) - -DWANT_IGNORE_SIGALARM (default: OFF)
Unter Solaris sind sowohl usleep() als auch die Threads-Implementierung auf SIGALARM basiert. KVIrc nutzt beide und dies kann zu einigen spontanen Programmbeendigungen führen. Diese Option aktiviert eine Umgehung für dieses Problem. - -DWANT_DCC_VOICE (default: ON)
(De-) Aktiviert die DCC-VOICE-Unterstützung. Dies kann helfen, wenn Probleme während der Kompilierung in src/modules/dcc/voice.cpp auftreten.
Es deaktiviert die Sound-Unterstützung (und macht daher DCC-VOICE unbrauchbar). - -DWANT_DCC_VIDEO (default: OFF)
(De-) Aktiviert die EXPERIMENTELLE DCC-VIDEO-Unterstützung. - -DWANT_OGG_THEORA (default: OFF)
(De-) Aktiviert die EXPERIMENTELLE Ogg/Theora-Unterstützung für DCC video. - -DWANT_DCC_CANVAS (default: OFF)
(De-) Aktiviert die VERALTETE DCC-CANVAS-Unterstützung. - -DWANT_MEMORY_PROFILE (default: OFF)
(De-) Aktiviert das Memory-Allocation-Profiling.
Nutzen Sie es nicht, sofern Sie kein Entwickler sind und wissen, was Sie tun.
Es hat einen starken Einfluss auf die Programmgröße und vorallem dessen Geschwindigkeit.
Bitte nutzen Sie es nicht. - -DWANT_MEMORY_CHECKS (default: OFF)
(De-) Aktiviert malloc() Speicherprüfungen. Dies gibt eine schöne Nachricht aus, wenn dem System der Speicher ausgeht.
Es kann keinen neuen Speicher kaufen, aber zumindest drauf hinweisen, dass dem System kein freier Speicher mehr zur Verfügung steht und dass es nicht die Schuld von KVIrc ist.
Die meisten Systeme weisen bereits darauf hin, dass zu wenig Speciher zur Verfügung steht (z. B. Linux und der OOM-Killer).
Höchst wahrscheinlich wird diese Eigenschaft nicht gebraucht. - -DMANUAL_REVISION (default: empty)
Setzt die Revisionsnummer manuell, falls Subversion nicht gefunden wird auf dem System.
Dies ist hauptsächlich unter Windowsn nützlich.
Bitte geben Sie keine unnützen Informationen hier an, da sie die Fehlersuche erschweren und es keinen Nutzen hieraus gibt. - -DWANT_PIZZA (default: OFF)
Pizza zum Abendessen :) - -DWANT_BEER (default: OFF)
Bier zum Chatten :) - -DWANT_GTKSTYLE (default: OFF)
QGtkStyle is a QT backend that uses native Gtk widgets. In recent Gtk versions some insane choices are hardcoded and impossible to workaround (example: icons can't be shown in menus, label background color is fixed).
By default we disable QGtkStyle since it messes up with KVIrc internal themeing engine creating bad problems (like unreadable white text on a white background).
Some users wants to use it anyway and sometimes we like to check if GTK developers quit smoking pot, so this option let you enable the QGtkStyle engine.
Please don't report any theme-related bug if you enabled this option: we already know it's broken, but nobody's gonna fix it.
Interaktiver Modus
Das CMake Build System bietet auch einen interaktiven Modus an, um alle Einstellungen vor dem Kompilieren vorzunehmen.
Auch hier unterstützen wir das Erstellen "außerhalb-der-Quellen": Alles erstellen, ohne das Quellverzeichnis zu verunreinigen.
# mkdir release
# cd release
# ccmake ..
Jetzt sind Sie im interaktiven Modus, folgen Sie den Anweisungen auf dem Bildschirm, um die Kompilierumgebung zu erstellen.
Kompilieren
Dieser Schritt ist einfach :)
Finger kreuzen und folgendes ausführen:
# make
Wenn make nicht GNU make ist (z. B. unter FreeBSD), sollte stattdessen "gmake" verwendet werden.
Die Kompilierung kann zwischen 3-4 Minuten und enigen Stunden dauern, je nach Computer und dessen Auslastung.
Wenn es eine langsame CPU ist, aber ein paar davon zur Verfügung stehen, kann distcc (verteiltes Kompilieren) eine Überlegung wert sein.
Wenn das Kompilieren erfolgreich beendet ist, diesen Befehl ausführen:
# make install
Genau wie oben: "gmake install", falls make kein GNU make ist.
Dies wird das ausführbare Programm nach /usr/local/bin installieren (falls nichts anderes angegeben wurde bei -DCMAKE_INSTALL_PREFIX), die Bibliotheken nach /usr/local/lib (wenn kein -DLIB_SUFFIX angegeben) und die gemeinsam genutzen Daten nach /usr/local/share/kvirc.
Bitte sicherstellen, dass /usr/local/lib in /etc/ld.so.conf enthalten ist; wenn nicht, dort eintragen und dies ausführen:
# ldconfig
Bei KDE-Unterstützung kann es sein, dass die Installation alle Dateien unterhalb von $KDEDIR installiert hat, anstatt unter /usr/local.
Dies ist ok, da KDE seine Bibliotheksverzeichnisse bereits in /etc/ld.so.conf benötigt
Kompilieren unter OS X
Für OS X gibt es eine detailierte Kompilierungs- und Installationsanweisung im Verzeichnis doc/. Sie heißt INSTALL-MacOS.txt
Kompilieren unter Win32
Für Win32-Systeme gibt es eine ausführliche Kompilierungs- und Installationsanweisung im Verzeichnis doc/. Sie heißt INSTALL-Win32.txt
Hacker-level Installation
# mkdir release && cd release
# cmake ..
# make install
Ein KVIrc Paket erstellen
CMake unterstützt das Argument DESTDIR.
Wenn ein Paket für die eigene Distribution erstellt werden soll, wird dieses "make install" angegeben: Die installierten Dateien werden in diesen Pfad geschrieben.
Die Syntax lautet:
# make install DESTDIR=/tmp/kvirc-4.0
Nach diesem Schritt einfach den Regeln der jeweiligen Distribution folgen, um das Paket zu erstellen.
Alternativ kann die experimentelle CPack-Unterstützung probiert werden, die in CMakeLists.txt enthalten ist: in diesem Fall bitte die CPack-Dokumentation konsultieren.
Viel Spaß!
# kvirc &
Das war's, Leute.