Gentoo KDE SVN Overlay был запущен больше года назад, когда в KDE4 для пользователя ещё практически ничего интересного и не было. Всё это время создатели оверлея вели замечательную работу по его поддержке, и в конце концов к выходу KDE4 официально присоединились к команде разработчиков Gentoo. При использовании этого оверлея вы с одной стороны всегда можете получить все самые последние изменения, а с другой — вам не надо ничего компилировать и устанавливать вручную. Вы просто используете ваш пакетный менеджер, как ни в чём не бывало, и у вас не возникнет проблем с отслеживанием зависимостей или удалением пакетов. Устанавливать что-либо в обход менеджера пакетов — это плохо. А когда дело касается такой большой части системы, как KDE — то это ужасно.

Подготовка

В первую очередь, конечно же, необходимо подключить сам оверлей. Для этого удобнее всего использовать layman: если вы прочитали документацию по оверлеям и корректно установили layman, то вам достаточно набрать layman -a kde, и оверлей подключен.

После этого вы также наверняка захотите добавить строчку PORTAGE_ECLASS_WARNING_ENABLE="0" в make.conf, иначе Portage будет постоянно ругаться о переопределённом eclass’е.

Также советую установить в переменной ESCM_LOGDIR путь к каталогу, в котором будут сохраняться короткие лог-файлы, из которых вы потом сможете узнать, какая ревизия какого пакета у вас установлена. Логично будет, если это будет один из подкаталогов в /var/log/portage.

Следующий шаг: размаскирование пакетов и установка USE-флагов. Я всегда рекомендую а) не искользовать ~arch в make.conf и б) использовать каталоги в /etc/portage.

Чтобы разкейвордить нужные пакеты, достаточно выполнить команду

cp /usr/portage/local/layman/kde/Documentation/package.keywords.example.live /etc/portage/package.keywords/kde-svn

(ещё раз обращаю внимание: я предполагаю, что ваш /etc/portage/package.keywords — это каталог)

В прочем, это утверждение несколько оптимистично, пару-тройку пакетов вам в этот список ещё придётся добавить. Лично я добавил следующие строчки:

kde-base/qimageblitz **
media-sound/moodbar
=app-crypt/qca-1.0-r3

Также вам придётся размаскировать qca:2. Скопируйте эти строчки в файл /etc/portage/package.unmask/kde-svn:

app-crypt/qca:2
app-crypt/qca-cyrus:2
app-crypt/qca-gnupg:2
app-crypt/qca-logger:2
app-crypt/qca-ossl:2
app-crypt/qca-pkcs11:2

(любопытствующие могут почитать обсуждение Gentoo Bug 129536 “app-crypt/qca slotting and bumping”)

Далее необходимо установить правильные USE-флаги согласно указаниям в файле /usr/portage/local/layman/kde/DONOTREADME (список начинается после строчки KDE 4 SVN ebuilds use flags).

На самом деле флаг debug не является обязательным, но если вы собираетесь репортить баги на KDE Bugzilla, то лучше его всё-таки включить. Кстати, этот список не полон, у меня установка несколько раз прерывалась с сообщениями вроде:

This package requires ‘x11-libs/qt:4′ to be built with the following USE flags: ‘accessibility* dbus gif jpeg opengl png qt3support ssl zlib’

This package requires ‘net-dns/avahi’ to be built with the following USE flags: ‘mdnsresponder-compat

This package requires ‘media-libs/xine-lib’ to be built with the following USE flags: ‘xcb’

Так что обновляйте make.conf и/или package.keywords соответственно.

Ещё один совет: используйте опцию --buildpkg. Изменения в SVN вносятся постоянно, и не все могут вам понравиться, так что иногда вы захотите иметь возможность откатиться на более старую версию, а с бинарными пакетами это сделать проще и быстрее всего. Естественно, это значит, что при каждой установке нужно сохранять пакеты в отдельном каталоге (для этого достаточно переопределить переменную PKGDIR). Можно использовать вот этот скрипт (назовём его emerge-live):

