# 13. Работа с пакетами KDE

Создание пакетов приложений KDE в Ubuntu управляется командами Kubuntu и MOTU. Связаться с командой Kubuntu можно через список рассылки Kubuntu и Freenode IRC-канал `#kubuntu-devel`. Дополнительная информация о разработке Kubuntu находится на вики-странице Kubuntu.

Наша работа с пакетами следует практике команды Debian Qt/KDE и команды Debian KDE Extras. Большинство наших пакетов являются производными от пакетов этих команд Debian.

## 13.1. Политика создания патчей

Kubuntu добавляет патчи в приложения KDE, только если они исходят от оригинальных авторов, либо если они были отправлены в upstream и есть уверенность в их скором принятии, либо если мы обсудили проблемы с разработчиками KDE.

Kubuntu не меняет фирменного оформления пакетов, кроме случаев, когда этого требует апстрим (например, логотип в верхнем левом углу меню Kickoff) или для упрощения (например, удаление показываемых при запуске заставок).

## 13.2. debian/rules

Пакеты Debian включают некоторые дополнения к обычному использованию Debhelper. Они хранятся в пакете `pkg-kde-tools`.

Пакеты, использующие Debhelper 7, должны добавить опцию `--with=kde`. Это позволит убедиться в использовании правильных флагов сборки и опций, таких как обработка заданий kdeinit и файлов перевода.

    %:
        dh $@ --with=kde

Некоторые новые пакеты KDE используют систему `dhmk`, альтернативу `dh`, созданную командой Debian Qt/KDE. Прочесть о ней можно в /usr/share/pkg-kde-tools/qt-kde-team/2/README. Использующие её пакеты будут `включать /usr/share/pkg-kde-tools/qt-kde-team/2/debian-qt-kde.mk` вместо запуска `dh`.

## 13.3. Переводы

Переводы пакетов из репозитория main импортируются на Launchpad и экспортируются с Launchpad в языковые пакеты Ubuntu.

Итак, каждый KDE-пакет в main должен создавать шаблоны переводов, включать оригинальные переводы и обрабатывать переводимые строки в `.desktop`-файлах.

Для генерации шаблонов переводов пакет должен содержать файл `Messages.sh`; если его там нет, обратитесь в апстрим. Проверить его работу можно, выполнив сценарий `extract-messages.sh`, который должен создать один или несколько файлов `.pot` в каталоге `po/`. В процессе сборки это будет сделано автоматически, если вы используете опцию `--with=kde` для `dh`.

Апстрим обычно также помещает файлы перевода `.po` в каталог `po/`. Если их там нет, проверьте, не находятся ли они в отдельных языковых пакетах апстрима, таких как языковые пакеты KDE SC. Если они в отдельном языковом пакете, Launchpad нужно будет объединить их вручную, свяжитесь для этого с dpm.

Если пакет перемещён из universe в main, его следует перевыгрузить перед импортом переводов на Launchpad.

Файлы `.desktop` также требуют перевода. Мы добавили патч к KDELibs для чтения переводов из `.po`-файлов, указывающих на строку `X-Ubuntu-Gettext-Domain=`, добавляемую к файлам `.desktop` во время сборки пакета. Файл .pot для каждого пакета генерируется во время сборки и .po-файлы необходимо скачать из апстрима и включить в пакет или в наши языковые пакеты. Список .po-файлов, которые нужно скачать из репозиториев KDE, находится в `/usr/lib/kubuntu-desktop-i18n/desktop-template-list`.

## 13.4. Библиотечные символы

Библиотечные символы хранятся в файлах `.symbols`, для того чтобы при появлении новых версий не было отсутствующих символов. KDE использует библиотеки C++, которые немного отличаются от библиотек C. Команда Debian Qt/KDE имеет скрипты, обрабатывающие это. Смотрите страницу Working with symbols files для подробностей по созданию этих файлов и поддерживанию их в актуальном состоянии.