User Tools

Site Tools


rpm_macros

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

rpm_macros [2015/05/22 10:43]
stephdl [RPM directory macros]
rpm_macros [2019/06/05 21:48]
Line 1: Line 1:
-===== Valid RPM Macros ===== 
  
-Here are the definitions for some common specfile macros as they are defined on Fedora 13 (rpm-4.8.0-14.fc13). For definitions of more macros, examine the output of "<​code>​rpm --showrc</​code>"​. To see the expanded definition of a macro use the command <​code>​rpm --eval "​%{macro}"</​code>​. ​ Note that neither command will take into account macros defined inside specfiles, but both will take into account macros defined in your <​code>​~/​.rpmmacros</​code>​ file and macros defined on the command line. 
- 
-Keep in mind that some of these macros may evaluate differently on older Fedora or EPEL releases. ​ 
- 
-==== Macros mimicking autoconf variables ==== 
- 
-  %{_sysconfdir} ​       /etc 
-  %{_prefix} ​           /usr 
-  %{_exec_prefix} ​      ​%{_prefix} 
-  %{_bindir} ​           %{_exec_prefix}/​bin 
-  %{_libdir} ​           %{_exec_prefix}/​%{_lib} 
-  %{_libexecdir} ​       %{_exec_prefix}/​libexec 
-  %{_sbindir} ​          ​%{_exec_prefix}/​sbin 
-  %{_sharedstatedir} ​   /var/lib 
-  %{_datarootdir} ​      ​%{_prefix}/​share 
-  %{_datadir} ​          ​%{_datarootdir} 
-  %{_includedir} ​       %{_prefix}/​include 
-  %{_infodir} ​          /​usr/​share/​info 
-  %{_mandir} ​           /​usr/​share/​man 
-  %{_localstatedir} ​    /var 
-  %{_initddir} ​         %{_sysconfdir}/​rc.d/​init.d 
- 
-<WRAP center round tip 60%> 
-Differences in EPEL 4 & 5  
-  * **%{_initddir}** does not exist in EPEL 4 & 5, use the deprecated **%{_initrddir}** macro instead ​ 
-  * **%{_sharedstatedir}** expands to **%{_prefix}/​com** in EPEL 4 & 5 
-</​WRAP>​ 
- 
- 
- 
-==== Other macros and variables for paths ==== 
-These macros should be used for paths that are not covered by the macros mimicking autoconf variables. The <​code>​%{buildroot}</​code>​ macro or the <​code>​$RPM_BUILD_ROOT</​code>​ variable is the directory that should be assumed to be the root file system when installing files. Is is used as the value for the <​code>​DESTDIR</​code>​ variable. 
- 
-  %{_var} ​              /var 
-  %{_tmppath} ​          ​%{_var}/​tmp 
-  %{_usr} ​              /usr 
-  %{_usrsrc} ​           %{_usr}/src 
-  %{_lib} ​              lib (lib64 on 64bit multilib systems) 
-  %{_docdir} ​           %{_datadir}/​doc 
-  %{buildroot} ​         %{_buildrootdir}/​%{name}-%{version}-%{release}.%{_arch} 
-  $RPM_BUILD_ROOT ​      ​%{buildroot} 
- 
- 
-==== Build flags macros and variables ==== 
-These macros should be used as flags for the compiler or linker. Note that the values for the macros below reflect the settings on Fedora 13 (i686) with redhat-rpm-config installed. 
- 
- 
-  %{__global_cflags} ​  -O2 -g -pipe -Wall -Wp,​-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 
-  %{optflags} ​         %{__global_cflags} -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables 
-  $RPM_OPT_FLAGS ​      ​%{optflags} 
- 
- 
- 
-==== RPM directory macros ==== 
-The macros are usually used with <​code>​rpmbuild --define</​code>​ to specify which directories rpmbuild should use, it is unusual to use them within SPEC files. 
- 
-  %{_topdir} ​           %{getenv:​HOME}/​rpmbuild 
-  %{_builddir} ​         %{_topdir}/​BUILD 
-  %{_rpmdir} ​           %{_topdir}/​RPMS 
-  %{_sourcedir} ​        ​%{_topdir}/​SOURCES 
-  %{_specdir} ​          ​%{_topdir}/​SPECS 
-  %{_srcrpmdir} ​        ​%{_topdir}/​SRPMS 
-  %{_buildrootdir} ​     %{_topdir}/​BUILDROOT 
- 
- 
-<WRAP center round tip 60%> 
-**%{_buildrootdir}** does not exist in EPEL 4 & 5 
-</​WRAP>​ 
- 
-{{tag> rpm }} 
rpm_macros.txt ยท Last modified: 2019/06/05 21:48 (external edit)