Новые макросы

Встроенные макросы

%homedir

домашний каталог пользователя, вызывающего этот макрос;

%homedir{user}

домашний каталог пользователя user;

Макросы для часто используемых каталогов

X11R6: %_man1dir, %_man2dir, %_man3dir, %_man4dir, %_man5dir, %_man6dir, %_man7dir, %_man8dir, %_man9dir;

меню: %_x11dir, %_x11bindir, %_x11libdir, %_x11includedir, %_x11mandir, %_x11datadir, %_x11fontsdir;

tcl: %_licensedir;

: %_menudir, %_iconsdir, %_miconsdir, %_liconsdir;

: %_emacslispdir;

: %_tcllibdir, %_tcldatadir;

: %_initdir, %_lockdir, %_logdir, %_cachedir, %_spooldir.

Управление опциями компилятора gcc

%add_optflags <options>

добавить указанные параметры в стандартный набор %optflags;

%remove_optflags <options>

убрать указанные параметры из стандартного набора %optflags;

%optflags_core

базовые параметры;

%_optlevel

уровень оптимизации;

%optflags_optimization

параметры, отвечающие за оптимизацию, кроме архитектурно-зависимых;

%optflags_warnings

warning options;

%optflags_debug

debugging options;

%optflags_shared

параметры, применяемые для создания relocatable файлов;

%optflags_nocpp

параметры, отключающие поддержку C++ exceptions и C++ RTTI;

%optflags_notraceback

-fomit-frame-pointer;

%optflags_fastmath

-ffast-math;

%optflags_strict

-fstrict-aliasing;

%optflags_kernel

параметры, используемые при компиляции ядра и его модулей.

По умолчанию, стандартный набор %optflags состоит из «%optflags_core %optflags_warnings %optflags_optimization».

Макросы-надстройки над утилитой make

%__nprocs

число процессоров, доступных для сборки с помощью %make_build;

%make_build

вызов make с параметром, обеспечивающим оптимальную параллельную сборку в данной среде;

%make_install

вызов make c инициализацией переменной INSTALL, что в случае корректной реализации Makefile-ов пакета позволяет сохранить дату последней модификации файлов, что особенно важно для документации;

%makeinstall

«%make_install <инициализация других переменных, используемых многими Makefile-ами> install»

Регистрация разделяемых библиотек

%post_ldconfig, %post_ldconfig_lib

регистрация новых/обновлённых библиотек;

%post_ldconfig_sys

