Getting Started/Build/KDE4 (ru)

< Getting Started‎ | Build
Revision as of 18:00, 6 September 2007 by Powerfox (Talk | contribs)

Jump to: navigation, search


Contents

Getting_Started/Build/KDE4


Введение

В данном уроке рассказано, как построить KDE на Linux/BSD системах. Так же есть уроки по FreeBSD, Windows, Mac OS X и Solaris. В листингах команд везде используется bash.

noframe
 
Warning
По понедельникам высока вероятность проблем со сборкой. Это связано с тем, что большинство изменений в kdelibs вносятся в этот день. Dashboard сообщает о неожиданных сбоях. Приветствуется самостоятельное исправление нерабочих модулей.


Необходимое программное обеспечение

Следующие пакеты должны быть установлены для успешного завершения урока:

  • gcc и g++ с проекта gcc, предпочтительно версии 4.1 и выше
  • svn, клиет контроля за версиями (the subversion revision control client)
  • pkg-config
  • Заголовочные файлы и библиотеки для разработки X11, OpenGL (mesa-common-dev and libglu1-mesa-dev), libjpeg, libpng, libungif, libclucene, librdf, libxml2 и libxslt
  • Скрипт makeobj, являющийся частью kdesdk. Его можно установить вместе с kdesdk (в Debian пакет kdesdk-scripts) или идентичным пакетом, или же скачать отдельно с WebSVN
  • пакет shared-mime-info, используемый сейчас в KDE в качестве стандарта freedesktop MIME (the freedesktop MIME standard)
  • boost, требуется для kdebase; После компиляции и/или установки boost, для работоспособности cmake (FindBoost), следует добавить каталог с boost (содержащий подкаталог с заголовочными файлами) в CMAKE_INCLUDE_PATH или же задать переменную окружения BOOST_ROOT, указывающую на каталог с boost.

Ark Linux

В Ark Linux все необходимые для сборки пакеты можно установить следующим способом: apt-get install devel-core libxml-devel libxslt-devel bzip2-devel \ clucene-devel librdf-devel shared-mime-info xorg-Mesa-libGL-devel \ subversion boost-devel doxygen giflib-devel dbus-devel openssl-devel \ alsa-lib-devel kdesdk-scripts qt4-devel

Если вы предпочитаете графический интерфейс, то можете установить вышеперечисленные пакеты с помощью утилиты "Install Software" из Mission Control. После этого CMake, DBus и Qt будут установлены - пункты 5,6 и 7 можно пропустить.

Kubuntu и Debian

В Kubuntu 7.04 (Feisty) и Debian (Testing/Unstable) необходимое программное обеспечение можно установить с помощью sudo aptitude install build-essential cdbs debhelper cmake \ libxml2-dev libxslt1-dev libbz2-dev libclucene-dev librdf-dev \ shared-mime-info libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev \ libxext-dev libjpeg-dev libpng-dev subversion libsm-dev libxinerama-dev \ libxrender-dev libfontconfig-dev libboost-dev libxcursor-dev doxygen \ libungif4-dev libdbus-1-dev libgpgme11-dev libssl-dev libgpgme11-dev \ libasound2-dev kdesdk-scripts libpth-dev ssh


В Kubuntu 7.10 (Gutsy) следует добавить: sudo aptitude install dbus-x11

Чтобы задействовать всю функциональность системы документации (API documentation framework), вам нужно выполнить: sudo aptitude install graphviz

openSUSE

В openSUSE 10.2 и новее, пакеты можно установить, используя Zypper: sudo zypper install <package-name>

В более старых релизах можно использовать YaST: su yast -i <packagename>

Необходимые пакеты

Пакеты, которые нужно установить: xorg-x11-devel libxml2-devel kdesdk3 clucene-core-devel boost-devel libjpeg-devel liblrdf-devel libpng-devel libxslt-devel libredland-devel Mesa-devel giflib-devel subversion gcc gcc-c++ gmp-devel (необходимо для сборки kdesupport) strigi-devel (необходимо для сборки kdelibs) gpgme-devel (необходимо для сборки kdepimlibs)

