Встановлення
Загальні вказівки щодо встановлення KVIrc версії 4.0
Мінімальні вимоги
Щоб скомпілювати KVIrc 4.0 вам знадобляться наступні програми:
- 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 (Опціонально) - http://www.kde.org
- GNU gettext (Опціонально) - http://www.gnu.org/software/gettext
- OpenSSL (Опціонально) - http://www.openssl.org
- Perl (Опціонально) - http://www.perl.com
- Sound System
Qt GUI Toolkit
Якщо у вашому дистрибутиві встановлено KDE, то Qt встановлений також. Якщо ні, просто встановіть qt4 з репозиторію.
Перед стартом cmake переконайтесь, що змінна оточення $QTDIR вказує на вірне місце. ЦЕ допоможе визначити правильну версію Qt.
Зрештою ви можете задати її командою:
# export QTDIR="ваша тека qt"
На моїй системі qt встановлений в /usr/lib64/qt тому я виконую:
# export QTDIR=/usr/lib64/qt
Щоб перевірити чи у вас потрібна версія Qt, запустіть:
# qmake -v
Моя система видає результат:
QMake version 2.01a
Using Qt version 4.7.2 in /usr/lib64/qt/lib
Якщо у вас встановлено кілька версій Qt4 і ви хочете використати певну в них, експорту QTDIR невистачить. Оскільки модуль CMake, що шукає Qt4, використовує qmake, щоб визначити теку з бібліотеками Qt4 ви можете додати до вашого PATH шлях до потрібної версії qmake, щоб CMake його використав:
#PATH=/opt/qt4.7/bin/:$PATH cmake ..
Зауважте, що компілювання з ввімкненою підтримкою KDE4 змусить kvirc лінкуватись на версію Qt4, яку використовує KDE4, і це може призвести до проблем з лінкуванням. Вимкнення підтримки KDE4 є єдиним виходом на даний момент.
Зверніть увагу що вам доведеться перевизначити бібліотеки Qt, що використовуються при роботі KVIrc:
#LD_LIBRARY_PATH=/opt/qt4.7/lib/ kvirc4
CMake
Він зазвичай включене в останні дистрибутиви.
Щоб дізнатись який ви маєте cmake просто виконайте
# cmake --version
Моя система видає результат:
cmake version 2.8.3
C++ Compiler
Вам потрібен хороший компілятор C++. Під linux це зазвичай gcc з інтрументів GNU. Рекомендуємо використовувати gcc 4.3.
Щоб дізнатись версію gcc виконайте:
# gcc -v
Моя система видає результат:
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
Він зазвичай включений в ваш дистрибутив і напевне вже встановлений. Бібліотека має назву libpthread.so.
Можете пошукати її командою "find" :
# find / -name libpthread.so
Моя система видає результат:
# /usr/lib64/libpthread.so
Якщо у вас його немає (CMake вам про це скаже) ви можете завантажити його з улюбленого дзеркала GNU.
Скрипт конфігурації також не завершиться успішно якщо бібліотека схована десь в вашій системі (напр. не в /lib , /usr/lib чи /usr/local/lib): перемістіть її.
Dynamic Linker Interface
Вам потрібна бібліотека інтерфейсу динамічного зв'язування libdl.so.
Вона зазвичай встановлена в вашій системі, тому забудьте про неї поки про неї не спитає копфігуратор. В деяких системах інтерфейс вбудований libc.
KDE (Опціонально)
Якщо ви хочете зібрати програму з підтримкою інтеграції в KDE вам очевидно потрібен KDE.
Пакунку kdelibs має вистачити.
Тому перед стартом cmake переконайтесь що змінна оточення $KDEDIR вказує на вірне місце.
Зрештою його можна задати командою:
# export KDEDIR="ваша тека kde"
В моєму випадку KDE встановлений в /usr тому я використовую:
# export KDEDIR=/usr
GNU gettext (Опціонально)
Якщо ви хочете щоб працювала не лише англійська версія програми, тоді вам потрібен пакунок GNU gettext. Якщо бути точним, KVIrc використовує програму msgfmt.
Він зазвичай включений в ваш дистрибутив і напевне вже встановлений. Можете перевірити виконавши:
# msgfmt --version
KVIrc не поскаржиться якщо вищевказана програма відсутня: просто він пропустить створення мовних файлів.
Якщо вищевказана команда не працює, тоді вам треба встановити пакунок gettext (якщо вам потрібна підтримка не-англійської мови).
OpenSSL (Опціонально)
Якщо вам потрібна підтримка шару захищеного сокету (SSL) вам необхідна бібліотека OpenSSL і файли заголовків (libssl.so та openssl/ssl.h).
Perl (Опціонально)
Якщо ви хочете генерувати онлайн документацію тоді вам потрібен Perl: підійде будь-яка версія (напевне).
Якщо вам потрібна підтримка скриптування Perl тоді вам потрібно повністю встановити Perl. Ваша libperl.so ПОВИННА бкти зібрана з параметром MULTIPLICITY.
Можете перевірити це командою perl -V
Принцип вбудовування Perl в зовнішні програми змінився від версії Perl 5.8 до 5.10; KVIrc повинен нормально працювати з Perl >= 5.004, але рекомендуємо 5.10, оскільки майбутні оновлення можуть зламати сумісніть.
Sound System (Опціонально)
Якщо вам потрібна, щоб DCC VOICE підтримував кодек GSM, вам потрібна остання версія libgsm.
Це є необов'язковою вимогою в процесі збирання оскільки KVIrc шукатиме бібліотеку при запуску, і лише якщо йде запит на DCC VOICE з кодеком GSM.
Можете пошукати libgsm командою "find" :
# find / -name libgsm*
Моя система видає результат:
# /usr/lib64/libgsm.so
Ця бібліотека включена в більшість дистрибутивів. Деякі дистрибутиви містять лише статичні версії бібліотеки "libgsm.a": якщо попередній пошук повернув щось накшталт "/usr/lib64/libgsm.a", вам напевне доведеться створити спільний архів вручну виконанням:
# cd /usr/lib64
# ld --whole-archive -shared -o libgsm.so.1 libgsm.a
# ln -s libgsm.so.1 libgsm.so
# ldconfig
Якщо він не встановлений у вас взагалі, гляньте на СД-диск вашого дистрибутиву, або завантажте його з інтернету
Якщо ви хочете щоб плагін /snd програвав різні формати аудіо вам потрібна запущена система як phonon, запущений демон звуку як esd чи досить свіжа бібліотека audiofile. Без цього KVIrc зможе відтворювати лише файли типу *.au.
Налаштування оточення
Починаючи з версії 4.0 KVIrc викоирстовує систему збирання CMake, вона потрібна для створення файлів правил Makefile для програми make.
Щоб це зробити ми радимо збирання типу "out-of-source": збирайте всі файли за межами теки з початковим кодом.
# mkdir release
# cd release
# cmake [ваші опції] ..
Таким чином ви створили оточення за-межами-коду в порожній робочій теці.
Зауважте що кінцеві точки необхідні інакше cmake НЕ створить правильне оточення.
Правила CMake підтримують певні прапорці. Якщо ви їх не вкажете, CMake спробує сам створити хороше оточення :)
Щоб використовувати ці прапорці, ви повинні вказати булеву величину або рядок.
Наприклад, щоб встановити в /usr замість /usr/local і вимкнути підтримку Phonon, команда буде наступною:
# cmake -DCMAKE_INSTALL_PREFIX=/usr -DWANT_PHONON=0 ..
Нижче наведений список з поясненнями:
- -DWANT_DEBUG (default: OFF)
Якщо ввімкнено, компілює виконуваний файл з налагоджувальними символами.
Корисно для звітування помилок. - -DWANT_STRIP (default: OFF)
Доступно лише коли налагодження вимкнено, цей прапор вимикає зачистку об'єктів перед встановленням.
(Зачистка об'єктів відкидає символи з об'єктних файлів, зменшуючи їх розмір на диску, за рахунок більш складного або неможливого налагодження.) - -DWANT_VERBOSE(default: OFF)
Генерує багатий вивід при компілюванні. - -DCMAKE_INSTALL_PREFIX=PATH (default: a system-dependant directory)
Встановить всі дані в теку /path - -DLIB_SUFFIX=SUFFIX (default: empty)
Встановить модулі libkvilib та kvirc в теку ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}. Він скидається до порожнього суфіксу. В основному для 64-бітних систем (-DLIB_SUFFIX=64). - -DMANDIR=DIRECTORY (default: $CMAKE_INSTALL_PREFIX/share/man)
Встановить сторінки man до DIRECTORY. - -DCOEXISTENCE (default: OFF)
Якщо ввімкнено, додає дані про версію до kvirc та libkvilib, тому різні версії KVIrc можуть співіснувати в одній системі. - -DUSE_ENV_FLAGS (default: OFF)
Якщо ввімкнено, правила встановлення KVIrc не зададуть CMAKE_C(XX)_FLAGS. Замість цього це дозволить CMake використати дані зі змінних оточення.
Ввімкнення цього прапорця перевизначить значення -DWANT_DEBUG. - -DCMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT (default: OFF, not cached
Це перевизначить шлях встановлення до доброго стандартного.
Наступні компіляції повинні використовувати правильне значення шляху з кешу CMake.
Цей прапорець корисний для вирішення проблем встановлення під OS X. - -DWANT_UNIVERSAL_BINARY (default: OFF)
Вмикає чи вимикає компілювання універсальних бінарників для платформи OS X. - -DWANT_PHONON (default: ON)
Вмикає чи вимикає підтримку звукового бекенду Phonon. - -DWANT_OSS (default: ON)
Вмикає чи вимикає підтримку звукового бекенду OpenSoundSystem.
Якщо вимкнено, підтримка Audiofile буде вимкнена також - -DWANT_AUDIOFILE (default: ON)
Вмикає чи вимикає підтримку звукового бекенду Audiofile. - -DWANT_ESD (default: ON)
Вмикає чи вимикає підтримку звукового бекенду ESounD. - -DWANT_QTDBUS (default: ON)
Вмикає чи вимикає підтримку Qt-DBus. - -DWANT_QTWEBKIT (default: ON)
Вмикає чи вимикає підтримку Qt-WebKit. - -DWANT_KDE4 (default: ON)
Вмикає чи вимикає підтримку KDE4. - -DWANT_SSL (default: ON)
Вмикає чи вимикає підтримку функцій шифрування OpenSSL. - -DWANT_CRYPT (default: ON)
Вмикає чи вимикає шифрувальні машини і всю підтримку шифрувальної/текстової трансформації. Створює трохи менший файл програми - -DWANT_IPV6 (default: ON)
Вмикає чи вимикає підтримку IPv6.
Якщо у вас просте IPv4-з'єднання, ви можете зберегти підтримку IPv6: ви змоете опитувати хости IPv6. - -DWANT_TRANSPARENCY (default: ON)
Ця опція вмикає чи вимикає підтримку псевдо та простої прозорості.
Підтримка псевдопрозорості робить вікна KVIrc напівпрозорими (це НЕ справжня прозорість: це просто гарний хак). Прозорість використовує компонування і потребує правильної підтримки залізом.
Якщо підтримка KDE ввімкнена, KVIrc буде мати опцію використання вікнами побляклої стільниці KDE. Без підтримки KDE ви зможете вибрати фальшивий фон. (Ви все ще можете вибрати шпалери з вашої стільниці: це буде працювати (краще чи гірше) у всіх менеджерах вікон).
Це має гарний вигляд але зазвичай їсть більше пам'яті і робить файл програми трохи більшим. Особливо при переміщенні ЦП може підвисати.
Таким чином тут можна вимкнути прозорість. - -DWANT_PERL (default: ON)
Вмикає чи вимикає підтримку Perl.
Ви не зможете використовувати скрипти на Perl всередині KVIrc.
Ви все ще можете виконувати скрипти на Perl за межами KVIrc, тобто командою exec().
Зауважте що підтримка Perl буде перевірятись все одно, і використовуватись для генерування документації (якщо така є). - -DWANT_PYTHON (default: ON)
Вмикає чи вимикає підтримку python.
Ви не зможете використовувати скрипти на python всередині KVIrc. - -DWANT_IPC (default: ON)
Вмикає чи вимикає підтримку міжпроцесної взаємодії.
Ви не зможете посилати команди віддалено для запуску сесій KVIrc: це в основному означає що при кожному запуску KVIrc буде відкриватись новий сеанс.
Якщо ви не використовуєте цей перемикач, новий сеанс буде створюватись лише якщо немає активних сеансів на тому ж дисплеї чи "новий сеанс" був примусово запущений командним перемикачем.
Якщо сеанс вже запущено, до цього сеансу буде переданий командний рядок через IPC (X-основана-на-подіях взаємодія).
Ця опція заощаджує кілька KБ виконуваного файлу KVIrc, тому якщо вам дійсно не вистачає пам'яті, використайте її, інакше IPC є гарною властивістю. - -DWANT_GETTEXT (default: ON)
Вмикає чи вимикає використання GetText для генерування файлів перекладу. - -DWANT_DOXYGEN (default: ON)
Вмикає чи вимикає генерування розробницької документації через Doxygen. - -DWANT_GSM (default: ON)
Вмикає чи вимикає використання бібліотеки GSM. Це вимкне кодек DCC VOICE GSM але може допомогти коли компілювання не вдається через щось спільне з GSM :) - -DWANT_IGNORE_SIGALARM (default: OFF)
Під Solaris реалізації usleep() та ниток основані на SIGALARM. KVIrc використовує обидва і це може призвести до непередбачуваних виходів з KVIrc. Ця опція вмикає обхід для цієї проблеми. - -DWANT_DCC_VOICE (default: ON)
Вмикає чи вимикає підтримку звуку DCC VOICE. Це може допомогти якщо у вас проблеми з компілюванням src/modules/dcc/voice.cpp.
Це вимкне підтримку звуку (і зробить DCC VOICE даремним). - -DWANT_DCC_VIDEO (default: OFF)
Вмикає чи вимикає ЕКСПЕРИМЕНТАЛЬНУ підтримку DCC VIDEO. - -DWANT_OGG_THEORA (default: OFF)
Вмикає чи вимикає ЕКСПЕРИМЕНТАЛЬНУ підтримку Ogg/Theora для DCC-відео. - -DWANT_DCC_CANVAS (default: OFF)
Вмикає чи вимикає ЗАСТАРІЛУ підтримку DCC CANVAS. - -DWANT_MEMORY_PROFILE (default: OFF)
Вмикає чи вимикає профілювання виділення пам'яті.
Не задавайте його якщо ви не розробник і не знаєте що робите.
Це буде мати великий вплив на розмір виконуваного файлу і особливо швидкість.
Не використовуйте це. - -DWANT_MEMORY_CHECKS (default: OFF)
Вмикає чи вимикає перевірки пам'яті malloc(). Буде виводитись гарне повідомлення якщо в системі закінчується пам'ять.
Це не вбереже вас від придбання нової ОЗУ, але ви хоча б будете знати що в системі мало вільної пам'яті і це не провина KVIrc.
Більшість систем зазвичай повідомляють вас коли закінчується вільна оперативна пам'ять (напр. Linux та OOM killer.)
Швидше за все вам не потрібно вмикати цей прапорець. - -DMANUAL_REVISION (default: empty)
Вручну вказати номер ревізії якщо в системі не знайдений subversion.
Це зазвичай корисне під windows.
Будь ласка не вказуйте тут непотрібні дані, оскільки це зробить налагодження важчим і нікто від цього не виграє. - -DWANT_PIZZA (default: OFF)
І трохи піци на обід :) - -DWANT_BEER (default: OFF)
І трохи пивка в чаті :) - -DWANT_GTKSTYLE (default: OFF)
QGtkStyle є бекендом QT що використовує рідні віджети Gtk. В останніх версіях Gtk зроблені деякі божевільні кроки і їх неможливо обійти (приклад: значки не можна відображати в меню, колір фону мітки фіксований).
За замовчуванням ми вимикаємо QGtkStyle оскільки він не дружить з вбудованим двигуном тем KVIrc і створює проблеми (наприклад білий текст на білому фоні).
Деякі користувачі все одно хочуть його використовувати і інколи ми перевіряємо чи розробники GTK вже докурили конопельку, тому ця опція дозволить ввімкнути двигун QGtkStyle.
Будь ласка не повідомляйте ні про які баги з темами якщо ви ввімкнули цю опцію: ми знаємо що воно зламане, але ніхто не буде це поправляти.
Інтерактивний режим
Система CMake також забезпечує режим інтерактивного конфігурування середовища перед компілюванням.
І знову, ми радимо збирання "out-of-source": збирання всіх фалів без засмічування теки з початковим кодом.
# mkdir release
# cd release
# ccmake ..
Тепер, коли ви знаходитесь в інтерактивному режимі, використайте інструкції з екрану для конфігурування середовища збирання.
Збирання
Цей крок простий :)
Перехрестіть пальці і виконайте:
# make
Якщо ваш make є не від GNU (наприклад під FreeBSD) використовуйте замість нього "gmake" .
Процес компілювання займе від 3-4 хвилин до годин залежно він можливостей комп'ютера та його завантаження.
Якщо у вас повільний ЦП але ви маєте кілька комп'ютерів в локальній мережі ви можете скористатись distcc для паралельного збирання.
після завершення компілювання виконайте:
# make install
Як і вище: використайе "gmake install" якщо ваш make не від GNU.
Це встановить програму в теку /usr/local/bin (якщо ви не вказали інше параметром -DCMAKE_INSTALL_PREFIX в правилах cmake), бібліотеки в /usr/local/lib (якщо ви не вказали інше параметром -DLIB_SUFFIX в правилах cmake) та спільні дані в /usr/local/share/kvirc.
Переконайтесь що /usr/local/lib є в списку файлу /etc/ld.so.conf , а якщо ні, то виконайте:
# ldconfig
Якщо ви вирішили використовувати підтримку KDE встановлення може встановити всі ці файли до вашого дерева $KDEDIR замість /usr/local.
В такому випадку не переймайтесь, оскільки KDE вимагає, щоб його тека з бібліотеками була в /etc/ld.so.conf
Збирання на OS X
Існує інструкція для збирання та встановлення для систем OS X. Вона розміщена в теці doc/ . Вона називається INSTALL-MacOS.txt
Збирання на Win32
Існує інструкція для збирання та встановлення для систем Win32. Вона розміщена в теці doc/ . Вона називається INSTALL-Win32.txt
Встановлення на рівні хакера
# mkdir release && cd release
# cmake ..
# make install
Створення пакунку KVIrc
CMake підтримує параметр DESTDIR.
Тому якщо ви хочете створити пакунок для вашого дистрибутиву, ви повинні вказати це на етапі "make install": результуючі файли будуть збережені у вказану теку.
Синтаксис наступний:
# make install DESTDIR=/tmp/kvirc-4.0
Після цього кроку виконайте правила, що вимагає ваш дистрибутив для створення пакунку.
Також ви можете спробувати експериметальну підтримку CPack, що включена в CMakeLists.txt для збирання пакунків: в цьому випадку зверніться до документації CPack.
Удачі!
# kvirc &
Ось і все, друзі.