регистрация новых/обновлённых системных библиотек (которые могут быть использованы в chroot'ах);

%postun_ldconfig

отмена регистрации удалённых библиотек.

Регистрация документации в формате info

%install_info

регистрация новых/обновлённых info-страниц;

%uninstall_info

отмена регистрации удалённых info-страниц.

Регистрация меню

%update_menus

регистрация новых/обновлённых меню;

%clean_menus

отмена регистрации удалённых меню.

Регистрация каталогов scrollkeeper

%update_scrollkeeper

регистрация новых/обновлённых каталогов;

%clean_scrollkeeper

отмена регистрации удалённых каталогов.

Вспомогательные макросы %configure

%__libtoolize

путь к скрипту libtoolize;

%_configure_script

путь к скрипту configure;

%_configure_target

целевая платформа для configure;

%_configure_gettext

--without-included-gettext.

Серверные макросы

%post_service

регистрация нового сервиса при установке, перезапуск при обновлении;

%preun_service

отмена регистрации сервиса и его выключение при удалении.

Макросы, определяющие некоторые аспекты packaging policy

%buildroot

значение BuildRoot;

%_defattr

атрибуты файлов и каталогов по умолчанию для каждой секции %files и для каждого файла, включаемого в таких секциях;

%_cleanup_method

метод, используемый при удалении ненужных файлов в секции %install;

%_compress_method

метод, используемый при сжатии документации в секции %install;

%_findprov_default_method

метод, используемый по умолчанию при поиске предоставляемых зависимостей;

%_findreq_default_method

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

%_fixup_method

метод, используемый при исправлении файлов в секции %install;

%_verify_elf_method

метод, используемый при проверке ELF-файлов в секции %install;

%_strip_method

метод, используемый при обработке ELF-файлов в секции %install;

%_{cleanup,compress,fixup,strip,verify_elf,findreq,findprov}_topdir

точка начала поиска файлов, обрабатываемых соответствующим методом;

%_{cleanup,compress,fixup,strip,verify_elf,findreq,findprov}_skiplist

список шаблонов файлов, которые будут пропущены при обработке соответствующим методом;

%set_{cleanup,compress,fixup,strip,verify_elf}_method

изменить значение соответствующего макроса;

%set_{cleanup,compress,fixup,strip,verify_elf,findreq,findprov}_{topdir,skiplist}

изменить значение соответствующего макроса;

%add_{cleanup,compress,fixup,strip,verify_elf,findreq,findprov}_skiplist

добавить значение в соответствующий список.

Вызов вспомогательных программ

%find_lang

вызов /usr/lib/rpm/find-lang

%strip_executable

вызов /usr/lib/rpm/brp-strip для обработки ELF executables;

%strip_relocatable

вызов /usr/lib/rpm/brp-strip для обработки ELF relocatables;

%strip_shared

вызов /usr/lib/rpm/brp-strip для обработки ELF shared objects;

%strip_static

вызов /usr/lib/rpm/brp-strip для обработки ELF ar archives;

%cleanup_build

вызов /usr/lib/rpm/brp-cleanup;

%compress_docs

вызов /usr/lib/rpm/brp-compress;

%strip_binaries

вызов /usr/lib/rpm/brp-strip;

%clean_buildroot

выполнение rm -rf %buildroot, если %buildroot не указывает на настоящий /.

Управление процессом сборки

%buildmulti

альтернативная директива %build для случая, когда в секции %build происходит заполнение %buildroot. Вообще говоря, такой техники стоит избегать во всех случаях, когда это возможно;

%_build_lang

значение переменных LANG, LANGUAGE и LC_ALL;

%_build_display

значение переменной DISPLAY;

%_build_xauthority

значение переменной XAUTHORITY;

%__ccache_cc

значение переменной CCACHE_CC;

%__ccache_dir

значение переменной CCACHE_DIR;

Версии некоторых установленных в системе пакетов

gcc: %__glibc_version, %__glibc_version_major, %__glibc_version_minor;

: %__gcc_version, %__gcc_version_major, %__gcc_version_minor, %__gcc_version_base

: %__python_version

%get_version

версия указанного пакета;

%get_release

релиз указанного пакета;

%get_serial

serial указанного пакета;

%add_serial

serial указанного пакета в виде, пригодном для включения в spec-файл;

%get_SVR

тройка значений serial:version-release указанного пакета;

%get_NSVR

четвёрка значений name-serial:version-release указанного пакета;

%get_dep

строка вида name >= serial:version-release, построенная по указанному пакету;

Эти макросы, как правило, используются в пакетах, сборка которых возможна с различными версиями этих программ, если эти версии правильно учитывать.

Управление процессом обработки spec-файлов

%def_with, %def_without, %def_enable, %def_disable

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

%check_def

проверка макросов условия на непротиворечивость;

%subst_with, %subst_enable

подстановка значения макросов условия;

%defined, %undefined

проверка на существование макроса;

%with, %without, %enabled, %disabled

проверка значения макросов условия;

%ifdef, %ifndef

ветвление по факту существования макроса;

%if_with, %if_without, %if_enabled, %if_disabled

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

Прочие макросы

%intel

список архитектур Intel™, совместимых с i386;

%amd

список архитектур AMD™, совместимых с i386;

%ix86

список всех архитектур, совместимых с i386;

компоненты макроса %packager

%packagerName, %packagerAddress

%_internal_gpg_path

путь к связке ключей ALT Linux Team.