Необязательные (Optional) пакеты

Ручную установку Qt 4.3, CMake 2.4.6 и DBus можно пропустить, добавив репозиторий openSUSE Build Service KDE4 в список источников установки.

Для openSUSE 10.2 и выше сделайте: sudo zypper service-add http://software.opensuse.org/download/KDE:/KDE4/openSUSE_10.2 KDE4-102

Для более старых версий SUSE Linux выполните: su installation_sources -a http://software.opensuse.org/download/KDE:/KDE4/[YOUR SUSE LINUX VERSION]

Теперь установите следующие пакеты (и их зависимости): cmake dbus-1-devel libqt4-devel

Чтобы задействовать всю функциональность системы apidox (apidox framework), вам нужен: graphviz

Бинарные пакеты CMake для openSUSE доступны на openSUSE build service

Gentoo

Ручная установка

Используя стабильные сборочные файлы (ebuilds), не забудьте обновить дерево портежей ("синькнуться"), прежде чем приступить к установке.

Нам нужно разрешить следующие сборочные файлы, замаскированные ключами: echo 'dev-util/cmake' >> /etc/portage/package.keywords echo 'dev-cpp/clucene' >> /etc/portage/package.keywords Необязательно: Если вы решили не использовать KDE qt-copy, то следует размаскировать Qt: echo 'x11-libs/qt' >> /etc/portage/package.keywords

А теперь необходимо замаскировать Clucene >= 0.9.16a. echo '>dev-cpp/clucene-0.9.16a' >> /etc/portage/package.mask

Удостоверьтесь, что для redland установлен USE-флаг berkdb, в противном случае nepomuk не будет работать.

  1. echo 'dev-libs/redland berkdb' >> /etc/portage/package.use

Далее приведён список необходимых пакетов, некоторые из которых могут быть уже установлены (их можно пропустить, добавив флаг обновления в emerge).

emerge -avu 'sys-devel/gcc' \

 'dev-util/subversion' \
 'dev-util/pkgconfig'  \
 'x11-base/xorg-x11' \
 'virtual/glut' \
 'media-libs/mesa' \
 'media-libs/jpeg' \
 'media-libs/libpng' \
 'media-libs/giflib' \
 'dev-cpp/clucene' \
 'dev-util/cppunit' \
 'media-libs/liblrdf' \
 'dev-libs/libxml2' \
 'dev-libs/libxslt' \
 'x11-misc/shared-mime-info' \
 'dev-libs/boost' \
 'dev-util/cmake' \
 'dev-libs/redland' \
 'sys-apps/dbus' \
 'sys-apps/hal'


Также может потребоваться выполнить emerge либо для 'kde-base/kdesdk', либо для kde-base/kdesdk-scripts'.

Необязательно:

Если вы решите использовать Qt4, входящий в Gentoo, вы можете установить (emerge) его следующим образом:

emerge -avu 'x11-libs/qt'

Если вы установили DBUS, CMAKE, QT и (возможно) HAL, то соответствующие секции можно пропустить.

Удачи!

Установка с помощью portage

Также пакеты KDE 4 можно установить напрямую с помощью emerge -a <packagename>

Получите всё необходимое на install layman и положите в оверлей KDE (содержащий экспериментальные ebuilds) layman -a kde После этого следует настроить USE-флаги, необходимые для KDE 4. И задать portage использование тестовых (экспериментальных) ebuilds вместо стабильных для KDE 3.

Таким образом, система портежей отследит все зависимости.

Подробная инструкция по сборке KDE 4 в Gentoo находится в статье KDE overlay wiki. Обсуждение ebuilds находится в теме о KDE 4 monolithic ebuilds.

Создание пользователя для разработки KDE 4

noframe
 
Note
Некоторые люди предпочитают создавать отдельного пользователя для KDE 4 (например, из-за старого бага, по ошибке удалявшего файлы) - инструкция, приведённая ниже, была написана, исходя из этого.

