1. Использование альтернатив
Создаём файл с описанием предоставляемой альтернативы в каталог /etc/alternatives/packages.d/ примерно так:
Не забываем записать
и 2. pkg-config
Почему в pkg-config отключена рекурсия (особенность сборки в ALT). Если программа не линкуется с какой-либо библиотекой, то весьма вероятно, что это ошибка в сборке библиотеки – библиотека использует функции из других библиотек, но с ними не слинкована. Ошибка эта практически везде, кроме как в ALT Linux прикрыта стандартным поведением pkg-config.
В качестве заглушки можно вписать 3. MIME-типы
Файлы информации о MIME-типах.
1. Если в пакете есть файлы /usr/share/mime/packages/*.xml, то при его установке, удалении, обновлении необходимо обновить и кеш базы mime-типов с использованием в spec-файле макросов
То есть в спеке должны быть секции:
И указаны зависимости: 2. Файлы из каталога %_datadir/mime-info/* не используется GNOME-программами, которые получают mime-информацию из пакета shared-mime-info. Тем не менее эти файлы используются рядом других программ (например, KDE), так что их тоже надо паковать. При этом пакет не получает никаких дополнительных зависимостей.
3. Для KDE определения типа файла задаётся в /usr/share/mimelnk/, например: 4. Файлы schemas
При сборке в пакете установку schemas надо отключать:
это рекомендуется вместо конструкции В спеке должны быть секции:
Образец оформления секции %files:
В зависимостях пакета должно быть: 5. Файлы scrollkeeper
Нельзя упаковывать каталог и файлы из %_localstatedir/scrollkeeper, если они получаются при сборке, их надо удалить командой
В спеке должны быть секции:
В зависимостях пакета должно быть: Если %make_install вызывает scrollkeeper-update и сборка прерывается по ошибке – перед %make_install нужно сделать export OMF_DIR=%buildroot%_localstatedir/scrollkeeper 6. Файлы локализации%find_lang вызывается в секции %install
Для программ GNOME указывается: При этом find-lang кроме файлов переводов в %_datadir/locale ищет файлы справки Гном в %_datadir/gnome/help и .omf файлы в %_datadir/omf
Поэтому не нужно указывать в секции %files каталоги с locale (переводами), а также
Для программ KDE указывается:
Далее секция %files оформляется следующим образом: %find_lang, являющийся скриптом, имеет и другие параметры, делающие его более гибким. 7. Файлы менюПосле перемещения в alt-docs необходимо совместить данный раздел с файлом ftp://ftp.altlinux.org/pub/people/zerg/menu/menu-packaging-howto-current.txt Файл меню либо создаётся непосредственно заданием его содержимого, либо формируется. Перевод строк, содержащихся в меню, содержится в пакете menu. Формат файла меню частично описан здесь). На основе файла меню, устанавливающегося в /usr/lib/menu, генерируются меню для всех оконных менеджеров, установленных в системе.
Пример того, как обычно в спеке создают файл меню: Если есть файл в /usr/share/applications, то menu-файл для этого пункта не нужен.
Устарело:
При использовании этого скрипта в пакете должна быть указана зависимость:
Каталог для файлов меню обычно создают командой:
Созданный файл меню устанавливается в каталог %_menudir. При установке или удалении пакета меню должно переформироваться, для этого в спеке должны быть секции:
В секции %files: Пережиток KDE-шного прошлого %_datadir/applnk тоже надо паковать, если имеется. При этом не появляется дополнительных зависимостей. Сейчас *.desktop и menu-файлы существуют параллельно. %_menudir обязательно, а %_desktopdir/*.desktop – нет. Когда-нибудь в далеком будущем бОльшая часть оконных менеджеров будет уметь самостоятельно читать %_desktopdir. Тогда пакет menu станет не нужен. Статичный вариант меню хранится в %_desktopdir, а генерируемый из menu-файлов в – %_datadir/application-alt KDE не особо при чем, %_desktopdir и %_menudir – это общее для всех. После сборки нового пакета и его установке обязательно проверяйте, что программа появилась в меню на своём месте и имеет нужную пиктограмму. 8. Обновление базы обрабатываемых форматовВ файлах desktop кроме названия программы, способа её запуска и комментария, обычно также указаны сведения о том, какие форматы способна обрабатывать та или иная программа. Подробнее см. http://www.freedesktop.org/Standards/desktop-entry-spec
Нижеописанное нужно только в случае если в %_desktopdir/*.desktop есть
В спеке должны быть секции:
В пакете должна быть указана зависимость: Используется вне зависимости от типа программы в пакете, и всегда должно быть указано. 9. Файлы bonoboПока ничего не знаю кроме того, что в %files пишется %_libdir/bonobo/servers/* 10. Статические библиотеки
Общей тенденцией является условная упаковка статических библиотек. Упаковываются они в пакет с суффиксом -devel-static.
При конфигурировании указывается
При указании пакетов на упаковку Тогда чтобы получить lib%name-devel-static, нужно пересобрать пакет с `--enable static'. Установка lib%name-devel-static автоматически ставит на hold lib%name-devel и, следовательно, lib%name (если между пакетами правильные зависимости).
Исключение: Если в пакете собирается только статическая библиотека, без динамической, то пакет должен называться -devel. 11. Установка файловВ секции %install для установки файлов используется несколько способов
1.
2. Это для программ, которые не пытаются запоминать пути, куда их устанавливают, при установке, а делают это при configure. 3. Иной способ. Возможно, ручная установка с помощью install 12. ДополнительноБудьте особенно внимательны при написании скриптов pre/post и прочих – используемые там пакеты должны быть прописаны в Requires. Желательно не использовать перенаправление вывода в /dev/null. 13. Примеры использованияСмотрите в Сизифе пакеты ggv2, rythmbox, eog2, gthumb, totem, conglomerate, inkscape 14. Авторы
Yuri N. Sedunov <aris@altlinux.ru>, 2004 09.11.2004, 21.01.2005 |  
|