Spec/Предопределенные макросы: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
м (+кат)
 
(не показаны 3 промежуточные версии 2 участников)
Строка 1: Строка 1:
[[Категория:Сборка_пакетов]]
{{stub}}
{{stub}}
=== Cписок макросов ===
=== Cписок макросов ===
Строка 4: Строка 5:


<pre>
<pre>
$ apt-cache search rpm | grep ^rpm-[a-z] | sort -n | head -n -2
$ apt-cache search rpm | grep '^rpm-[a-z]' | sort -n | head -n -2
</pre>
</pre>


Строка 1194: Строка 1195:
  |_findprov_skiplist
  |_findprov_skiplist
  |%_docdir/*
  |%_docdir/*
  |Список шаблонов файлов, которые будут пропущены при обработке соответствующим методом
  |Список шаблонов файлов, которые будут [[Игнорирование зависимостей при сборке|пропущены]] при обработке соответствующим методом
  |-
  |-
  |_findprov_topdir
  |_findprov_topdir
Строка 1202: Строка 1203:
  |_findreq_skiplist
  |_findreq_skiplist
  |%_docdir/*
  |%_docdir/*
  |Список шаблонов файлов, которые будут пропущены при обработке соответствующим методом
  |Список шаблонов файлов, которые будут [[Игнорирование зависимостей при сборке|пропущены]] при обработке соответствующим методом
  |-
  |-
  |_findreq_topdir
  |_findreq_topdir
Строка 1308: Строка 1309:
  |_install_langs
  |_install_langs
  |all
  |all
  |
  |Список локалей для установки (например, <tt>en:ru</tt>); влияет на (пере)установленные после (пере)определения пакеты, см. тж. {{cmd|apt-get reinstall}}.
  |-
  |-
  |_install_script_path
  |_install_script_path
Строка 1923: Строка 1924:
  |add_findprov_skiplist
  |add_findprov_skiplist
  |%global _findprov_skiplist %_findprov_skiplist %*
  |%global _findprov_skiplist %_findprov_skiplist %*
  |Добавить значение в список
  |[[Игнорирование зависимостей при сборке|Добавить значение в список]]
  |-
  |-
  |add_findreq_skiplist
  |add_findreq_skiplist
  |%global _findreq_skiplist %_findreq_skiplist %*
  |%global _findreq_skiplist %_findreq_skiplist %*
  |Добавить значение в список (%add_findreq_skiplist %_bindir/some*.sh добавляет в исключения для findreq все файлы .sh в каталоге /usr/bin)
  |[[Игнорирование зависимостей при сборке|Добавить значение в список]]<references>%add_findreq_skiplist %_bindir/some*.sh добавляет в исключения для findreq все файлы .sh в каталоге /usr/bin</references>
  |-
  |-
  |add_fixup_skiplist
  |add_fixup_skiplist
Строка 2251: Строка 2252:
  |filter_from_provides
  |filter_from_provides
  |%global __find_provides_filter %{?!__find_provides_filter:%__sed}%{?__find_provides_filter} -e '%*'
  |%global __find_provides_filter %{?!__find_provides_filter:%__sed}%{?__find_provides_filter} -e '%*'
  |
  |[[Игнорирование зависимостей при сборке]]
  |-
  |-
  |filter_from_requires
  |filter_from_requires
  |%global __find_requires_filter %{?!__find_requires_filter:%__sed}%{?__find_requires_filter} -e '%*'
  |%global __find_requires_filter %{?!__find_requires_filter:%__sed}%{?__find_requires_filter} -e '%*'
  |
  |[[Игнорирование зависимостей при сборке]]
  |-
  |-
  |find_lang
  |find_lang
Строка 3079: Строка 3080:
  |set_findprov_skiplist
  |set_findprov_skiplist
  |%global _findprov_skiplist %*
  |%global _findprov_skiplist %*
  |Изменить значение макроса
  |[[Игнорирование зависимостей при сборке|Изменить значение макроса]]
  |-
  |-
  |set_findprov_topdir
  |set_findprov_topdir
Строка 3087: Строка 3088:
  |set_findreq_skiplist
  |set_findreq_skiplist
  |%global _findreq_skiplist %*
  |%global _findreq_skiplist %*
  |Изменить значение макроса
  |[[Игнорирование зависимостей при сборке|Изменить значение макроса]]
  |-
  |-
  |set_findreq_topdir
  |set_findreq_topdir
Строка 3266: Строка 3267:
  |Проверка значения макросов условия
  |Проверка значения макросов условия
  |}
  |}


== Основные макросы ==
== Основные макросы ==

Текущая версия от 11:23, 28 октября 2024

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Cписок макросов

Cписок пакетов содержащих файлы с макросами можно просмотреть, выполнив команду:

$ apt-cache search rpm | grep '^rpm-[a-z]' | sort -n | head -n -2

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

Для использования данных макросов, необходимо добавить в spec строчку:

BuildRequires(pre): имя-пакета-с-макросами

Просмотреть список доступных макросов и их значения можно, выполнив команду:

rpm --showrc

Посмотреть, во что раскрывается конкретный макрос, можно так:

rpm --eval %имя_макроса

Например, необходимо узнать, во что раскрывается макрос %java_dir:

$ rpm --eval %java_dir
/usr/share/java
$

Макросы

Макросы по категориям

Макрос Замена Описание
ABI_suffix %(s="%_lib"; s=${s#lib}; echo "${s:+(${s}bit)}")
CPAN http://search.cpan.org/dist/%1/%nil
EVR %{?epoch:%epoch:}%{version}-%{release}
___build_args -e
___build_cmd %{?_sudo:%{_sudo} }%{?_remsh:%{_remsh} %{_remhost} }%{?_remsudo:%{_remsudo} }%{?_remchroot:%{_remchroot} %{_remroot} }%{___build_shell} %{___build_args}
___build_post exit 0
___build_pre
    export RPM_SOURCE_DIR="%{u2p:%_sourcedir}"
    export RPM_BUILD_DIR="%{u2p:%_builddir}"
    export RPM_OPT_FLAGS="%optflags"
    export RPM_ARCH="%_arch"
    export RPM_OS="%_os"
    export RPM_TARGET_ARCH="%_target_cpu"
    export RPM_TARGET_OS="%_target_os"
    export RPM_DOC_DIR="%_docdir"
    export RPM_PACKAGE_NAME="%name"
    export RPM_PACKAGE_VERSION="%version"
    export RPM_PACKAGE_RELEASE="%release"
    export RPM_BUILD_ROOT="%{u2p:%buildroot}"
    %{?_cleanup_method:export RPM_CLEANUP_METHOD="%_cleanup_method"}
    %{?_compress_method:export RPM_COMPRESS_METHOD="%_compress_method"}
    %{?_fixup_method:export RPM_FIXUP_METHOD="%_fixup_method"}
    %{?_verify_elf_method:export RPM_VERIFY_ELF_METHOD="%_verify_elf_method"}
    %{?_verify_info_method:export RPM_VERIFY_INFO_METHOD="%_verify_info_method"}
    %{?_findreq_method:export RPM_FINDREQ_METHOD="%_findreq_method"}
    %{?_findprov_method:export RPM_FINDPROV_METHOD="%_findprov_method"}
    %{?_cleanup_topdir:export RPM_CLEANUP_TOPDIR="%_cleanup_topdir"}
    %{?_compress_topdir:export RPM_COMPRESS_TOPDIR="%_compress_topdir"}
    %{?_fixup_topdir:export RPM_FIXUP_TOPDIR="%_fixup_topdir"}
    %{?_verify_elf_topdir:export RPM_VERIFY_ELF_TOPDIR="%_verify_elf_topdir"}
    %{?_findreq_topdir:export RPM_FINDREQ_TOPDIR="%_findreq_topdir"}
    %{?_findprov_topdir:export RPM_FINDPROV_TOPDIR="%_findprov_topdir"}
    %{?_cleanup_skiplist:export RPM_CLEANUP_SKIPLIST="%_cleanup_skiplist"}
    %{?_compress_skiplist:export RPM_COMPRESS_SKIPLIST="%_compress_skiplist"}
    %{?_debuginfo_skiplist:export RPM_DEBUGINFO_SKIPLIST="%_debuginfo_skiplist"}
    %{?_fixup_skiplist:export RPM_FIXUP_SKIPLIST="%_fixup_skiplist"}
    %{?_verify_elf_skiplist:export RPM_VERIFY_ELF_SKIPLIST="%_verify_elf_skiplist"}
    %{?_findreq_skiplist:export RPM_FINDREQ_SKIPLIST="%_findreq_skiplist"}
    %{?_findprov_skiplist:export RPM_FINDPROV_SKIPLIST="%_findprov_skiplist"}
    %{?_findpackage_path:export RPM_FINDPACKAGE_PATH="%_findpackage_path"}
    %{?_findprov_lib_path:export RPM_FINDPROV_LIB_PATH="%_findprov_lib_path"}
    %{?_pkg_contents_index_all:export RPM_PKG_CONTENTS_INDEX_ALL="%_pkg_contents_index_all"}
    %{?_pkg_contents_index_bin:export RPM_PKG_CONTENTS_INDEX_BIN="%_pkg_contents_index_bin"}
    %{?_scripts_debug:export RPM_SCRIPTS_DEBUG="%_scripts_debug"}
    %{?_keep_libtool_files:export RPM_KEEP_LIBTOOL_FILES="%_keep_libtool_files"}
    %{?_brp_strip_debug:export RPM_BRP_STRIP_DEBUG="%_brp_strip_debug"}
    %{?_brp_strip_none:export RPM_BRP_STRIP_NONE="%_brp_strip_none"}

    %{?__find_requires_filter:export RPM_FIND_REQUIRES_FILTER=$(cat <<'!FIND!REQUIRES!FILTER!'
    
___build_shell {?_buildshell:%{_buildshell}}%{!?_buildshell:/bin/sh}
___build_template #!%{___build_shell} %{___build_pre} %{nil}
__aclocal aclocal
__ar ar
__arch_install_post %{nil}
__as as
__autoconf autoconf
__autoheader autoheader
__automake automake
__autoreconf %{warning %%__autoreconf is obsolete, use %%autoreconf instead}%autoreconf
__awk gawk
__bzip2 /bin/bzip2
__cat /bin/cat
__cc gcc
__chgrp /bin/chgrp
__chmod /bin/chmod
__chown /bin/chown
__cp /bin/cp
__cpio /bin/cpio
__cpp gcc -E
__cxx g++
__dbi_btconfig btree

%{__dbi_other} %{__dbi_perms} %{nil}

__dbi_btconfig_current %{__dbi_btconfig}
__dbi_btconfig_rebuild %{__dbi_btconfig} %{__dbi_rebuild}
__dbi_htconfig hash

%{__dbi_other} %{__dbi_perms} %{nil}

__dbi_htconfig_current %{__dbi_htconfig}
__dbi_htconfig_rebuild %{__dbi_htconfig} %{__dbi_rebuild}
__dbi_other verify %{?_tmppath:tmpdir=%{_tmppath}} %{?__dbi_cdb}
__dbi_perms perms=0644
__dbi_rebuild nofsync !log !txn !cdb
__dbi_transient %{__dbi_rebuild} temporary private
__file /usr/bin/file
__file_context_path /etc/selinux/%{__policy_tree}/contexts/files/file_contexts
__find_debuginfo_files /usr/lib/rpm/find-debuginfo-files
__find_provides /usr/lib/rpm/find-provides
__find_requires /usr/lib/rpm/find-requires
__find_scriptlet_requires /usr/lib/rpm/find-scriptlet-requires
__gcc_version %(gcc -dumpversion) Версии установленных в системе пакетов gcc
__gcc_version_base
%(
   maj=`echo %__gcc_version_major`;
   min=`echo %__gcc_version_minor`;
   if [ "$maj" -ge 5 ]; then
     echo -n "$maj";
   else
     echo -n "$maj.$min";
   fi
 )
__gcc_version_major
 %(gcc -dumpversion |cut -d. -f1)
Версии установленных в системе пакетов gcc
__gcc_version_minor
 %(gcc -dumpversion |cut -d. -f2)
Версии установленных в системе пакетов gcc
__gcc_version_patch
 %(gcc -dumpversion |cut -d. -f3)
Версии установленных в системе пакетов gcc
__glibc_version %(rpmquery --qf '%%{VERSION}' glibc) Версии установленных в системе пакетов glibc
__glibc_version_major
%(echo %__glibc_version |cut -d. -f1)
Версии установленных в системе пакетов glibc
__glibc_version_minor
%(
	maj=`echo %__glibc_version_major`;
	min=`echo %__glibc_version|cut -d. -f2`;
	rel=`echo %__glibc_version|cut -d. -f3`;
	[ -n "$rel" ] || rel=0;
	if [ "$maj" -eq 2 -a "$min" -eq 1 -a "$rel" -gt 90 ]; then
		min=2
	fi
	echo -n "$min"
 )
Версии установленных в системе пакетов glibc
__gpg /usr/bin/gpg
__gpg_check_password_cmd %{__gpg}

gpg --batch --no-verbose --passphrase-fd 3 -u "%{_gpg_name}" -so -

__gpg_sign_cmd %{__gpg}

gpg --batch --no-verbose --no-armor --passphrase-fd 3 -u "%{_gpg_name}" -sbo %{__signature_filename} %{__plaintext_filename}

__gpg_verify_cmd %{__gpg}

gpg --batch --no-verbose --verify %{__signature_filename} %{__plaintext_filename}

__grep /bin/grep
__gzip /bin/gzip
__id /usr/bin/id
__install /bin/install
__install_info /sbin/install-info
__ld /usr/bin/ld
__libpython3 %_libdir/libpython%_python3_abi_version%_python3_abiflags.so
__libtoolize libtoolize Путь к скрипту libtoolize
__ln_s ln -s
__lzma /usr/bin/lzma
__make /usr/bin/make
__mkdir /bin/mkdir
__mkdir_p /bin/mkdir -p
__mv /bin/mv
__nm /usr/bin/nm
__nprocs
%(N=`egrep -cs ^cpu[0-9]+ /proc/stat`; [ "$N" -gt 0 ] 2>/dev/null && echo "$N" || echo 1)
Число процессоров, доступных для сборки с помощью %make_build
__objcopy /usr/bin/objcopy
__objdump /usr/bin/objdump
__os_install_post /usr/lib/rpm/brp-%{_vendor}

%{nil}

__patch /usr/bin/patch
__perl /usr/bin/perl
__pgp /usr/bin/pgp
__pgp5_check_password_cmd %{__pgp}

pgps +batchmode=on +verbose=0 +armor=off "%{_pgp_name}" -f

__pgp5_sign_cmd %{__pgp}

pgps +batchmode=on +verbose=0 +armor=off "+myname=%{_pgp_name}" -b %{__plaintext_filename} -o %{__signature_filename}

__pgp5_verify_cmd %{__pgp}

pgpv +batchmode=on +verbose=0 +OutputInformationFD=1 +OutputWarningFD=1 -o %{__signature_filename} %{__plaintext_filename}

__pgp_check_password_cmd %{__pgp}

pgp +batchmode=on +verbose=0 "%{_pgp_name}" -sf

__pgp_sign_cmd %{__pgp}

pgp +batchmode=on +verbose=0 +armor=off "+myname=%{_pgp_name}" -sb %{__plaintext_filename} %{__signature_filename}

__pgp_verify_cmd %{__pgp}

pgp +batchmode=on +verbose=0 %{__signature_filename} %{__plaintext_filename}

__policy_tree
%(sed -rn 's;^blank:*SELINUXTYPE=([^[:blank:]]+).*$;\1;p' %{_sysconfdir}/selinux/config)
__python /usr/bin/python
__python3 python3
__python3_abiflags
%(%__python3-config --abiflags 2>/dev/null || echo unknown)
__python3_deps_internal
for mod in %{*}; do
    echo -n "python3($mod) ";
done; unset mod;
%nil
__python3_deps_internal_old
for mod in %{*}; do
    echo -n "python3.3($mod) ";
done; unset mod;
%nil
__python3_dynlibdir %python3_libdir/lib-dynload
__python3_includedir %_includedir/python%__python3_version%__python3_abiflags
__python3_libdir %_target_libdir/python%__python3_version
__python3_libdir_noarch %_target_libdir_noarch/python%__python3_version
__python3_tooldir %python3_libdir/Tools
__python3_version
%(LC_ALL=C %__python3 -c 'import sys; print("{0}.{1}".format(sys.version_info[0],sys.version_info[1]))' 2>/dev/null || echo unknown)
__python_deps_internal
for mod in %{*}; do
    echo -n "python%__python_version($mod) ";
done; unset mod;
%nil
__python_package_deps_internal
args="%{*}";
set $args '';
while test $# -gt 1; do
  mod=$1; shift;
  if test $# -gt 1; then
    if test "x$1" = "x<" -o "x$1" = "x<=" -o "x$1" = "x=" -o "x$1" = "x>=" -o "x$1" = "x>"; then
      verstr="$1 $2"; shift; shift;
    fi;
  fi;
  echo -n "python%__python_version-module-${mod} $verstr ";
  unset mod; unset verstr;
done;
%nil
__python_version
%(LC_ALL=C %__python -c 'import sys; print "%%u.%%u" %% sys.version_info[0:2]' 2>/dev/null || echo 2.7)
Версия установленного в системе пакета python
__ranlib ranlib
__remsh %{__rsh}
__rm /bin/rm
__rsh /usr/bin/rsh
__ruby %_bindir/ruby
__sed /bin/sed
__spec_autodep_args %{___build_args}
__spec_autodep_body %{___build_body}
__spec_autodep_cmd %{___build_cmd}
__spec_autodep_custom_post %{nil}
__spec_autodep_custom_pre %{nil}
__spec_autodep_post

%{___build_post} %{__spec_autodep_custom_post} %{nil}

__spec_autodep_pre

%{___build_pre} %{__spec_autodep_custom_pre} %{nil}

__spec_autodep_shell %{___build_shell}
__spec_autodep_template
  1. !%{__spec_autodep_shell}

%{__spec_autodep_pre} %{nil}

__spec_build_args %{___build_args}
__spec_build_body %{___build_body}
__spec_build_cmd %{___build_cmd}
__spec_build_custom_post %{nil}
__spec_build_custom_pre %{nil}
__spec_build_post

%{___build_post} %{__spec_build_custom_post} %{nil}

__spec_build_pre

%{___build_pre} %{__spec_build_custom_pre} %{nil}

__spec_build_shell %{___build_shell}
__spec_build_template
  1. !%{__spec_build_shell}

%{__spec_build_pre} %{nil}

__spec_check_args %{___build_args}
__spec_check_body %{___build_body}
__spec_check_cmd %{___build_cmd}
__spec_check_custom_post %{nil}
__spec_check_custom_pre %{nil}
__spec_check_post

%{___build_post} %{__spec_check_custom_post} %{nil}

__spec_check_pre

%{?!_enable_check:%{?_disable_check:echo 'Check is turned off by --disable check' >&2; exit 0}} %{?!_with_check:%{?_without_check:echo 'Check is turned off by --without check' >&2; exit 0}} %{?!_enable_test:%{?_disable_test:echo 'Check is turned off by --disable test' >&2; exit 0}} %{?!_with_test:%{?_without_test:echo 'Check is turned off by --without test' >&2; exit 0}} %{___build_pre} %{__spec_check_custom_pre} %nil

__spec_check_shell %{___build_shell}
__spec_check_template
  1. !%{__spec_check_shell}

%{__spec_check_pre} %{nil}

__spec_clean_args %{___build_args}
__spec_clean_body %{___build_body}
__spec_clean_cmd %{___build_cmd}
__spec_clean_custom_post %{nil}
__spec_clean_custom_pre %{nil}
__spec_clean_post

%clean_buildroot %{___build_post} %{__spec_clean_custom_post} %nil

__spec_clean_pre

%{___build_pre} %{__spec_clean_custom_pre} %{nil}

__spec_clean_shell %{___build_shell}
__spec_clean_template
  1. !%{__spec_clean_shell}

%{__spec_clean_pre} %{nil}

__spec_install_args %{___build_args}
__spec_install_body %{___build_body}
__spec_install_cmd %{___build_cmd}
__spec_install_custom_post %{nil}
__spec_install_custom_pre %{nil} %{nil}
__spec_install_post

%{__arch_install_post} %{__os_install_post} %{__spec_install_custom_post} %{nil}

__spec_install_pre

%{___build_pre} %clean_buildroot %{__spec_install_custom_pre} %nil

__spec_install_shell %{___build_shell}
__spec_install_template
  1. !%{__spec_install_shell}

%{__spec_install_pre} %{nil}

__spec_prep_args %{___build_args}
__spec_prep_body %{___build_body}
__spec_prep_cmd %{___build_cmd}
__spec_prep_custom_post %{nil}
__spec_prep_custom_pre %{nil}
__spec_prep_post

%{___build_post} %{__spec_prep_custom_post} %{nil}

__spec_prep_pre

%{___build_pre} %{__spec_prep_custom_pre} %{nil}

__spec_prep_shell %{___build_shell}
__spec_prep_template
  1. !%{__spec_prep_shell}

%{__spec_prep_pre} %{nil}

__spec_rmbuild_args %{___build_args}
__spec_rmbuild_body %{___build_body}
__spec_rmbuild_cmd %{___build_cmd}
__spec_rmbuild_custom_post %{nil}
__spec_rmbuild_custom_pre %{nil}
__spec_rmbuild_post

%{___build_post} %{__spec_rmbuild_custom_post} %{nil}

__spec_rmbuild_pre

%{___build_pre} %{__spec_rmbuild_custom_pre} %{nil}

__spec_rmbuild_shell %{___build_shell}
__spec_rmbuild_template
#!%{__spec_rmbuild_shell}
%{__spec_rmbuild_pre}
%{nil}
__ssh /usr/bin/ssh
__strip /usr/bin/strip
__subst /usr/bin/subst
__tar /bin/tar
__unzip /usr/bin/unzip
__xz /usr/bin/xz
_aclocaldir %{_datadir}/aclocal
_altdir %([ ! -f /usr/share/alternatives/functions ])/etc/alternatives/packages.d Каталог куда кладут свои файлы описания кандидатов пакеты
_alterator_backend2dir %_alterator_libdir/backend2
_alterator_backend3dir %_alterator_libdir/backend3
_alterator_datadir %_datadir/alterator
_alterator_libdir %_libexecdir/alterator
_arch x86_64
_binary_payload w2.lzdio
_bind_python_version
%(echo %%global _with_python%{2} --with-python%{2} | sed -e 's/\.//g' >%_sourcedir/%{1}.rpmreq)
%(echo Source9999: %{1}.rpmreq)
_bindir /usr/bin Размещение пользовательских исполняемых файлов
_binfmtdir /lib/binfmt.d
_build %{_host}
_build_alias %{_host_alias}
_build_arch unknown
_build_cpu %{_host_cpu}
_build_name_fmt %%{ARCH}/%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm
_build_os %{_host_os}
_build_vendor %{_host_vendor}
_builddir %{_topdir}/BUILD Директория где будут распакованы исходные коды и применены патчи
_buildrequires_build %nil
_buildshell /bin/sh
_cachedir %{_var}/cache Каталог cache
_check_bound_python_version
 %{expand: %(test -f %_sourcedir/%{1}.rpmreq && cat %_sourcedir/%{1}.rpmreq)}
%(test -f %_sourcedir/%{1}.rpmreq && echo Source9999: %{1}.rpmreq)
%_check_python_version 2.2
%_check_python_version 2.3
%_check_python_version 2.4
%_check_python_version 2.5
%_check_python_version 2.6
%_check_python_version 2.7
_check_python_version
%{expand: %%_check_python_version_internal %{1} %(echo %1 | sed -e 's/\.//g')}
_check_python_version_internal
_cleanup_method auto Метод, используемый при удалении ненужных файлов в секции %install
_cleanup_skiplist %nil Список шаблонов файлов, которые будут пропущены при обработке соответствующим методом
_cleanup_topdir %nil Точка начала поиска файлов, обрабатываемых соответствующим методом
_cmake_skip_rpath -DCMAKE_SKIP_RPATH:BOOL=ON
_compress_method auto Метод, используемый при сжатии документации в секции %install
_compress_skiplist %nil Список шаблонов файлов, которые будут пропущены при обработке соответствующим методом
_compress_topdir %_usr Точка начала поиска файлов, обрабатываемых соответствующим методом
_configure_gettext --without-included-gettext
_configure_platform %{expand:%%{?_configure_platform_%_target_cpu}%%{!?_configure_platform_%_target_cpu:%%_target_platform}}
_configure_platform_noarch %{_host_cpu}-%{_vendor}-%{_target_os}%{_gnueabi}
_configure_script ./configure Путь к скрипту configure
_configure_target --build=%{_configure_platform} --host=%{_configure_platform} Целевая платформа для configure
_configure_update_config
 readlink -e -- '%{_configure_script}' |xargs -ri dirname -- '{}' |xargs -ri find '{}' -type f '(' -name config.sub -or -name config.guess ')' -printf '%%h/\n' |sort -u |xargs -rn1 install -pm755 -- /usr/share/gnu-config/config.{sub,guess}
 
_controldir %_sysconfdir/control.d/facilities Каталог control
_datadir /usr/share Размещение архитектурно-независимых данных
_dbapi 3
_dbapi_rebuild 3
_dbi_btconfig
  %{?_rpmdb_rebuild:%{__dbi_btconfig_rebuild}}
  %{!?_rpmdb_rebuild:%{__dbi_btconfig_current}}
%{nil}
_dbi_config %{_dbi_htconfig}
_dbi_config_Depends %{_dbi_htconfig} temporary private
_dbi_config_Dirnames %{_dbi_btconfig}
_dbi_config_Installtid %{_dbi_btconfig}
_dbi_config_Packages %{_dbi_htconfig} lockdbfd
_dbi_config_Provideversion %{_dbi_btconfig}
_dbi_config_Removetid %{_dbi_btconfig}
_dbi_config_Requireversion %{_dbi_btconfig}
_dbi_htconfig
  %{?_rpmdb_rebuild:%{__dbi_htconfig_rebuild}}
  %{!?_rpmdb_rebuild:%{__dbi_htconfig_current}}
%{nil}
 
_dbpath %{_var}/lib/rpm Расположение файлов базы данных rpm
_dbpath_rebuild %{_dbpath}
_debuginfo_skiplist %nil
_defattr %%defattr(-,root,root,755) Атрибуты файлов и каталогов по умолчанию для каждой секции %files и для каждого файла, включаемого в таких секциях
_defaultdocdir %{_usr}/share/doc Каталог документации
_desktopdir %_datadir/applications
_emacslispdir %{_datadir}/emacs/site-lisp Каталог emacs
_exec_prefix /usr Размещение архитектурно-зависящих файлов
_files_to_ld_preload_python3 %files_requiring_python3_ABI%(for d in %_python3_compile_include; do echo -n " $d/*"; done)
_findpackage_path %nil
_findprov_lib_path %nil Список каталогов, в которых производится поиск ELF-файлов на наличие предоставляемых зависимостей
_findprov_skiplist %_docdir/* Список шаблонов файлов, которые будут пропущены при обработке соответствующим методом
_findprov_topdir %nil Точка начала поиска файлов, обрабатываемых соответствующим методом
_findreq_skiplist %_docdir/* Список шаблонов файлов, которые будут пропущены при обработке соответствующим методом
_findreq_topdir %nil Точка начала поиска файлов, обрабатываемых соответствующим методом
_fixperms %{__chmod} -c -Rf u+rwX,go-w
_fixup_method binconfig pkgconfig libtool desktop Метод, используемый при исправлении файлов в секции %install
_fixup_skiplist %nil Список шаблонов файлов, которые будут пропущены при обработке соответствующим методом
_fixup_topdir %nil Точка начала поиска файлов, обрабатываемых соответствующим методом
_forget_bound_python_version

%{expand: %{expand: %%%%global __python_package_version %%%%nil}} %{expand: %(test -f %_sourcedir/%{1}.rpmreq && rm -f %_sourcedir/%{1}.rpmreq)}

_gamesbindir %{_prefix}/%{_gamesdir}
_gamesdatadir %{_datadir}/%{_gamesdir}
_gamesdir games
_girdir %_datadir/gir-1.0
_gnu -gnu
_gnueabi %nil
_host x86_64-alt-linux-gnu
_host_alias x86_64-alt-linux%{nil}
_host_cpu x86_64
_host_os linux-gnu
_host_vendor alt
_iconsdir %_datadir/icons Указывает на базовый каталог тем, относительно которого упаковываются масштабируемые иконки, иконки нестандартного размера и дополнительные темы, как описано в standards.freedesktop.org
_includedir /usr/include Размещение заголовочных(Headers) файлов
_infodir /usr/share/info
_initddir %_initdir
_initdir %{_sysconfdir}/rc.d/init.d Каталог service
_initrddir %_initdir
_install_file_context_path %{__file_context_path}
_install_info %install_info
_install_langs all Список локалей для установки (например, en:ru); влияет на (пере)установленные после (пере)определения пакеты, см. тж. apt-get reinstall.
_install_script_path /sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin
_instchangelog 5
_internal_gpg_path /usr/lib/alt-gpgkeys Путь к связке ключей ALT Linux Team
_lib lib64 Макрос по умолчанию имеет значение lib, либо lib64. Второй вариант используется в ОС с 64-битной архитектурой, которые позволяют выполнять приложения обоих типов (32- и 64-битные приложения) одновременно, т.е. в биархитектурной системе.
_libdir /usr/lib64 Библиотеки объектного кода. Макрос по умолчанию имеет значение /usr/lib64 в биархитектурных системах, и /usr/lib во всех остальных случаях.
_libexecdir /usr/lib Размещение библиотек???
_licensedir %{_datadir}/license Каталог лицензии
_liconsdir %_iconsdir/hicolor/48x48/apps Каталог (large) — иконки 48x48 (/usr/share/icons/hicolor/48x48/apps)
_localstatedir /var/lib
_lockdir %{_var}/lock Каталог lock-файлов
_locksubsysdir %{_var}/lock/subsys
_logdir %{_var}/log Каталог log-файлов
_logrotatedir %{_sysconfdir}/logrotate.d
_make_bin make
_makeinstall_target install
_man1dir %_mandir/man1 manpages
_man2dir %_mandir/man2 manpages
_man3dir %_mandir/man3 manpages
_man4dir %_mandir/man4 manpages
_man5dir %_mandir/man5 manpages
_man6dir %_mandir/man6 manpages
_man7dir %_mandir/man7 manpages
_man8dir %_mandir/man8 manpages
_man9dir %_mandir/man9 manpages
_mandir /usr/share/man Документация для man
_menudir %_prefix/lib/menu Каталог меню
_miconsdir %_iconsdir/hicolor/16x16/apps Каталог (mini) — иконки 16x16 (/usr/share/icons/hicolor/16x16/apps)
_modulesloaddir /lib/modules-load.d
_niconsdir %_iconsdir/hicolor/32x32/apps Каталог (normal) — иконки 32x32 (/usr/share/icons/hicolor/32x32/apps)
_oldincludedir /usr/include Размещение заголовочных файлов для не-GCC
_optlevel 2 Уровень оптимизации
_os linux
_package_version 30005
_perl_req_method normal Метод, используемый при поиске зависимостей в perl-скриптах
_pgpbin %{__pgp}
_pixmapsdir %_datadir/pixmaps
_pkgconfigdir %{_libdir}/pkgconfig
_preScriptEnvironment
RPM_SOURCE_DIR="%{_sourcedir}"
RPM_BUILD_DIR="%{_builddir}"
RPM_DOC_DIR="%{_docdir}"
export RPM_SOURCE_DIR RPM_BUILD_DIR RPM_DOC_DIR
RPM_OPT_FLAGS="%{optflags}"
RPM_ARCH="%{_arch}"
RPM_OS="%{_os}"
RPM_TARGET_ARCH="%{_target_cpu}"
RPM_TARGET_OS="%{_target_os}"
export RPM_OPT_FLAGS RPM_ARCH RPM_OS RPM_TARGET_ARCH RPM_TARGET_OS
RPM_PACKAGE_NAME="%{name}"
RPM_PACKAGE_VERSION="%{version}"
RPM_PACKAGE_RELEASE="%{release}"
export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE
%{?buildroot:RPM_BUILD_ROOT="%{buildroot}"
export RPM_BUILD_ROOT
}
_prefix /usr Размещение архитектурно-независимых файлов
_presetdir /lib/systemd/system-preset
_python3_abi_version %__python3_version
_python3_abiflags %__python3_abiflags
_python3_compile_clean 1
_python3_compile_deep 20
_python3_compile_exclude %_defaultdocdir
_python3_compile_include %_python3_path
_python3_compile_skip_x 1
_python3_extension_suffix
%(%__python3-config --extension-suffix 2>/dev/null || echo .so)
_python3_import_path %nil
_python3_lib_path ""
_python3_path %python3_sitelibdir %python3_sitelibdir_noarch
_python3_req_method slight
_python3_req_skip ""
_python3_set_arch %global _target_python3_libdir %_target_libdir
_python3_set_noarch %global _target_python3_libdir %_target_libdir_noarch
_python3_version %__python3_version
_python_compile_clean 1
_python_compile_deep 20
_python_compile_exclude %_defaultdocdir %_target_libdir/python3.2 %_target_libdir_noarch/python3.2 %_target_libdir/python3.3 %_target_libdir_noarch/python3.3
_python_compile_include %_target_libdir %_target_libdir_noarch
_python_compile_method ALL
_python_compile_skip_x 1
_python_lib_path ""
_python_module_declared ""
_python_req_method slight
_python_req_skip ""
_python_set_arch %global _target_python_libdir %_target_libdir
_python_set_noarch %global _target_python_libdir %_target_libdir_noarch
_python_version %__python_version
_qt4dir %_libdir/qt4
_query_selector_match default
_remove_install_info %uninstall_info
_rpmdir %{_topdir}/RPMS
_rpmfilename %{_build_name_fmt}
_rpmlibdir %_prefix/lib/rpm
_rpmmacrosdir %_rpmlibdir/macros.d
_ruby_lib_path %ruby_libdir
_ruby_req_method strict
_ruby_setup_rb setup.rb
_runtimedir %{_var}/run
_sbindir /usr/sbin Размещение системных исполняемых файлов
_setup_python_module_internal
%{expand: %%global modulename %{1}}
%{expand: %%{?_with_python_auto: %%_forget_bound_python_version %modulename}}
%_check_python_version 2.2
%_check_python_version 2.3
%_check_python_version 2.4
%_check_python_version 2.5
%_check_python_version 2.6
%_check_python_version 2.7
%{expand: %{expand: %%{!?__python_package_version:%%{!?__python_disable_bind_version:%%{!?_with_python_auto:%%%%_check_bound_python_version %%modulename}}}}}
%{expand: %{expand: %%{?__python_package_version:%%{!?__python_disable_bind_version:%%{!?_with_python_auto:%%%%_bind_python_version %%modulename %%__python_package_version}}}}}
%{expand: %%global __python %%(which python%%__python_version 2>/dev/null || echo /bin/false)}
%{expand: %{expand: %%{!?__python_package_version:%%%%global __python_package_version %%%%nil}}}
%{expand: %%global __python_module_prefix python%%{__python_package_version}-module}
%{expand: %%global packagename %%{__python_module_prefix}-%%{modulename}}
_sharedstatedir %{_var}/lib Размещение модифицируемых архитектурно-независимых данных
_signature gpg
_smp_mflags %([ -z "$RPM_BUILD_NCPUS" ] \

&& RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"; \ [ "$RPM_BUILD_NCPUS" -gt 1 ] && echo "-j$RPM_BUILD_NCPUS")

_source_payload w2.lzdio
_sourcedir %{_topsrcdir}/SOURCES
_specdir %{_topsrcdir}/SPECS
_spooldir %{_var}/spool Каталог
_srcrpmdir %{_topdir}/SRPMS
_sysconfdir /etc
_sysctldir /lib/sysctl.d
_target x86_64-linux
_target_alias %{_host_alias}
_target_cpu x86_64
_target_libdir %{expand:%%{?_target_libdir_%_target_cpu}%%{!?_target_libdir_%_target_cpu:%%_libdir}}
_target_libdir_noarch /usr/lib
_target_os linux
_target_platform %{_target_cpu}-%{_vendor}-%{_target_os}%{_gnueabi}
_target_python3_libdir %_target_libdir
_target_python_libdir %_target_libdir
_target_vendor %{_host_vendor}
_tmpfilesdir /lib/tmpfiles.d
_tmppath %{_tmpdir}
_topdir %homedir/RPM
_topsrcdir %{_topdir}
_typelib_req_skiplist %{nil}
_typelibdir %_libdir/girepository-1.0
_udevhwdbdir /lib/udev/hwdb.d
_udevrulesdir /lib/udev/rules.d
_unitdir /lib/systemd/system
_unpackaged_files_terminate_build 0 Параметр, определяющий влияние неупакованных файлов на результат сборки
_update_menus_bin %_bindir/update-menus
_usr /usr
_usrsrc %{_usr}/src
_vapidir %_datadir/vala/vapi
_var /var
_vendor alt
_verify_elf_method default Метод, используемый при проверке ELF-файлов в секции %install
_verify_elf_skiplist %nil Список шаблонов файлов, которые будут пропущены при обработке соответствующим методом
_verify_elf_topdir %nil Точка начала поиска файлов, обрабатываемых соответствующим методом
_verify_info_method normal
_x11appconfdir %{_sysconfdir}/X11/app-defaults Каталог X11R6
_x11bindir %{_bindir} Каталог X11R6
_x11datadir %{_datadir} Каталог X11R6
_x11dir %{_prefix} Каталог X11R6
_x11drvddir %{_prefix}/libexec/X11/drv.d Каталог X11R6
_x11fontsdir %{_datadir}/X11/fonts Каталог X11R6
_x11includedir %{_includedir} Каталог X11R6
_x11libdir %{_libdir} Каталог X11R6
_x11mandir %{_mandir} Каталог X11R6
_x11modulesdir %{_libdir}/X11/modules Каталог X11R6
_x11sysconfdir %{_sysconfdir}/X11 Каталог X11R6
_x11x11dir %{_datadir}/X11
_x11x11libdir %{_libdir}/X11
_xdgconfigdir %_sysconfdir/xdg
_xdgdatadir %_datadir
_xdgmenusdir %_xdgconfigdir/menus
_xdgmimedir %_xdgdatadir/mime
add_cleanup_skiplist %global _cleanup_skiplist %_cleanup_skiplist %* Добавить значение в список
add_compress_skiplist %global _compress_skiplist %_compress_skiplist %* Добавить значение в список
add_debuginfo_skiplist %global _debuginfo_skiplist %_debuginfo_skiplist %* Добавить значение в список
add_findpackage_path %global _findpackage_path %_findpackage_path %*
add_findprov_lib_path %global _findprov_lib_path %_findprov_lib_path %* Добавить значение в список каталогов, в которых производится поиск ELF-файлов на наличие предоставляемых зависимостей
add_findprov_skiplist %global _findprov_skiplist %_findprov_skiplist %* Добавить значение в список
add_findreq_skiplist %global _findreq_skiplist %_findreq_skiplist %* Добавить значение в список
add_fixup_skiplist %global _fixup_skiplist %_fixup_skiplist %* Добавить значение в список
add_optflags <options> %global optflags %{optflags} %{**} Добавить указанные параметры в стандартный набор %optflags
add_perl_lib_path %global _perl_lib_path %{?_perl_lib_path} %*
add_python3_compile_exclude %global _python3_compile_exclude %_python3_compile_exclude %*
add_python3_compile_include %global _python3_compile_include %_python3_compile_include %*
add_python3_lib_path %{expand:%%add_python3_path %*}

%global _python3_lib_path %_python3_lib_path %*

add_python3_path %global _python3_path %_python3_path %*

%global _python_compile_exclude %_python_compile_exclude %*

add_python3_req_skip %global _python3_req_skip %_python3_req_skip %*
add_python_compile_exclude %global _python_compile_exclude %_python_compile_exclude %*
add_python_compile_include %global _python_compile_include %_python_compile_include %*
add_python_lib_path %global _python_lib_path %_python_lib_path %*
add_python_req_skip %global _python_req_skip %_python_req_skip %*
add_ruby_lib_path %global _ruby_lib_path %{?_ruby_lib_path:%_ruby_lib_path} %* Добавляет путь для поиска Provides
add_ruby_weakprov_path %global _ruby_weakprov_path %{?_ruby_weakprov_path:%_ruby_weakprov_path} %* Добавляет путь для поиска "статически слинкованных" модулей (пример использования в пакете ruby-actionpack)
add_serial
%(rpmquery --qf '%%|SERIAL?{Serial: %%{SERIAL}}|' %1 2>/dev/null)
serial указанного пакета в виде, пригодном для включения в spec-файл
add_typelib_req_skiplist %global _typelib_req_skiplist %_typelib_req_skiplist %*
add_typelibdir %global _typelibdir %_typelibdir %*
add_verify_elf_skiplist %global _verify_elf_skiplist %_verify_elf_skiplist %* Добавить значение в список
allow_python3_import_path %global _python3_import_path %_python3_import_path %*
amd k6 athlon athlon_xp Список архитектур amd, совместимых с i386
arm arm armv3l armv4l armv5l armv5tel armv5tejl armv6l armv7l armh
artistic_license Artistic
artistic_license_v2 Artistic 2.0
asl Apache
autoreconf autoreconf -fisv
brp_strip_debug %global _brp_strip_debug %{?_brp_strip_debug} %*
brp_strip_none %global _brp_strip_none %{?_brp_strip_none} %*
bsd BSD (revised)
bsd_orig BSD (original)
bsdstyle BSD-style
buildmulti

%global __spec_install_pre  %{___build_pre} %build %clean_buildroot %{__spec_install_custom_pre} %nil

Альтернативная директива %build для случая, когда в секции %build происходит заполнение %buildroot
buildroot %{_tmppath}/%{name}-buildroot Путь к BuildRoot
ccby25 CC-BY-2.5
ccby30 CC-BY-3.0
ccbysa25 CC-BY-SA-2.5
ccbysa30 CC-BY-SA-3.0
check_def
%{expand:%%{?_with_%{1}: %%{?_without_%{1}: %%{error: both _with_%{1} and _without_%{1} are defined}}}}
%{expand:%%{?_enable_%{1}: %%{?_disable_%{1}: %%{error: both _enable_%{1} and _disable_%{1} are defined}}}}
Проверка макросов условия на непротиворечивость
clean_buildroot
 %{?buildroot:%([ -n "$(echo %buildroot |tr -d /.)" ] && echo "%__chmod -Rf u+rwX -- %buildroot 2>/dev/null ||:; %__rm -rf -- %buildroot")}
 
Выполнение rm -rf %buildroot, если %buildroot не указывает на настоящий /
clean_menus
 %{warning %%clean_menus is obsolete and will be removed soon}update_menus_bin='%_update_menus_bin' && [ "$1" = 0 -a -x "$update_menus_bin" ] && "$update_menus_bin" ||:
 
Отмена регистрации удалённых меню
cleanup_build /usr/lib/rpm/brp-cleanup Вызов /usr/lib/rpm/brp-cleanup
cmake
 __cmake()
    {
    pushd BUILD
    cmake .. \
        %{?_cmake_skip_rpath} \
        -DCMAKE_SKIP_INSTALL_RPATH:BOOL=yes \
        -DCMAKE_C_FLAGS:STRING='%optflags' \
        -DCMAKE_CXX_FLAGS:STRING='%optflags' \
        -DCMAKE_Fortran_FLAGS:STRING='%optflags' \
        -DCMAKE_INSTALL_PREFIX=%prefix \
        -DINCLUDE_INSTALL_DIR:PATH=%_includedir \
        -DLIB_INSTALL_DIR:PATH=%_libdir \
        -DSYSCONF_INSTALL_DIR:PATH=%_sysconfdir \
        -DSHARE_INSTALL_PREFIX:PATH=%_datadir \
        -DLIB_DESTINATION=%_lib \
        %if "%_lib" == "lib64"
        -DLIB_SUFFIX="64" \
        %else
        -DLIB_SUFFIX="" \
        %endif
        \
        "$@"
    popd
    }
    mkdir -p BUILD;
    __cmake
 
cmake_build %make_build -C BUILD
cmake_insource
 cmake . \
    %{?_cmake_skip_rpath} \
    -DCMAKE_SKIP_INSTALL_RPATH:BOOL=yes \
    -DCMAKE_C_FLAGS:STRING='%optflags' \
    -DCMAKE_CXX_FLAGS:STRING='%optflags' \
    -DCMAKE_Fortran_FLAGS:STRING='%optflags' \
    -DCMAKE_INSTALL_PREFIX=%prefix \
    -DINCLUDE_INSTALL_DIR:PATH=%_includedir \
    -DLIB_INSTALL_DIR:PATH=%_libdir \
    -DSYSCONF_INSTALL_DIR:PATH=%_sysconfdir \
    -DSHARE_INSTALL_PREFIX:PATH=%_datadir \
    %if "%_lib" == "lib64"
    -DLIB_SUFFIX="64" \
    %else
    -DLIB_SUFFIX="" \
    %endif
    -DLIB_DESTINATION=%_lib
 
cmake_install %make_install -C BUILD
cmakeinstall_std %makeinstall_std -C BUILD
compress_docs /usr/lib/rpm/brp-compress Вызов /usr/lib/rpm/brp-compress
configure
  CFLAGS="${CFLAGS:-%optflags}"; export CFLAGS;
  CXXFLAGS="${CXXFLAGS:-%optflags}"; export CXXFLAGS;
  FFLAGS="${FFLAGS:-%optflags}"; export FFLAGS;
  [ -n "${ASFLAGS-}" ] || ASFLAGS="$(printf %%s '%optflags' |sed -r 's/(^|[[:space:]]+)-[^m][^[:space:]]*//g')"; export ASFLAGS;
  %{?_disable_static:export lt_cv_prog_cc_static_works=no ;}
  %{?_enable_static:export lt_cv_prog_cc_static_works=yes ;}
  export lt_cv_deplibs_check_method=pass_all ;
  %{_configure_update_config};
  %{_configure_script} %{?_configure_target:%{_configure_target}} \
    --prefix=%{_prefix} \
    --exec-prefix=%{_exec_prefix} \
    --bindir=%{_bindir} \
    --sbindir=%{_sbindir} \
    --sysconfdir=%{_sysconfdir} \
    --datadir=%{_datadir} \
    --includedir=%{_includedir} \
    --libdir=%{_libdir} \
    --libexecdir=%{_libexecdir} \
    --localstatedir=%{_localstatedir} \
    --sharedstatedir=%{_sharedstatedir} \
    --mandir=%{_mandir} \
    --infodir=%{_infodir} \
    --disable-dependency-tracking \
    %{?_configure_gettext:%{_configure_gettext}}