Однако, намного эффективнее делать всё из-под одного пользователя, см.

Повышение вашей продуктивности в KDE4 с помощью скриптов

, чтобы узнать больше.

Тем не менее, можно следовать инструкции, приведённой ниже, но не включайте никаких переменных окружения в .bashrc - задавайте их в отдельном файле, используемом при переключении к KDE 4.

Способ 1: Командная строка

useradd -m kde-devel passwd kde-devel

Способ 2: Использование KControl

Вместо выполнения команд, приведённых выше, можно использовать модуль управления пользователями в Центре управления KDE, если уже установлено KDE3.

Настройка окружения

Скопируйте файл ~/.bashrc обычного пользователя в домашний каталог пользователя kde-devel. Затем вставьте в ~kde-devel/.bashrc содержимое из примера файла .bashrc. Если у вас недоступна команда makeobj, то закомментируйте строку alias make=makeobj. Наверняка вам потребуется изменить путь, чтобы удостовериться, что он не включает kde3. Так же, если вы планируетесь заниматься разработкой KDE 4 приложения с помощью KDevelop, к команде cmake вы можете добавить параметр GKDevelop3 (чтобы CMake генерировала файлы проекта KDevelop, это поможет в будущем избежать пересборки, подробнее здесь). Чтобы выполнить данный скрипт, можно открыть новый сеанс bash или же выполнить source ~/.bashrc

Это обеспечит доступ к таким командам, как cmakekde, которые использованы в данном уроке, а так же гарантирует правильность путей для исполняемых файлов Qt, KDE и CMake.

Для получения большей информации, посмотрите урок Повышение вашей продуктивности в KDE4 с помощью скриптов.

Переключение к новому пользователя

Чтобы стать пользователем kde-devel наберите (не забудьте тире): ssh -X kde-devel@localhost

Настройка командной оболочки для разработки

В некоторых системах новый пользователь по умолчанию использует /bin/sh. Данный раздел можно пропустить, если в вашей системе это не так. Работа с /bin/sh может быть довольно неудобной, поэтому может потребоваться поменять оболочку на /bin/bash или любую другую. В Ark Linux /bin/sh по умолчанию bash, поэтому этот шаг можно пропустить.

Способ 1: Из-под пользователя kde-devel