#/bin/bash
DATE=`date +"%m%d"`
export PKGDIR="/root/packages/$DATE"
mkdir -p $PKGDIR
emerge --buildpkg $*

Сохраните его где-нибудь в $PATH.

Теперь можно и запустить emerge-live kde, и надеяться на успех. У меня первая попытка довольно быстро кончилась неудачей, ибо в тот день кто-то из разработчиков напортачил с конфигурационными файлами CMake, и ни у кого, кто обновился в этот день, kdelibs не компилировались. Такова уж природа SVN-пакетов. На следующий день ошибка была исправлена, и я всё-таки начал ставить нужные пакеты (на самом деле эту проблему можно обойти, устанавливая не самую последнюю последнюю ревизию SVN-пакета, как объяснено ниже)

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

Официально рекомендуется для тестирования KDE4 создать отдельного пользователя. Но поскольку многие уже не только тестируют KDE, но и окончательно на него перешли, многие этому совету не следуют.

Конфигурация KDE и всех входящих в него программ хранится в каталоге ~/.kde. Точнее, ~/.kde — это симлинк на ~/.kde3.5, ~/.kde4 или ~/.kdesvn, который создаётся при запуске оболочки. Возможно, вы захотите скопировать каталог ~/.kde3.5 в каталог ~/.kdesvn — официально это не рекомендуется, но я ещё не слышал, чтобы у кого-то что-то сломалось из-за этого. В любом случае: никогда не пытайтесь одновременно запустить оболочки KDE 3.5 и KDE4, и никогда не допускайте того, чтобы KDE4-программы пытались изменить настройки в ~/.kde3.5.

В остальном всё как обычно, после установки вы сможете запускать сессию KDE 3.5 или KDESVN. Для запуска KDE4-программ из KDE 3.5 вы можете воспользоваться этим советом

Обновление

Изменения в SVN вносятся постоянно, однако, с точки зрения пакетного менеджера версия пакета остаётся прежней. Поэтому обновлением SVN-пакетов необходимо управлять отдельно. Я использую для этого скрипт updatesvn. По ссылке вы найдёте два файла: updatesvn необходимо положить куда-нибудь в $PATH, а updatesvn.conf в /etc/updatesvn/. Откройте updatesvn.conf и в переменной EMCMD пропишите emerge-live. Теперь чтобы обновить все «живые» пакеты, в которых произошли изменения со времени последней установки, запустите updatesvn all (на самом деле поддерживаются также пакеты, обновляемые по git, cvs и т. д.).

В updatesvn.conf можно также определить наборы приложений: на пример, в переменную KDE занести список всех KDE-пакетов, тогда updatesvn KDE обновит не все пакеты, а только указанный набор. Я для себя определил этот список вот так:

KDE="kdelibs kdepimlibs kdegames kdegraphics \
    kdebase kdeartwork kdepim kdetoys kdenetwork kdeedu kdeadmin  \
    kdeutils kdemultimedia amarok"

Обратите внимание: если вы удалили какое-либо приложение, то вам также необходимо удалить соответствующий каталог в /usr/portage/distfiles/svn-src (или git-src, cvs-src), иначе updatesvn all будет пытаться установить его опять.

Установка необходимой ревизии

Если вы не хотите устанавливать текущую сборку, но точно знаете, какая ревизия вам нужна, то перед запуском emerge установите в значении переменной окружения ESVN_REVISION нужный номер ревизии. Также вы можете задать любое значение переменной ESVN_OFFLINE, если при перекомпилировании пакета не хотите синхронизироватсья с SVN-репозиторием разработчиков.

Дополнительные оверлеи

Вот в этом оверлее вы найдёте несколько приложений, которые по различным причинам отсутствуют в genkdesvn. А в этом собрано несколько дополнительных интересных виджетов для Plasma.