Макрос используется для упрощения выполнения ./configure с соответствующими параметрами данной платформы
def_disable %{expand:%%{!?_enable_%{1}: %%{!?_disable_%{1}: %%global _disable_%{1} --disable-%{1}}}} Установка значения макросов условия с указанием значения по умолчанию
def_enable %{expand:%%{!?_enable_%{1}: %%{!?_disable_%{1}: %%global _enable_%{1} --enable-%{1}}}} Установка значения макросов условия с указанием значения по умолчанию
def_with %{expand:%%{!?_with_%{1}: %%{!?_without_%{1}: %%global _with_%{1} --with-%{1}}}} Установка значения макросов условия с указанием значения по умолчанию
def_without %{expand:%%{!?_with_%{1}: %%{!?_without_%{1}: %%global _without_%{1} --without-%{1}}}} Установка значения макросов условия с указанием значения по умолчанию
defined %{expand:%%{?%{1}:1}%%{!?%{1}:0}} Проверка на существование макроса
disabled %{expand:%%{?_disable_%{1}:1}%%{!?_disable_%{1}:0}} Проверка значения макросов условия
distributable Distributable, non-free
distribution ALT Linux
enabled %{expand:%%{?_enable_%{1}:1}%%{!?_enable_%{1}:0}} Проверка значения макросов условия
epl Erlang Public License
fdl FDL
files_requiring_python3_ABI %nil
filter_from_provides %global __find_provides_filter %{?!__find_provides_filter:%__sed}%{?__find_provides_filter} -e '%*' Игнорирование зависимостей при сборке
filter_from_requires %global __find_requires_filter %{?!__find_requires_filter:%__sed}%{?__find_requires_filter} -e '%*' Игнорирование зависимостей при сборке
find_lang /usr/lib/rpm/find-lang Вызов /usr/lib/rpm/find-lang. Помогает отметить файлы зависящие от локали (locale), используется вместе с соответствующим тегом %lang в секции %files
force_disable %{expand:%%global _disable_%{1} --disable-%{1}}
force_enable %{expand:%%global _enable_%{1} --enable-%{1}}
force_update_alternatives
[ -x /usr/sbin/alternatives-update ] && /usr/sbin/alternatives-update ||:
force_with %{expand:%%global _with_%{1} --with-%{1}}
force_without %{expand:%%global _without_%{1} --without-%{1}}
fpc_arch
%fpc_macro%([ "%_lib" = lib64 ] && echo x86_64-linux || echo i386-linux)
fpc_build %fpc_make clean all
fpc_build_win32 %fpc_make_win32
fpc_dir %fpc_macro%_libdir/fpc
fpc_files
%%dir %fpc_dir
%%dir %fpc_dir/units
%%dir %fpc_dir/units/%1
%%dir %fpc_dir/units/%1/%2
%fpc_dir/units/%1/%2/%{?3:%3}%{!?3:*.*}
fpc_global %{expand:%%{?!fpc_%1:%%global %1 %2 %%%1%%global fpc_%1 %2}}
fpc_install %fpc_make install INSTALL_BASEDIR=%buildroot%fpc_dir INSTALL_BINDIR=%buildroot%_bindir
fpc_install_win32 %fpc_make_win32 install INSTALL_BASEDIR=%buildroot%fpc_dir INSTALL_BINDIR=%buildroot%_bindir
fpc_macro %([ -x %_rpmlibdir/fpc.req ])
fpc_make make RELEASE=1 CREATESMART=1 LINKSMART=1 FPCDIR=%fpc_dir
fpc_make_win32 %fpc_make FPC=ppc386 OS_TARGET=win32 CPU_TARGET=i386 BINUTILSPREFIX=i386-mingw32msvc-
fpc_win32_build %fpc_build_win32
fpc_win32_install %fpc_install_win32
fpc_win32_make %fpc_make_win32
gagpl3only GAGPLv3
gagpl3plus GAGPLv3+
get_NSVR
%(rpmquery --qf '%%{NAME}-%%|SERIAL?{%%{SERIAL}:}|%%{VERSION}-%%{RELEASE}' %1 2>/dev/null)
Четвёрка значений name-serial:version-release указанного пакета
get_SVR
%(rpmquery --qf '%%|SERIAL?{%%{SERIAL}:}|%%{VERSION}-%%{RELEASE}' %1 2>/dev/null)
Тройка значений serial:version-release указанного пакета
get_dep
%(rpmquery --qf '%%{NAME} >= %%|SERIAL?{%%{SERIAL}:}|%%{VERSION}-%%{RELEASE}' %1 2>/dev/null || echo '%1 >= unknown')
Строка вида name >= serial:version-release, построенная по указанному пакету
get_release
%(rpmquery --qf '%%{RELEASE}' %1 2>/dev/null)
Релиз указанного пакета
get_serial
%(rpmquery --qf '%%{SERIAL}' %1 2>/dev/null)
serial указанного пакета
get_version
%(rpmquery --qf '%%{VERSION}' %1 2>/dev/null)
Версия указанного пакета
gfdl GFDL
gpl2only GPLv2
gpl2plus GPLv2+
gpl3only GPLv3
gpl3plus GPLv3+
gpllgpl2only GPLv2, LGPLv2
gpllgpl2plus GPLv2+, LGPLv2+
gpllgpl3only GPLv3, LGPLv3
gpllgpl3plus GPLv3+, LGPLv3+
if_disabled
%if %{expand:%%{?_disable_%{1}:1}%%{!?_disable_%{1}:0}}
Ветвление по значению макросов условия
if_enabled
%if %{expand:%%{?_enable_%{1}:1}%%{!?_enable_%{1}:0}}
Ветвление по значению макросов условия
if_with
%if %{expand:%%{?_with_%{1}:1}%%{!?_with_%{1}:0}}
Ветвление по значению макросов условия
if_without %if %{expand:%%{?_without_%{1}:1}%%{!?_without_%{1}:0}} Ветвление по значению макросов условия
ifdef %if %{expand:%%{?%{1}:1}%%{!?%{1}:0}} Ветвление по факту существования макроса
ifndef %if %{expand:%%{?%{1}:0}%%{!?%{1}:1}} Ветвление по факту существования макроса
install_info /usr/sbin/install_info Регистрация новых/обновлённых info-страниц
intel i386 i486 i586 i686 i786 i886 i986 pentium2 pentium3 pentium4 Список архитектур intel, совместимых с i386
ix86 %intel %amd Список всех архитектур, совместимых с i386
jpackage_license JPackage
lgpl21only LGPLv2.1
lgpl21plus LGPLv2.1+
lgpl2only LGPLv2
lgpl2plus LGPLv2+
lgpl3only LGPLv3
lgpl3plus LGPLv3+
lppl LPPL
make %_make_bin
make_build
[ -n "$NPROCS" ] || NPROCS=%__nprocs; %_make_bin -j$NPROCS
Вызов make с параметром, обеспечивающим оптимальную параллельную сборку в данной среде. По умолчанию поддерживает при сборке использование нескольких процессоров/ядер.
make_compile %make_build
make_install %_make_bin INSTALL="%__install -p" Макрос используется для упрощения установки софта, Makefile которого умеет использовать параметр DESTDIR
make_session %nil
makeinstall
  %__make INSTALL="%__install -p" \
    prefix=%{?buildroot:%{buildroot}}%{_prefix} \
    exec_prefix=%{?buildroot:%{buildroot}}%{_exec_prefix} \
    bindir=%{?buildroot:%{buildroot}}%{_bindir} \
    sbindir=%{?buildroot:%{buildroot}}%{_sbindir} \
    sysconfdir=%{?buildroot:%{buildroot}}%{_sysconfdir} \
    datadir=%{?buildroot:%{buildroot}}%{_datadir} \
    includedir=%{?buildroot:%{buildroot}}%{_includedir} \
    libdir=%{?buildroot:%{buildroot}}%{_libdir} \
    libexecdir=%{?buildroot:%{buildroot}}%{_libexecdir} \
    localstatedir=%{?buildroot:%{buildroot}}%{_localstatedir} \
    sharedstatedir=%{?buildroot:%{buildroot}}%{_sharedstatedir} \
    mandir=%{?buildroot:%{buildroot}}%{_mandir} \
    infodir=%{?buildroot:%{buildroot}}%{_infodir} \
  %{?_makeinstall_target:%{_makeinstall_target}}
 