Если невозможно изменить оболочку пользователя с помощью утилиты chsh (отсутствуют необходимые привилегии root'a), то можно попробовать изменить оболочку на /bin/bash, выполнив: chsh -s /bin/bash kde-devel

Способ 2: Из-под root'a

Если в системе присутствует приложение usermod, то нужно выполнить от имени root следующую команду: usermod -s /bin/bash.

Другой вариант - использовать утилиту vipw, чтобы, находясь под рутом, отредактировать файл /etc/passwd. Нужно отыскать в файле 'kde-devel', поменять в конце строки '/bin/sh' на '/bin/bash' и сохранить изменения и выйти.

Новая командная оболочка будет автоматически запущена, когда пользователь kde-devel снова войдёт в систему.

D-Bus

QtDBus и KDE работают с D-Bus версий 0.62 и >= 0.92. Версии 0.60 и 0.61 могут работать, но они не проверялись. Известно, что версии 0.90 и 0.91 не поддерживаются. Рекомендовано использовать версии старше 1.0 (по крайней мере 0.94), так что следует обновиться, если установленная версия не соответствует требуемой.

Данный раздел можно пропустить, если установлена свежая версия D-Bus или же обновление невозможно. Также, наверное, стоит пропустить секцию, в которой описано построение привязок (bindings), если вы не собираетесь собрать HAL (см. ниже)

Перед началом выполнения инструкций, удостоверьтесь, что установлены заголовочные файлы и библиотеки X11. Конфигурационный скрипт (строка 5 нижеприведённых инструкций) должен вывести:

Building X11 code:        yes

Инструкция

Ktip.png
 
Tip
Удостоверьтесь, что системное окружение настроено так, как было описано выше. Это необходимо для работы функций cs и cb.


cs # 'cs' явдяется bash функцией, щёлкните здесь, чтобы узнать больше
wget http://dbus.freedesktop.org/releases/dbus/dbus-1.0.2.tar.gz
tar -xvzf dbus-1.0.2.tar.gz
cd dbus-1.0.2/
./configure --prefix=$DBUSDIR --localstatedir=/var
make
sudo make install
sudo dbus-uuidgen --ensure
# Если вы будете собирать HAL, то нужно поставить привязку к glib 
cs # see above
wget http://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-0.74.tar.gz
tar -xvzf dbus-glib-0.74.tar.gz
cd dbus-glib-0.74/
./configure --prefix=$DBUSDIR
make
sudo make install


Что же происходит?

Сначала нужно войти в каталог с исходными кодами, принадлежащий пользователю kde-devel (строка 1); c freedesktop.org был скачан (строка 2) и распакован (строка 3) исходный код D-Bus. Затем после входа в появившийся каталог (строка 4) настроены параметры сборки с помощью скрипта configure (строка 5). После сборки (строка 6) и установки (строка 7) D-Bus с помощью утилиты dbus-uuidgen был установлен файл идентификации машины (machine identification file), позволяющий автоматически запускать D-Bus одновременно с сессией рабочего стола (строка 8).

При выполнении последних двух команд требуются права на запись в /var. Если в системе отсутствует команда sudo, то можно использовать su, например, su -c "make install". Сбока привязки к glib аналогична вышеописанному.

CMake

Раздел можно пропустить при наличии установленной версии CMake >=2.4.5 Можно использовать бинарные пакеты с сайта CMake. Также доступны пакеты для различных дистрибутивов.

Инструкция

cs # 'cs' является bash функцией, щёлкните здесь, чтобы узнать больше
wget http://www.cmake.org/files/v2.4/cmake-2.4.6.tar.gz
tar -zxf cmake-2.4.6.tar.gz
mkdir cmake-build
cd cmake-build
../cmake-2.4.6/bootstrap
make
sudo make install

Что же происходит?

Сначала нужно войти в каталог с исходными кодами, принадлежащий пользователю kde-devel, скачать (строка 2) и распаковать (строка 3) исходники Cmake. Для сборки CMake нужно создать каталог (строка 4), войти в него (строка 5), запустить скрипт пересборки CMake (CMake bootstrap script) для настройки параметров сборки (строка 6) и затем выполнить сборку (строка 7) и установку (строка 8) из-под рута.

Если в системе отсутствует команда sudo, то можно использовать su, например, su -c "make install".

Qt

Теперь необходимо собрать Qt4 из репозитория исходных кодов (source repository) KDE4. KDE можно собрать с помощью Qt 4.3. Qt 4.2 и более ранние версии не поддерживаются. Следует использовать копию с серверов KDE Subversion (кдешная копия - это официальный пакет Qt + срочно исправленные баги). В некоторых дистрибутивах, таких, как Debian, имеется версия Qt с патчами из svn-репозитория KDE. Поэтому можно схитрить и использовать Qt с вашего дистрибутива.

Инструкция

cd
svn checkout svn://anonsvn.kde.org/home/kde/trunk/qt-copy
cd qt-copy
./apply_patches
./configure -qt-gif -no-exceptions -debug -fast \
 -prefix $QTDIR -nomake examples -nomake demos
make -j2
# если не требуется установка, то следует просто удалить объектные файлы
# для экономии дискового пространства
if [ $QTDIR = `pwd` ]; then \
find . -name '*.o' -delete ; \
else make install; fi;

Что же происходит?

Сначала нужно войти в каталог с исходными кодами, принадлежащий пользователю kde-devel, (строка 1) и скачать исходный код c репозитория KDE, используя svn (строка 2). Затем перейти в каталог qt-copy (строка 3) и запустить скрипт, устанавливающий патчи, скаченные вместе с qt-copy (строка 4).

После установки патчей следует настроить параметры сборки с помощью скрипта configure (строки 5-6). Объяснение различных опций (параметров к ./configure) можно найти в файле qt-copy/README.qt-copy. Наконец, осуществляется сборка (строка 7). Примеры и demo приложения можно собрать отдельно.

Обратите внимание, что установка не требует прав суперпользователя, так как Qt устанавливается локально в $QTDIR. В любом случае установка требуется, только если $QTDIR отличается от $HOME/qt-copy, что не имеет значения, если чётко придерживаться приведённых инструкций.

Устранение неполадок

Если появляется ошибка "X11/Xlib.h: No such file or directory", то следует установить пакет xorg (название в различных системах может незначительно различаться, например, в Kubuntu имя пакета xorg-dev)

Если во время конфигурирования появляется ошибка, связанная с отсутствием определений (missing defines), нужно проверить значение $QMAKESPEC. Некоторые дистрибутивы настраивают переменную так, чтобы она указывала на установленный системой Qt. Если unset QMAKESPEC решает проблему, то это следует прописать в скрипт ~/.bashrc

Ошибка ".pch/debug-shared/QtCore" связана с тем, что Qt-4.3 разрешает системе использование прекомпилированных заголовочных файлов, если gcc поддерживает их, но по неизвестной причине это не работает. При использовании distcc нужно сконфигурировать qt с параметром -no-pch. При использовании icecream следует обновить приложение через svn.

Попробуйте запустить любую Qt программу, например, assistant. Учтите: может потребоваться запуск xhost +local:kde-devel от имени обычного kde3 пользователя, чтобы запустить это приложение. Если оно падает на QSpanData::adjustSpanMethods, то проблема связана со стилем oxygen. Для решения проблемы следует удалить lib/kde4/plugins/styles/kstyle-oxygen.so и lib/kde4/plugins/styles/oxygen.so, если они находятся в префиксе установки KDE (KDE install prefix).

HAL

{{tip|Чтобы проверить, есть ли org.freedesktop.hal, можно использовать qdbusviewer. Если его нет, то нужна более свежая версия hal. Если org.freedesktop.hal всё же есть, то наверняка вам не нужно и не захочется переустанавливать hal. Если вам требуется собрать новую версию HAL, то велик шанс, что потребуется собрать некоторое другое ПО, что может оказаться непростой задачей. Так как это касается только старых дистрибутивов, инструкции вынесены в отдельную статью


kdesupport

noframe
 
Warning
Если Вы перешли к этому разделу, не прочитав Настройка окружения, то инструкция, приведённая ниже, не будет работать. В инструкциях нет ошибок (The recipes are not in error); cs и cb не являются опечатками. Окружение должно быть правильно настроено, чтобы инструкции сработали.


Есть несколько библиотек, требуемых модулем kdesupport: Strigi и Soprano нужны для метаданных файлов (file metadata) и поиска, QImageBlitz, используемый kdebase для обработки изображений, eigen для визуальных эффектов в таких приложениях, как Kalzium, taglib - для музыкальных плейеров и qca - для выполнения некоторых криптографических задач.

Strigi имеет несколько своих зависимостей: для установки понадобятся библиотеки и заголовки libz, libbz2, openssl (libcrypto или libssl), libclucene (=0.9.16; версия 0.9.17 не работает) и libxml2 ( либо libexpat).

Инструкция

cs # cs не опечатка
svn checkout svn://anonsvn.kde.org/home/kde/trunk/kdesupport/
cd kdesupport
cmakekde

Что же происходит?

Сначала нужно войти в каталог с исходными кодами (строка 1). Затем скачать с помощью svn исходный код kdesupport (строка 2), войти в появившийся каталог ~/kde/src/kdesupport (строка 3) и начать сборку (строка 4). По окончании будет выполнен вход в каталог kdesupport.

Устранение неполадок

При получении ошибки:

  cmakekde: command not found

следует вручную запустить команду cmake внутри каталога kdesupport. Если это не помогло, то ошибку надо искать в bashrc.

При получении ошибки:

CMake Error: This project requires some variables to be set,
and cmake can not find them.
Please set the following variables:
LIBXML2_INCLUDE_DIR (ADVANCED)

следует установить пакеты разработки libxml2.

При получении ошибки:

CMake Error: Could NOT find REDLAND

нужно поставить librdf из Redland. Если в дистрибутив не включён пакет then you need librdf from the Redland.librdf, его можно загрузить с http://download.librdf.org/source/ и установить.

((Gentoo users: ebuild для librdf - dev-libs/redland).


При получении ошибки:

Fetching external item into 'kdesupport/admin'
Error validating server certificate for 'https://...'

cм. Работа с Subversion-репозиторием KDE

При получении ошибки:

FILE cannot create directory: /usr/lib[64]/qt4/plugins/crypto. Maybe need administrative privileges.
- - -
make: *** [install] Error 255

следует проверить корректность путей, прописанных в файле .bashrc. Так же подобная ошибка может возникать при использовании уже установленной в системе версии qt4 (и пропуске раздела об установке Qt). Либо поставьте qt-copy, либо выполните "sudo make install". После "sudo make install" следует сменить владельца на вашего пользователя для некоторых подкаталогов ~/kde, измененённых при использовании sudo (например, "sudo chown -R kde-devel:kde-devel ~/kde").

kdelibs

Теперь можно приступить к сборке основных библиотек KDE

Инструкция

cd .. (только если вы по-прежнему в ~/kde/build/kdesupport вместо ~/kde/build/)
cs # cs не опечатка
mkdir KDE && cd KDE
svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs
cd kdelibs
cmakekde

Что же происходит?

Сначала мы входим в каталог с исходными кодами (строка 1) и создаём папку KDE, сразу же входя в неё (строка 2). Затем загружаются текущие исходники kdelibs с помощью subversion (строка 3). Входим в появившийся каталог ~/kde/src/KDE/kdelibs (строка 4) и запускаем сборку (строка 5). По окончании будет выполнен вход в каталог сборки kdelibs.

Ktip.png
 
Tip
В вашей системе могут отсутствовать некоторые заголовочные файлы и/или соответствующие им библиотеки. Конкретные список неудовлетворённых зависимостей можно найти в выводе cmakekde. Перед сборкой компонентов KDE можно предварительно выполнить cmake $KDE_SRC/KDE/MODULE_NAME.)


Дополнительные модули CMake для KDE

В kdelibs/cmake/modules/ находятся дополнительные модули CMake, необходимые для сборки KDE4 приложений. Они будут автоматически установлены, после инсталляции kdelibs.

Устранение неполадок

При наличии проблем во время сборки kdelibs в первую очередь необходимо проверить наличие и работоспособность необходимого программного обеспечения. Другие рекомендации по устранению неполадок:

  • Если cmakekde завершается сообщая о том, что требуется выходной каталог для сборки (CMake requires an out of source build directory), нужно удалить

~/kde/src/KDE/kdelibs/CMakeCache.txt и попробовать снова.

Если эта же ошибка cmakekde опять повторяется, но можно попробовать исправить её так:

cd
cmake -DCMAKE_INSTALL_PREFIX=$KDEDIR \
-DCMAKE_BUILD_TYPE=debugfull \
-DKDE4_BUILD_TESTS=ON \
~/kde/src/KDE/kdelibs
make
make install
  • При получении ошибки "Please create a separate build directory and run 'cmake path_to_kdelibs [options]' there." следует перейти в директорию сборки до запуска cmakekde (например, cs KDE/kdelibs && cb && cmakekde). Если ошибка повторилась, запустите 'svn status' в каталоге kdelibs и удалите все файлы, помеченные '?'.
  • Если не найден Qt или найдена неподдерживаемая версия, убедитесь, что qmake c нужной версии Qt является первым в пути (in the path).
  • Если ошибка продолжает появляться, то можно попробовать запустить CMake c опцией --keep-going.
  • Ошибка "Could NOT find GIF" означает, что нужно установить библиотеку libungif.
  • Изменение настроек Qt-4.3: при получение ошибки линковки kjsembed, связанной с QScriptEngine, отредактируйте CMakeCache.txt в kdelibs: удалите строки, в которых есть QT_QTUITOOLS_LIBRARY, а затем снова выполните make (эта статическая библиотека имеет новую зависимость, в результате чего выполняется код cmake, который её обрабатывает).
  • При получении ошибки CMake Error: KDE Requires Qt to be built with SSL support

следует установить пакет openssl-devel, удалить файл CMakeCache.txt и пересобрать Qt.

  • Ошибка kdelibs/kimgio/ico.cpp:188: undefined reference to `QImage::jumpTable()' означает, что Qt скомпелирован без поддержки Qt3 (линковка с установленным Qt3 не сработает)

kdepimlibs

После установки kdelibs и перед сборкой kdebase, следует установить kdepimlibs.


Инструкция

cs KDE # cs не опечатка
svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs
cd kdepimlibs
cmakekde

Что же происходит?

Сначала нужно перейти в каталог с исходными кодами KDE (строка 1), скачать исходники kdepimlibs с помощью subversion (строка 2) и потом перейти в появившийся каталог ~/kde/src/KDE/kdepimlibs (строка 3). Затем запустить сборку (строка 4). По окончании будет выполнен вход в каталог сборки kdepimlibs.

Устранение неполадок

При наличии проблем компиляции kdepimlibs:

  • Утилита cmakekde может требовать более позднюю версию библиотеки gpgme. Она доступна на сайте:

http://www.gnupg.org/(en)/download/index.html - учтите, что для сборки gpgme также потребуется libgpg-error, доступная на том же сайте. Обе библиотеки устанавливаются с помощью "./configure" (для gpgme следует выполнить с параметром -with-gpg-error-prefix), "make" и "sudo make install". Может потребоваться перезаписать уже существующий файл "/usr/bin/gpgme-config" для более новой версии, чтобы kdepimlibs нашла более новую версию библиотеки.

  • if you get the error "cannot find -lpth" from /usr/bin/ld, then make sure you have The GNU Portable Threads (libpth-dev for Debian).
  • Ошибка "cannot find -lpth", выведенная /usr/bin/ld, может быть связана с отсутствием GNU Portable Threads (в Debian - libpth-dev).

kdebase

kdebase состоит из трёх частей:

  • apps (приложения)
Эта часть содержит приложения, например Dolphin и KWrite.
  • runtime (среда выполнения)
Содержит всё необходимое для приложений во время исполнения (например значки). Эта часть необходима для работы любого приложения KDE, поэтому её необходимо обязательно собрать и установить.
  • workspace (рабочая среда)
Включает в себя ПО, специфичное для KDE, например Plasma и оконный менеджер. Большая часть зависит от X11. Требуется только для того, чтобы собрать полный рабочий стол KDE.

Инструкция

cs KDE # cs не опечатка
svn checkout svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase
cd kdebase
cmakekde

Устранение неполадок

При наличии проблем компиляции kdebase:

  • Проверьте наличие заголовочных файлов libxss headers. (Обычно появляется ошибка "undefined references on xscreensaver objects", связанная с отсутствием заголовков для данной библиотеки).
  • Команда which meinproc должна выдавать /home/kde-devel/kde/bin/meinproc
  • Если cmakekde не находит kdepimlibs, отредактируйте файл $KDE_BUILD/KDE/kdebase/CMakeCache.txt, вручную прописав KDEPIMLIBS_INCLUDE_DIR:PATH=$KDE_BUILD/kdepimlibs
  • При получении ошибки "Please set the following variables: X11_XTest_LIB (ADVANCED)", установите пакеты разработки для Xtst. В некоторых системах этот пакет отделён от xext и называется x11proto-xext-dev или libxtst-dev. Также может потребоваться удалить CMakeCache.txt в каталоге сборке после установки пакета.
  • То же самое касается и "X11_Xinerama_LIB (ADVANCED)", но в данном случае следует установить пакет разработки для xinerama.
  • При наличии ошибки, связанной с отсутствием X11_Xrandr_LIB, нужно установить пакет разработки для libxrandr (libxrandr-devel в дистрибутивах Ubuntu)
  • Если появляется ошибка "Please set the following variables: FONTCONFIG_INCLUDE_DIR, FONTCONFIG_LIBRARIES (ADVANCED)", нужно установить заголовочные файлы libfontconfig.
  • При наличии ошибки "CMake Error: This project requires some variables to be set, and cmake can not find them. Please set the following variables: KMETADATA_LIBRARIES" следует установить soprano из kdesupport и пересобрать kdelibs.
  • При получении ошибки "‘XserverRegion’ does not name a type" удостоверьтесь, что установлены заголовочные файлы libxcomposite (libxcomposite-dev в Ubuntu).
  • Для устранения ошибки "CMake Error: This project requires some variables to be set, and cmake can not find them. Please set the following variables: QT_QTOPENGL_LIBRARY (ADVANCED) " попробуйте отредактировать CMakeCache.txt и переменную QT_QTOPENGL_LIBRARY:FILEPATH=/home/kde-devel/qt-copy/lib/libQtOpenGL.so
  • Получив ошибку "KDE4_INSTALL_HANDBOOK() is deprecated. Remove it please. Now all is done in KDE4_CREATE_HANDBOOK", либо найдите файлы, содержащие строку, вызывающую ошибку, и закомментируйте её вручную, либо из каталога ~/kde/src/KDE/kdebase запустите скрипт

macros_corrector.sh. Он удалит строки, содержащие «kde4_create_handbook» со всех файлов, где они встречаются.

Получение локальной документации по API

Хотя документация по API KDE доступна онлайн на api.kde.org, иногда удобно иметь её на своём компьютере, например, чтобы использовать KDevelop для просмотра документации или если невозможно быть всё время в сети.

Учтите, что загрузка документации по API может занять несколько часов, а сама документации занимает почти полгигабайта дискового пространства.


Инструкция

cs KDE/kdelibs # cs не опечатка
$KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \
--doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .

Повторите для всех модулей:

cd <имя модуля>
$KDE_SRC/KDE/kdelibs/doc/api/doxygen.sh \
--doxdatadir=$KDE_SRC/KDE/kdelibs/doc/common .

Другой, наверное, более простой способ - загрузить Doxyfile. Затем перейти в каталог, куда следует поместить документацию и выполнить команду:

% doxygen /path/to/Doxyfile Затем проверить содержимое файла doxygen.log на наличие ошибок и предупреждений. Документация будет установлена в подкаталог apidocs

Не забывайте обновляться

Чтобы иметь последние обновления kde4, нужно периодически обновлять все установленные модули. Так как понедельник - день внесения множества изменений в kdelibs, то вторник является лучшим днём для этого. Для каждого модуля следует выполнить svn up и make.


Например: cs kdesupport # cs не опечатка svn up cb # cb не опечатка make -j2 VERBOSE=1 && make install

Общий способ устранения неполадок

С течением времени, после нескольких выполнений команды svn up, может оказаться, что некоторые утилиты, используемые в системе сборки KDE, изменили формат вывода. Например, файлы kcfg используются kconfig_compiler для создания конфигурационных диалогов. CMake не в состоянии отследить подобные изменения, что приводит к сбою компиляции. Обходной путь - использование принуждённого обновления всех подобных файлов:

find $KDE_SRC/KDE/kdebase -name "*.kcfg" | xargs touch

То же самое касается ui файлов, созданныз Qt Designer.

Готово!

Теперь Вы готовы к сборке образом других модулей из svn (выполняется абсолютно аналогично), запускать и тестировать KDE4 или же писать свои собственные патчи и приложения.

Чтобы узнать, как запускать KDE4 приложения и использовать KDevelop для работы с ними, см. урок Настройка KDE4 для разработки


KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal