Getting Started/Build/KDE4/FreeBSD (ru)

From KDE TechBase


Данная страница ориентирована на сборку KDE версии trunk для FreeBSD. Для того чтобы использовать KDE под FreeBSD последней модели -- просто используйте Версию из коллекции порторв -- подробности см. по адресу FreeBSD Wiki.

Порты, необходимые для сборки

  • devel/boost-python (for pimlibs)
  • devel/cmake
  • devel/dbus
  • devel/git
  • devel/subversion
  • graphics/libungif (for libs)
  • misc/shared-mime-info (for libs)
  • multimedia/libxine (for base-or config with KDE4_DISABLE_MULTIMEDIA)
  • security/gpgme (for pimlibs)
  • textproc/libxslt
  • textproc/redland (for support/soprano)
  • x11/xorg
  • x11-toolkits/shared-desktop-ontologies

Отличия от традиционной сборки

На странице сборки KDE4 версии trunk делаются некоторые предположения, относительно вашего окружения. Учтите, что FreeBSD-шный dbus и cmake из коллекции портов должны нормально работать (так-что эту часть мы опустим).

Итогда, сбрка с помощью make может быть неудачной, во время некоторых модулей. Вместо него следует использовать gmake.

Использование kdesrc-build

Для сборки под FreeBSD существует специальный скрипт сборки kdesrc-build. В случае возникновения ошибок при сборке qt-copy или библиотек, смотрите список проблем и возможных решений ниже, и продолжайте сборку с помощью kdesrc-build.

Ошибки компиляции qt-copy

Не удается собрать qt-copy, хотя Qt4 установлен из коллекции портов.

Иногда, по разным причинам, система конфигурирования вставляет значение -I/usr/local/include (которое содержит путь до заголовков qt4) в обычную переменную CXXFLAGS. Учтите, что переменная окружения INCPATH для путей поиска заголовков, тоже должна содержать -I/usr/local/include. Отличия в компилируемых строках; CXXFLAGS's используется в первую очередь, в то время как пути содержащиеся в INCPATH сортируются согласно очередности локальной сборки. You need to go into the directory where the build is failing (use the previous lines before the error message), and open the Makefile. You should see the the -I/usr/local/include line in the CXXFLAGS line, and you can safetly remove it IF there is a -I/usr/local/include line in INCPATH. This seems to usually happen in build_dir/qt-copy/src/plugins/sqldrivers/psql/Makefile

My build of qt-copy is failing in qatomic_x86_64.h on my 64bit system.

This is a GCC3 issue with 64-bit systems, so FreeBSD 7.x and later shouldn't be affected.

See Trolltech's bugzilla for a description of this problem. It's an issue with gcc3 and 64bit systems, with a particular optimization. Possible solutions described there include "To work around this bug, recompile qstylesheetstyle.cpp with removing -O2, or add the -fno-gcse compiler option."

Errors compiling kdesupport

System-wide Qt4 keeps being found instead of qt-copy

Sometimes, /usr/local/bin/qmake-qt4 insists on being found instead of qt-copy's qmake, which in turn makes cmake use the system-wide Qt during compilation. If everything else fails, you can pass -DQT_QMAKE_EXECUTABLE=/your/path/qmake to cmake.

Cannot link to polkit-dbus

If all polkit-related ports are correctly installed and the error persists, you most likely need to export LIBRARY_PATH and include /usr/local/lib in it.