“%make_install <инициализация других переменных, используемых многими Makefileами> install”
makeinstall_std %make_install install DESTDIR=%buildroot Рекомендуемый вариант, эквивалентный
%make_install DESTDIR=%buildroot install
mit MIT/X Consortium
mpl MPL
nil %{!?nil}
optflags %optflags_default
optflags_core -pipe Базовые параметры
optflags_debug -g Опции отладки
optflags_default %optflags_core %optflags_warnings %optflags_debug %{!?_enable_debug:%{optflags_optimization}}
optflags_fastmath -ffast-math
optflags_kernel %nil Параметры, используемые при компиляции ядра и его модулей
optflags_nocpp -fno-exceptions -fno-rtti Параметры, отключающие поддержку C++ exceptions и C++ RTTI
optflags_notraceback -fomit-frame-pointer
optflags_optimization -O%{_optlevel} Параметры, отвечающие за оптимизацию, кроме архитектурно-зависимых
optflags_shared -fPIC -DPIC Параметры, применяемые для порождения корректного кода для DSO
optflags_strict -fstrict-aliasing
optflags_warnings -Wall%{?_enable_Werror: -Werror} Оции предупреждений
packagerAddress
%(echo -E '%packager' |sed -e 's/.*<\([^<>]\+@[^<>]\+\)>.*/\1/')
packagerName
%(echo -E '%packager' |sed -e 's/[[:space:]]*<.*//')
perl_fix_local
%__subst -p 's,/usr/local\>,/usr,g'
perl_license Perl (GPL or Artistic)
perl_vendor_archlib
%(eval "`%__perl -V:installvendorarch`"; echo "$installvendorarch")
perl_vendor_autolib %perl_vendor_archlib/auto
perl_vendor_build
perl_vendor_optflags %(eval "`%__perl -V:optimize`"; echo "$optimize")
perl_vendor_privlib %(eval "`%__perl -V:installvendorlib`"; echo "$installvendorlib")
perl_vendorarch %perl_vendor_archlib
perl_vendorlib %perl_vendor_privlib
post_control(s:)
if [ $1 -ge 2 ]; then
    /usr/sbin/control-restore %*
else
    for facility in %*; do
        /usr/sbin/control "$facility" %{-s*}%{!-s:public}
    done
fi
%nil
 
post_ldconfig %{warning %%post_ldconfig is obsolete and will be removed soon}/sbin/ldconfig Регистрация новых/обновлённых библиотек
post_ldconfig_lib %{warning %%post_ldconfig_lib is obsolete and will be removed soon}/sbin/ldconfig Регистрация новых/обновлённых библиотек
post_ldconfig_sys %{warning %%post_ldconfig_sys is obsolete and will be removed soon}/sbin/post_ldconfig Регистрация новых/обновлённых системных библиотек (которые могут быть использованы в chroot’ах)
post_reg_alts %post_register_alternatives
post_register_alternatives %register_alternatives
post_service /usr/sbin/post_service Регистрация нового сервиса при установке, перезапуск при обновлении
post_update_alternatives %update_alternatives
post_update_alts %update_alternatives
postun_ldconfig %{warning %%postun_ldconfig is obsolete and will be removed soon}/sbin/postun_ldconfig Отмена регистрации удалённых библиотек
pre_control
if [ $1 -ge 2 ]; then
    /usr/sbin/control-dump %*
fi
%nil
 
prefix %_prefix
preun_remove_alternatives %remove_alternatives
preun_remove_alts %preun_remove_alternatives
preun_service /usr/sbin/preun_service Отмена регистрации сервиса и его выключение при удалении
preun_unreg_alts %preun_unregister_alternatives
preun_unregister_alternatives %unregister_alternatives
pubdomain Public domain
py3_provides
Provides: %(%{expand: %%__python3_deps_internal %{*}})
Provides: %(%{expand: %%__python3_deps_internal_old %{*}})
%nil
 
py3_requires
Requires: %(%{expand: %%__python3_deps_internal %{*}})
%nil
 
py_dependencies %(%{expand: %%__python_deps_internal %{*}})
py_package_dependencies %(%{expand: %%__python_package_deps_internal %{*}})
py_package_provides

%(echo -n "Provides:"; %{expand: %%__python_package_deps_internal %{*}}) %nil

py_package_requires %(echo -n "Requires:"; %{expand: %%__python_package_deps_internal %{*}})

%nil

py_provides %(echo -n "Provides:"; %{expand: %%__python_deps_internal %{*}})

%nil

py_requires %(echo -n "Requires:"; %{expand: %%__python_deps_internal %{*}})

%nil

python3_ABI_dep python%_python3_abi_version-ABI%ABI_suffix
python3_build
CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ;
CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ;
FFLAGS="${FFLAGS:-%optflags}" ; export FFLAGS ;
%__python3 setup.py build
python3_build_debug
CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ;
CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ;
FFLAGS="${FFLAGS:-%optflags}" ; export FFLAGS ;
%__python3 setup.py build --debug
 
python3_build_install
CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ;
CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ;
FFLAGS="${FFLAGS:-%optflags}" ; export FFLAGS ;
%__python3 setup.py install --root=%buildroot
 
python3_dynlibdir %__python3_dynlibdir
python3_install %__python3 setup.py install --skip-build --root=%buildroot
python3_libdir %__python3_libdir
python3_req_hier %global _python3_req_hier yes
python3_req_nohier %undefine _python3_req_hier
python3_sitelibdir %_target_python3_libdir/python3/site-packages
python3_sitelibdir_noarch %_target_libdir_noarch/python3/site-packages
python_build
CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ;
CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ;
FFLAGS="${FFLAGS:-%optflags}" ; export FFLAGS ;
%__python setup.py build
python_build_debug
CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ;
CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ;
FFLAGS="${FFLAGS:-%optflags}" ; export FFLAGS ;
%__python setup.py build --debug
python_build_install
CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ;
CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ;
FFLAGS="${FFLAGS:-%optflags}" ; export FFLAGS ;
%__python setup.py install --root=%buildroot
python_dynlibdir %python_libdir/lib-dynload
python_includedir %_includedir/python%__python_version
python_install %__python setup.py install --skip-build --root=%buildroot
python_libdir %_target_python_libdir/python%__python_version
python_module_declare %global _python_module_declared %1 %_python_module_declared
python_req_hier %global _python_req_hier yes
python_sitelibdir %python_libdir/site-packages
python_sitelibdir_noarch %_target_libdir_noarch/python%__python_version/site-packages
python_tooldir %python_libdir/tools
qmake_qt4
__qmake_qt4()
{
    CPPFLAGS="${CPPFLAGS:-%optflags -DPIC -fPIC}" ; export CPPFLAGS ; \
    %_qt4dir/bin/qmake \
    QMAKE_CFLAGS="${CFLAGS:-%optflags -DPIC -fPIC}" \
    QMAKE_CXXFLAGS="${CXXFLAGS:-%optflags -DPIC -fPIC}" \
    "$@"
}
__qmake_qt4
qpl1 QPLv1.0
rake %ruby_vendor %_bindir/rake
rake_install DESTDIR=%buildroot %rake install
rdoc rdoc -o %buildroot%ruby_ri_sitedir --ri --all Вызов rdoc (для секции %install) с опциями --ri-site --all
reg_alts %register_alternatives
register_alternatives %{warning %%register_alternatives is obsolete}/usr/sbin/alternatives-helper --install
remove_alternatives
%{warning %%remove_alternatives is obsolete}[ "$1" = 0 ] || exit 0; [ -x /usr/sbin/alternatives-update ] && /usr/sbin/alternatives-update --ignore
remove_alts %remove_alternatives
remove_optflags <options>
%global optflags %(opt="%optflags"; for f in %{**}; do opt="$(echo "$opt"|sed -e "s/ $f//g;s/$f //g")"; done; echo "$opt")
Убрать указанные параметры из стандартного набора %optflags
requires_python3_ABI_for_files
BuildPreReq: python3-devel
Requires: %python3_ABI_dep
%global files_requiring_python3_ABI %files_requiring_python3_ABI %*
%nil
rpm_check_field(p:)
%(foo=`rpmquery --qf '%%{%1}' %{-p:%{-p*}} 2>/dev/null`; [ "`expr '$foo' '>' '%2'`" -eq 1 ] && echo -n "$foo" || echo -n "%2")
ruby_arch %(%ruby_rubyconf arch)
ruby_archdir %(%ruby_rubyconf archdir)
ruby_build %ruby_setup_rb setup
ruby_build_std %ruby_config %*

%ruby_build

ruby_config %ruby_setup_rb config
ruby_configure %ruby_vendor extconf.rb --ruby=/usr/bin/ruby
ruby_includedir %(%ruby_rubyconf rubyhdrdir)
ruby_install %ruby_setup_rb install --prefix=%buildroot
ruby_libdir %(%ruby_rubyconf rubylibdir)
ruby_rbconfig %ruby_vendor -rrbconfig
ruby_ridir %(%ruby_rubyconf ridir)
ruby_ri_sitedir %ruby_ridir/site
ruby_rubyconf %ruby_rbconfig -e 'print RbConfig::CONFIG["%*"]'
ruby_setup_rb %ruby_vendor %_ruby_setup_rb Путь к setup.rb (по умолчанию setup.rb)
ruby_sitearcdir %(%ruby_rubyconf sitearchdir)
ruby_siteincludedir %(%ruby_rubyconf vendorhdrdir)
ruby_sitelibdir %(%ruby_rubyconf sitelibdir)
ruby_test_unit %_bindir/testrb
ruby_vendor %__ruby -rvendor-specific
sendmail_license Sendmail
set_autoconf_version %global _autoconf_version %*

%global _buildrequires_build %_buildrequires_build autoconf_%_autoconf_version %nil

Выбор версии autoconf из множества установленных в системе (по умолчанию используется версия default)
set_automake_version %global _automake_version %*

%global _buildrequires_build %_buildrequires_build automake_%_automake_version %nil

Выбор версии automake из множества установленных в системе (по умолчанию используется версия default)
set_cleanup_method %global _cleanup_method %* Изменить значение макроса
set_cleanup_skiplist %global _cleanup_skiplist %* Изменить значение макроса
set_cleanup_topdir %global _cleanup_topdir %* Изменить значение макроса
set_compress_method %global _compress_method %* Изменить значение макроса
set_compress_skiplist %global _compress_skiplist %* Изменить значение макроса
set_compress_topdir %global _compress_topdir %* Изменить значение макроса
set_debuginfo_skiplist %global _debuginfo_skiplist %* Изменить значение макроса
set_findpackage_path %global _findpackage_path %*
set_findprov_lib_path %global _findprov_lib_path %*
set_findprov_skiplist %global _findprov_skiplist %* Изменить значение макроса
set_findprov_topdir %global _findprov_topdir %* Изменить значение макроса
set_findreq_skiplist %global _findreq_skiplist %* Изменить значение макроса
set_findreq_topdir %global _findreq_topdir %* Изменить значение макроса
set_fixup_method %global _fixup_method %* Изменить значение макроса
set_fixup_skiplist %global _fixup_skiplist %* Изменить значение макроса
set_fixup_topdir %global _fixup_topdir %* Изменить значение макроса
set_gcc_version %global _gcc_version %*

%global _buildrequires_build %_buildrequires_build gcc%_gcc_version %nil

Выбор версии GCC из множества установленных в системе
set_girdir %global _girdir %*
set_libtool_version %global _libtool_version %*

%global _buildrequires_build %_buildrequires_build libtool_%_libtool_version %nil

Выбор версии libtool из множества установленных в системе (по умолчанию используется версия default)
set_perl_req_method %global _perl_req_method %*
set_python3_req_method %global _python3_req_method %1
set_python_compile_method %global _python_compile_method %1
set_python_req_method %global _python_req_method %1
set_ruby_req_method %global _ruby_req_method %* strict, normal или relaxed
set_typelibdir %global _typelibdir %*
set_verify_elf_method %global _verify_elf_method %* Изменить значение макроса
set_verify_elf_skiplist %global _verify_elf_skiplist %* Изменить значение макроса
set_verify_elf_topdir %global _verify_elf_topdir %* Изменить значение макроса
set_verify_info_method %global _verify_info_method %* Изменить значение макроса
setup_python_module %{expand: %%{!?__python_package_version:%%_setup_python_module_internal %{*}}}

%{expand: %%setup_std_python_package_deps}

setup_python_module_loose %{expand: %%global __python_disable_bind_version 1}

%{expand: %%setup_python_module %{*}}

setup_python_subpackage %{expand: %%_setup_python_module_internal %{*}}
setup_std_python_package_deps
%{expand: %%{!?modulename:%%_setup_python_module_internal %{*}}}
%(echo "Requires: python = %__python_version")
%(echo "BuildPreReq: python-devel = %__python_version")
%(echo "BuildPreReq: rpm-build-python >= 0.8")
%(echo "Provides: python%__python_version-module-%modulename = %version-%release")
%nil
subst_enable %{expand:%%{?_enable_%{1}:%%{_enable_%{1}}}} %{expand:%%{?_disable_%{1}:%%{_disable_%{1}}}} Подстановка значения макросов условия
subst_with %{expand:%%{?_with_%{1}:%%{_with_%{1}}}} %{expand:%%{?_without_%{1}:%%{_without_%{1}}}} Подстановка значения макросов условия
systemd_unitdir %_unitdir
undefined %{expand:%%{?%{1}:0}%%{!?%{1}:1}} Проверка на существование макроса
uninstall_info /usr/sbin/uninstall_info Отмена регистрации удалённых info-страниц
unreg_alts %unregister_alternatives
unreg_alts_always %unregister_alternatives_always
unregister_alternatives
%{warning %%unregister_alternatives is obsolete}[ "$1" = 0 ] || exit 0; [ -x /usr/sbin/alternatives-helper ] && /usr/sbin/alternatives-helper --remove
unregister_alternatives_always %{warning %%register_alternatives_always is obsolete}[ -x /usr/sbin/alternatives-helper ] && /usr/sbin/alternatives-helper --remove
update_alternatives
%{warning %%update_alternatives is obsolete}[ -x /usr/sbin/alternatives-update ] && /usr/sbin/alternatives-update %* ||: %nil
update_alts %update_alternatives
update_menus
%{warning %%update_menus is obsolete and will be removed soon}update_menus_bin='%_update_menus_bin' && [ -x "$update_menus_bin" ] && "$update_menus_bin" ||:
Регистрация новых/обновлённых меню
update_setup_rb cp %_datadir/ruby-setup/setup.rb %_ruby_setup_rb
vendor ALT Linux Team
w3cl W3C
warning %{warn:WARNING: %*

}

with %{expand:%%{?_with_%{1}:1}%%{!?_with_%{1}:0}} Проверка значения макросов условия
without %{expand:%%{?_without_%{1}:1}%%{!?_without_%{1}:0}} Проверка значения макросов условия

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

Используются для задания каталога связанного с макросом:

Макрос Замена Описание
Макросы файловой системы
%_usr /usr
%_usrsrc %{_usr}/src
%_var /var
%_builddir Директория где будут распакованы исходные коды и применены патчи
%_dbpath %{_var}/lib/rpm Расположение файлов базы данных rpm
%buildroot %{_tmppath}/%{name}-buildroot путь к BuildRoot
Макросы используемые для configure
%_prefix /usr Размещение архитектурно-независимых файлов.
%_exec_prefix %{_prefix} Размещение архитектурно-зависящих файлов.
%_bindir %{_exec_prefix}/bin Размещение пользовательских исполняемых файлов
%_sbindir %{_exec_prefix}/sbin Размещение системных исполняемых файлов
%_libexecdir %{_exec_prefix}/lib Размещение библиотек???
%_datadir %{_prefix}/share Размещение архитектурно-независимых данных
%_sysconfdir /etc ???
%_sharedstatedir %{_prefix}/com Размещение модифицируемых архитектурно-независимых данные
%_localstatedir %{_var}/lib ???
%_lib lib ???
%_libdir %{_exec_prefix}/%{_lib} Библиотеки объектного кода
%_includedir %{_prefix}/include Размещение заголовочных(Headers) файлов
%_oldincludedir usr/include Размещение заголовочных файлов для не-GCC
%_infodir %{_datadir}/info Информация документации
%_mandir %{_datadir}/man Документация для man
%_configure_script ./configure
%_configure_target --build=%{_target_platform} --host=%{_target_platform}
%_configure_gettext --without-included-gettext
%configure