summaryrefslogtreecommitdiff
path: root/macros.in
diff options
context:
space:
mode:
Diffstat (limited to 'macros.in')
-rw-r--r--macros.in1074
1 files changed, 1074 insertions, 0 deletions
diff --git a/macros.in b/macros.in
new file mode 100644
index 0000000..3a5bbcd
--- /dev/null
+++ b/macros.in
@@ -0,0 +1,1074 @@
+#/*! \page config_macros Default configuration: @RPMCONFIGDIR@/macros
+# \verbatim
+#
+# This is a global RPM configuration file. All changes made here will
+# be lost when the rpm package is upgraded. Any per-system configuration
+# should be added to /etc/rpm/macros, while per-user configuration should
+# be added to ~/.rpmmacros.
+#
+#==============================================================================
+# Macro naming conventions (preliminary):
+#
+# Macros that begin with an underscore are "local" in the sense that
+# they (if used) will not be exported in rpm headers. Some macros
+# that don't start with an underscore (but look like they should)
+# are compatible with macros generated by rpm-2.5.x and will be made
+# more consistent in a future release.
+#
+
+#==============================================================================
+# ---- A macro that expands to nothing.
+#
+%nil %{!?nil}
+
+#==============================================================================
+# ---- filesystem macros.
+#
+%_usr @prefix@
+%_usrsrc %{_usr}/src
+%_var @localstatedir@
+
+#==============================================================================
+# ---- Generally useful path macros.
+#
+%__awk @AWK@
+%__bzip2 @__BZIP2@
+%__cat @__CAT@
+%__chgrp @__CHGRP@
+%__chmod @__CHMOD@
+%__chown @__CHOWN@
+%__cp @__CP@
+%__cpio @__CPIO@
+%__file @__FILE@
+%__gpg @__GPG@
+%__grep @__GREP@
+%__gzip @__GZIP@
+%__id @__ID@
+%__id_u %{__id} -u
+%__install @__INSTALL@
+%__ln_s @LN_S@
+%__lrzip @__LRZIP@
+%__lzip @__LZIP@
+# Deprecated, use %__xz instead.
+%__lzma %__xz --format=lzma
+%__xz @__XZ@
+%__make @__MAKE@
+%__mkdir @__MKDIR@
+%__mkdir_p @__MKDIR_P@
+%__mv @__MV@
+%__patch @__PATCH@
+%__perl @__PERL@
+%__python @__PYTHON@
+%__restorecon @__RESTORECON@
+%__rm @__RM@
+%__rsh @__RSH@
+%__sed @__SED@
+%__semodule @__SEMODULE@
+%__ssh @__SSH@
+%__tar @__TAR@
+%__unzip @__UNZIP@
+
+#==============================================================================
+# ---- Build system path macros.
+#
+%__ar @AR@
+%__as @AS@
+%__cc @__CC@
+%__cpp @CPP@
+%__cxx @CXX@
+%__ld @__LD@
+%__nm @__NM@
+%__objcopy @__OBJCOPY@
+%__objdump @__OBJDUMP@
+%__ranlib @RANLIB@
+%__remsh %{__rsh}
+%__strip @__STRIP@
+
+# XXX avoid failures if tools are not installed when rpm is built.
+%__libtoolize libtoolize
+%__aclocal aclocal
+%__autoheader autoheader
+%__automake automake
+%__autoconf autoconf
+
+#==============================================================================
+# Conditional build stuff.
+
+# Check if symbol is defined.
+# Example usage: %if %{defined with_foo} && %{undefined with_bar} ...
+%defined() %{expand:%%{?%{1}:1}%%{!?%{1}:0}}
+%undefined() %{expand:%%{?%{1}:0}%%{!?%{1}:1}}
+
+# Shorthand for %{defined with_...}
+%with() %{expand:%%{?with_%{1}:1}%%{!?with_%{1}:0}}
+%without() %{expand:%%{?with_%{1}:0}%%{!?with_%{1}:1}}
+
+# Handle conditional builds. %bcond_with is for case when feature is
+# default off and needs to be activated with --with ... command line
+# switch. %bcond_without is for the dual case.
+#
+# %bcond_with foo defines symbol with_foo if --with foo was specified on
+# command line.
+# %bcond_without foo defines symbol with_foo if --without foo was *not*
+# specified on command line.
+#
+# For example (spec file):
+#
+# (at the beginning)
+# %bcond_with extra_fonts
+# %bcond_without static
+# (and later)
+# %if %{with extra_fonts}
+# ...
+# %else
+# ...
+# %endif
+# %if ! %{with static}
+# ...
+# %endif
+# %ifdef %{with static}
+# ...
+# %endif
+# %{?with_static: ... }
+# %{!?with_static: ... }
+# %{?with_extra_fonts: ... }
+# %{!?with_extra_fonts: ... }
+
+#
+# The bottom line: never use without_foo, _with_foo nor _without_foo, only
+# with_foo. This way changing default set of bconds for given spec is just
+# a matter of changing single line in it and syntax is more readable.
+%bcond_with() %{expand:%%{?_with_%{1}:%%global with_%{1} 1}}
+%bcond_without() %{expand:%%{!?_without_%{1}:%%global with_%{1} 1}}
+#
+#==============================================================================
+# ---- Required rpmrc macros.
+# Macros that used to be initialized as a side effect of rpmrc parsing.
+# These are the default values that can be overridden by other
+# (e.g. per-platform, per-system, per-packager, per-package) macros.
+#
+# The directory where rpm's configuration and scripts live
+%_rpmconfigdir %{getconfdir}
+
+# The directory where sources/patches will be unpacked and built.
+%_builddir %{_topdir}/BUILD
+
+# The interpreter used for build scriptlets.
+%_buildshell /bin/sh
+
+# The path to the bzip2 executable (legacy, use %{__bzip2} instead).
+%_bzip2bin %{__bzip2}
+
+# The location of the rpm database file(s).
+%_dbpath %{_var}/lib/rpm
+
+# The location of the rpm database file(s) after "rpm --rebuilddb".
+%_dbpath_rebuild %{_dbpath}
+
+%_keyringpath %{_dbpath}/pubkeys/
+
+#
+# Path to script that creates debug symbols in a /usr/lib/debug
+# shadow tree.
+#
+# A spec file can %%define _find_debuginfo_opts to pass options to
+# the script. See the script for details.
+#
+%__debug_install_post \
+ %{_rpmconfigdir}/find-debuginfo.sh %{?_missing_build_ids_terminate_build:--strict-build-id} %{?_find_debuginfo_opts} "%{_builddir}/%{?buildsubdir}"\
+%{nil}
+
+# Template for debug information sub-package.
+%debug_package \
+%ifnarch noarch\
+%global __debug_package 1\
+%package debug\
+Summary: Debug information for package %{name}\
+Group: Development/Debug\
+AutoReqProv: 0\
+%description debug\
+This package provides debug information for package %{name}.\
+Debug information is useful when developing applications that use this\
+package or when debugging this package.\
+%files debug -f debugfiles.list\
+%defattr(-,root,root)\
+%endif\
+%{nil}
+
+%_defaultdocdir %{_datadir}/doc
+
+# The path to the gzip executable (legacy, use %{__gzip} instead).
+%_gzipbin %{__gzip}
+
+# The Unix time of the latest kept changelog entry in binary packages.
+# Any older entry is not packaged in binary packages.
+%_changelog_trimtime 0
+
+# The directory where newly built binary packages will be written.
+%_rpmdir %{_topdir}/RPMS
+
+# A template used to generate the output binary package file name
+# (legacy).
+%_rpmfilename %{_build_name_fmt}
+
+# The directory where sources/patches from a source package will be
+# installed. This is also where sources/patches are found when building.
+%_sourcedir %{_topdir}/SOURCES
+
+# The directory where the spec file from a source package will be
+# installed.
+%_specdir %{_topdir}/SPECS
+
+# The directory where newly built source packages will be written.
+%_srcrpmdir %{_topdir}/SRPMS
+
+# The directory where buildroots will be created.
+%_buildrootdir %{_topdir}/BUILDROOT
+
+# Build root path, where %install installs the package during build.
+%buildroot %{_buildrootdir}/%{name}-%{version}-%{release}.%{_arch}
+
+# Directory where temporaray files can be created.
+%_tmppath %{_var}/tmp
+
+# Path to top of build area.
+%_topdir %{getenv:HOME}/rpmbuild
+
+# The path to the unzip executable (legacy, use %{__unzip} instead).
+%_unzipbin %{__unzip}
+
+#==============================================================================
+# ---- Optional rpmrc macros.
+# Macros that are initialized as a side effect of rpmrc and/or spec
+# file parsing.
+#
+# The sub-directory (relative to %{_builddir}) where sources are compiled.
+# This macro is set after processing %setup, either explicitly from the
+# value given to -n or the default name-version.
+#
+#%buildsubdir
+
+# Configurable distribution information, same as Distribution: tag in a
+# specfile.
+#
+#%distribution
+
+# Configurable distribution URL, same as DistURL: tag in a specfile.
+# The URL will be used to supply reliable information to tools like
+# rpmfind.
+#
+# Note: You should not configure with disturl (or build packages with
+# the DistURL: tag) unless you are willing to supply content in a
+# yet-to-be-determined format at the URL specified.
+#
+#%disturl
+
+# Configurable bug URL, same as BugURL: tag in a specfile.
+# The URL will be used to supply reliable information to where
+# to file bugs.
+#
+#%bugurl
+
+# Boolean (i.e. 1 == "yes", 0 == "no") that controls whether files
+# marked as %doc should be installed.
+#%_excludedocs
+
+# The port and machine name of a FTP proxy host running TIS firewall.
+#
+#%_ftpport
+#%_ftpproxy
+
+# The signature to use and the location of configuration files for
+# signing packages with GNU gpg.
+#
+#%_gpg_name
+#%_gpg_path
+
+# The port and machine name of an HTTP proxy host.
+#
+#%_httpport
+#%_httpproxy
+
+# The PATH put into the environment before running %pre/%post et al.
+#
+%_install_script_path /sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin
+
+# A colon separated list of desired locales to be installed;
+# "all" means install all locale specific files.
+#
+%_install_langs all
+
+# The value of CLASSPATH in build scriptlets (iff configured).
+#
+#%_javaclasspath all
+
+# Import packaging conventions from jpackage.org (prefixed with _
+# to avoid name collisions).
+#
+%_javadir %{_datadir}/java
+%_javadocdir %{_datadir}/javadoc
+
+# A colon separated list of paths where files should *not* be installed.
+# Usually, these are network file system mount points.
+#
+#%_netsharedpath
+
+# (experimental)
+# The type of pattern match used on rpmdb iterator selectors:
+# "default" simple glob-like regex, periods will be escaped,
+# splats will have period prepended, full "^...$" match
+# required. Also, file path tags will use glob(7).
+# "strcmp" compare strings
+# "regex" regex(7) patterns using regcomp(3)/regexec(3)
+# "glob" glob(7) patterns using fnmatch(3)
+#
+%_query_selector_match default
+
+# Configurable packager information, same as Packager: in a specfile.
+#
+#%packager
+
+# Compression type and level for source/binary package payloads.
+# "w9.gzdio" gzip level 9 (default).
+# "w9.bzdio" bzip2 level 9.
+# "w7.xzdio" xz level 7, xz's default.
+# "w7.lzdio" lzma-alone level 7, lzma's default
+#
+#%_source_payload w9.gzdio
+#%_binary_payload w9.gzdio
+
+# Algorithm to use for generating file checksum digests on build.
+# If not specified or 0, MD5 is used.
+# WARNING: non-MD5 is backwards incompatible, don't enable lightly!
+# The supported algorithms may depend on NSS version, as of NSS
+# 3.11.99.5 the following are supported:
+# 1 MD5 (default)
+# 2 SHA1
+# 8 SHA256
+# 9 SHA384
+# 10 SHA512
+#
+#%_source_filedigest_algorithm 1
+#%_binary_filedigest_algorithm 1
+
+# Configurable vendor information, same as Vendor: in a specfile.
+#
+#%vendor
+
+# Default fuzz level for %patch in spec file.
+%_default_patch_fuzz 0
+
+# Default patch flags
+%_default_patch_flags -s
+
+#==============================================================================
+# ---- Build configuration macros.
+#
+# Script gets packaged file list on input and buildroot as first parameter.
+# Returns list of unpackaged files, i.e. files in $RPM_BUILD_ROOT not packaged.
+#
+# Note: Disable (by commenting out) for legacy compatibility.
+%__check_files %{_rpmconfigdir}/check-files %{buildroot}
+
+#
+# Should unpackaged files in a build root terminate a build?
+#
+# Note: The default value should be 0 for legacy compatibility.
+%_unpackaged_files_terminate_build 1
+
+#
+# Should missing %doc files in the build directory terminate a build?
+#
+# Note: The default value should be 0 for legacy compatibility.
+%_missing_doc_files_terminate_build 1
+
+#
+# Should binaries in noarch packages terminate a build?
+%_binaries_in_noarch_packages_terminate_build 1
+
+#
+# Program to call for each successfully built and written binary package.
+# The package name is passed to the program as a command-line argument.
+#
+#%_build_pkgcheck %{_bindir}/rpmlint
+
+#
+# Program to call for the whole binary package set after build.
+# The package set is passed to the program via command-line arguments.
+#
+#%_build_pkgcheck_set %{_bindir}/rpmlint
+
+#
+# Program to call for successfully built and written SRPM.
+# The package name is passed to the program as a command-line argument.
+#
+#%_build_pkgcheck_srpm %{_bindir}/rpmlint
+
+#
+# Should the build of packages fail if package checker (if defined) returns
+# non-zero exit status?
+#
+#%_nonzero_exit_pkgcheck_terminate_build 1
+
+#
+# Should an ELF file processed by find-debuginfo.sh having no build ID
+# terminate a build? This is left undefined to disable it and defined to
+# enable.
+#
+#%_missing_build_ids_terminate_build 1
+
+#
+# Use internal dependency generator rather than external helpers?
+%_use_internal_dependency_generator 1
+
+#
+# Filter GLIBC_PRIVATE Provides: and Requires:
+%_filter_GLIBC_PRIVATE 0
+
+# Desired selinux policy tree
+%__policy_tree %{expand:%%global __policy_tree %{lua:\
+t="targeted"\
+f = io.open("/etc/selinux/config")\
+if f then\
+ for l in f:lines() do\
+ if "SELINUXTYPE=" == string.sub(l,0,12) then t=string.sub(l,13); end\
+ end\
+ f:close()\
+end\
+print (t)\
+}}%{__policy_tree}
+
+# Path to selinux file context patterns.
+%__file_context_path /etc/selinux/%{__policy_tree}/contexts/files/file_contexts
+
+# Directories whose contents should be considered as documentation.
+%__docdir_path %{_datadir}/doc:%{_datadir}/man:%{_datadir}/info:%{_datadir}/gtk-doc/html:%{?_docdir}:%{?_mandir}:%{?_infodir}:%{?_javadocdir}:/usr/doc:/usr/man:/usr/info:/usr/X11R6/man
+
+#
+# Path to selinux file context patterns used to add
+# RPMTAG_FILECONTEXTS to packages when building.
+#
+# Undefined, missing or %{nil} will disable.
+%_build_file_context_path %{nil}
+
+#
+# Path to selinux file context patterns used to set
+# (or override package content) file contexts when installing.
+#
+# Undefined, missing or %{nil} will use package content (if available).
+%_install_file_context_path %{__file_context_path}
+
+#
+# Path to selinux file context patterns used to verify
+# file contexts on file system.
+#
+# Undefined, missing or %{nil} will use package content (if available).
+%_verify_file_context_path %{__file_context_path}
+
+#
+# Path to scripts to autogenerate package dependencies,
+#
+# Note: Used iff _use_internal_dependency_generator is zero.
+#%__find_provides %{_rpmconfigdir}/rpmdeps --provides
+#%__find_requires %{_rpmconfigdir}/rpmdeps --requires
+%__find_provides %{_rpmconfigdir}/find-provides
+%__find_requires %{_rpmconfigdir}/find-requires
+#%__find_conflicts ???
+#%__find_obsoletes ???
+
+#
+# Path to file attribute classifications for automatic dependency
+# extraction, used when _use_internal_dependency_generator
+# is used (on by default). Files can have any number of attributes
+# attached to them, and dependencies are separately extracted for
+# each attribute.
+#
+# To define a new file attribute called "myattr", add a file named
+# "myattr" to this directory, defining the requires and/or provides
+# finder script(s) + magic and/or path pattern regex(es).
+# provides finder and
+# %__myattr_requires path + args to requires finder script for <myattr>
+# %__myattr_provides path + args to provides finder script for <myattr>
+# %__myattr_magic libmagic classification match regex
+# %__myattr_path path based classification match regex
+# %__myattr_flags flags to control behavior (just "exeonly" for now)
+# %__myattr_exclude_magic exclude by magic regex
+# %__myattr_exclude_path exclude by path regex
+#
+%_fileattrsdir %{_rpmconfigdir}/fileattrs
+
+#==============================================================================
+# ---- Database configuration macros.
+# Macros used to configure Berkley db parameters.
+#
+# rpmdb macro configuration values are a colon (or white space) separated
+# list of tokens, with an optional '!' negation to explicitly disable bit
+# values, or a "=value" if a parameter. A per-tag value is used (e.g.
+# %_dbi_config_Packages) if defined, otherwise a per-rpmdb default
+# (e.g. %_dbi_config).
+#
+# Here's a short list of the tokens, with a guess of whether the option is
+# useful:
+# (nothing) currently used in rpm, known to work.
+# "+++" under development, will be supported in rpm eventually.
+# "???" I have no clue, you're mostly on your own.
+#
+# If you do find yourself inclined to fiddle, here's what I see (shrug):
+# 1) Only the value of mp_size has any serious impact on overall performance,
+# and you will need ~256Kb to handle a typical machine install.
+# 2) Only the Packages hash, because of the size of the values (i.e. headers),
+# will ever need tuning. Diddle the pagesize if you're interested, although
+# I believe that you will find pagesize=512 "best".
+# 3) Adding nofsync increases speed, but risks total data loss. Fiddle shared
+# and/or mp_size instead.
+#
+# token works? Berkeley db flag or value
+#==================================================
+#---------------------- DBENV tunable values:
+# mmapsize=16Mb DBENV->set_mp_mmapsize
+# cachesize=1Mb DBENV->set_cachesize, DB->set_cachesize
+#---------------------- DB->open bits:
+# nommap ??? DB_NOMMAP
+#----------------------- rpmdb specific configuration:
+# lockdbfd (always on for Packages) Use fcntl(2) locking ?
+# nofsync Disable fsync(2) call performed after db3 writes?
+#
+
+# Misc BDB tuning options
+%__dbi_other mp_mmapsize=128Mb mp_size=64Mb
+
+%_dbi_config %{?__dbi_other}
+
+# "Packages" should have shared/exclusive fcntl(2) lock using "lockdbfd".
+%_dbi_config_Packages %{?_dbi_config} lockdbfd
+
+#==============================================================================
+# ---- GPG/PGP/PGP5 signature macros.
+# Macro(s) to hold the arguments passed to GPG/PGP for package
+# signing and verification.
+#
+%__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 \
+ %{?_gpg_digest_algo:--digest-algo %{_gpg_digest_algo}} \
+ --no-secmem-warning \
+ -u "%{_gpg_name}" -sbo %{__signature_filename} %{__plaintext_filename}
+
+# XXX rpm >= 4.1 verifies signatures internally
+#%__gpg_verify_cmd %{__gpg} \
+# gpg --batch --no-verbose --verify --no-secmem-warning \
+# %{__signature_filename} %{__plaintext_filename}
+#
+# XXX rpm-4.1 verifies prelinked libraries using a prelink undo helper.
+# Normally this macro is defined in /etc/rpm/macros.prelink, installed
+# with the prelink package. If the macro is undefined, then prelinked
+# shared libraries contents are MD5 digest verified (as usual), rather
+# than MD5 verifying the output of the prelink undo helper.
+#
+# Note: The 2nd token is used as argv[0] and "library" is a
+# placeholder that will be deleted and replaced with the appropriate
+# library file path.
+#%__prelink_undo_cmd /usr/sbin/prelink prelink -y library
+
+# Horowitz Key Protocol server configuration
+#
+%_hkp_keyserver http://pgp.mit.edu
+%_hkp_keyserver_query %{_hkp_keyserver}:11371/pks/lookup?op=get&search=0x
+
+#==============================================================================
+# ---- Transaction macros.
+# Macro(s) used to parameterize transactions.
+#
+# The output binary package file name template used when building
+# binary packages.
+#
+# XXX Note: escaped %% for use in headerSprintf()
+%_build_name_fmt %%{ARCH}/%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm
+
+# The default transaction color. This value is a set of bits to
+# determine file and dependency affinity for this arch.
+# 0 uncolored (i.e. use only arch as install hint)
+# 1 Elf32 permitted
+# 2 Elf64 permitted
+%_transaction_color @RPMCANONCOLOR@
+
+# Verify digest/signature flags for various rpm modes:
+# 0x30300 (_RPMVSF_NODIGESTS) --nohdrchk if set, don't check digest(s)
+# 0xc0c00 (_RPMVSF_NOSIGNATURES) --nosignature if set, don't check signature(s)
+# 0xf0000 (_RPMVSF_NOPAYLOAD) --nolegacy if set, check header+payload (if possible)
+# 0x00f00 (_RPMVSF_NOHEADER) --nohdrchk if set, don't check rpmdb headers
+#
+# For example, the value 0xf0c00 (=0xf0000+0xc0c00) disables legacy
+# digest/signature checking, disables signature checking, but attempts
+# digest checking, also when retrieving headers from the database.
+#
+# You also can do:
+# >>> hex(rpm._RPMVSF_NOSIGNATURES)
+# '0xc0c00'
+# or:
+# >>> hex(rpm._RPMVSF_NOSIGNATURES|rpm._RPMVSF_NOPAYLOAD)
+# '0xf0c00'
+# at the python prompt for example, after "import rpm".
+#
+# The checking overhead is ~11ms per header for digests/signatures;
+# each header from the database is checked only when first encountered
+# for each database open.
+#
+# Note: the %_vsflags_erase applies to --upgrade/--freshen modes as
+# well as --erase.
+#
+%__vsflags 0xf0000
+%_vsflags_build %{__vsflags}
+%_vsflags_erase %{__vsflags}
+%_vsflags_install %{__vsflags}
+%_vsflags_query %{__vsflags}
+%_vsflags_rebuilddb %{__vsflags}
+%_vsflags_verify %{__vsflags}
+
+#
+# Default output format string for rpm -qa
+#
+# XXX Note: escaped %% for use in headerFormat()
+%_query_all_fmt %%{nvra}
+
+#
+# Default path to the file used for transaction fcntl lock.
+%_rpmlock_path %{_dbpath}/.rpm.lock
+
+#==============================================================================
+# ---- per-platform macros.
+# Macros that are specific to an individual platform. The values here
+# will be used if the per-platform macro file does not exist..
+#
+%_arch @RPMCANONARCH@
+%_build_arch @RPMCANONARCH@
+%_vendor @RPMCANONVENDOR@
+%_os @RPMCANONOS@
+%_gnu @RPMCANONGNU@
+%_target_platform %{_target_cpu}-%{_vendor}-%{_target_os}%{?_gnu}
+
+#
+# Define a generic value for optflags. Normally overridden by per-target macros.
+%optflags -O2
+
+#
+# ISA dependency marker, none for noarch and name-bitness for others
+%_isa %{?__isa:(%{__isa})}%{!?__isa:%{nil}}
+
+#
+# Define per-arch and per-os defaults. Normally overridden by per-target macros.
+%__arch_install_post %{nil}
+%__os_install_post %{___build_post}
+
+#==============================================================================
+# ---- Scriptlet template templates.
+# Global defaults used for building scriptlet templates.
+#
+
+%___build_shell %{?_buildshell:%{_buildshell}}%{!?_buildshell:/bin/sh}
+%___build_args -e
+%___build_cmd %{?_sudo:%{_sudo} }%{?_remsh:%{_remsh} %{_remhost} }%{?_remsudo:%{_remsudo} }%{?_remchroot:%{_remchroot} %{_remroot} }%{___build_shell} %{___build_args}
+%___build_pre \
+ RPM_SOURCE_DIR=\"%{u2p:%{_sourcedir}}\"\
+ RPM_BUILD_DIR=\"%{u2p:%{_builddir}}\"\
+ RPM_OPT_FLAGS=\"%{optflags}\"\
+ RPM_ARCH=\"%{_arch}\"\
+ RPM_OS=\"%{_os}\"\
+ export RPM_SOURCE_DIR RPM_BUILD_DIR RPM_OPT_FLAGS RPM_ARCH RPM_OS\
+ RPM_DOC_DIR=\"%{_docdir}\"\
+ export RPM_DOC_DIR\
+ RPM_PACKAGE_NAME=\"%{name}\"\
+ RPM_PACKAGE_VERSION=\"%{version}\"\
+ RPM_PACKAGE_RELEASE=\"%{release}\"\
+ export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE\
+ LANG=C\
+ export LANG\
+ unset CDPATH DISPLAY ||:\
+ %{?buildroot:RPM_BUILD_ROOT=\"%{u2p:%{buildroot}}\"\
+ export RPM_BUILD_ROOT}\
+ %{?_javaclasspath:CLASSPATH=\"%{_javaclasspath}\"\
+ export CLASSPATH}\
+ \
+ %{verbose:set -x}%{!verbose:exec > /dev/null}\
+ umask 022\
+ cd \"%{u2p:%{_builddir}}\"\
+
+
+#%___build_body %{nil}
+%___build_post exit 0
+
+%___build_template #!%{___build_shell}\
+%{___build_pre}\
+%{nil}
+
+#%{___build_body}\
+#%{___build_post}\
+#%{nil}
+
+#==============================================================================
+# ---- Scriptlet templates.
+# Macro(s) that expand to a command and script that is executed.
+# CAVEAT: All macro expansions must fit in a BUFSIZ (8192 byte) buffer.
+#
+%__spec_prep_shell %{___build_shell}
+%__spec_prep_args %{___build_args}
+%__spec_prep_cmd %{___build_cmd}
+%__spec_prep_pre %{___build_pre}
+%__spec_prep_body %{___build_body}
+%__spec_prep_post %{___build_post}
+%__spec_prep_template #!%{__spec_prep_shell}\
+%{__spec_prep_pre}\
+%{nil}
+
+#%{__spec_prep_body}\
+#%{__spec_prep_post}\
+#%{nil}
+
+%__spec_build_shell %{___build_shell}
+%__spec_build_args %{___build_args}
+%__spec_build_cmd %{___build_cmd}
+%__spec_build_pre %{___build_pre}
+%__spec_build_body %{___build_body}
+%__spec_build_post %{___build_post}
+%__spec_build_template #!%{__spec_build_shell}\
+%{__spec_build_pre}\
+%{nil}
+
+#%{__spec_build_body}\
+#%{__spec_build_post}\
+#%{nil}
+
+%__spec_install_shell %{___build_shell}
+%__spec_install_args %{___build_args}
+%__spec_install_cmd %{___build_cmd}
+%__spec_install_pre %{___build_pre}
+%__spec_install_body %{___build_body}
+%__spec_install_post\
+%{?__debug_package:%{__debug_install_post}}\
+%{__arch_install_post}\
+%{__os_install_post}\
+%{nil}
+%__spec_install_template #!%{__spec_install_shell}\
+%{__spec_install_pre}\
+%{nil}
+
+#%{__spec_install_body}\
+#%{__spec_install_post}\
+#%{nil}
+
+%__spec_check_shell %{___build_shell}
+%__spec_check_args %{___build_args}
+%__spec_check_cmd %{___build_cmd}
+%__spec_check_pre %{___build_pre}
+%__spec_check_body %{___build_body}
+%__spec_check_post %{___build_post}
+%__spec_check_template #!%{__spec_check_shell}\
+%{__spec_check_pre}\
+%{nil}
+
+#%{__spec_check_body}\
+#%{__spec_check_post}\
+#%{nil}
+
+#%__spec_autodep_shell %{___build_shell}
+#%__spec_autodep_args %{___build_args}
+#%__spec_autodep_cmd %{___build_cmd}
+#%__spec_autodep_pre %{___build_pre}
+#%__spec_autodep_body %{___build_body}
+#%__spec_autodep_post %{___build_post}
+#%__spec_autodep_template #!%{__spec_autodep_shell}\
+#%{__spec_autodep_pre}\
+#%{nil}
+
+#%{__spec_autodep_body}\
+#%{__spec_autodep_post}\
+#%{nil}
+
+%__spec_clean_shell %{___build_shell}
+%__spec_clean_args %{___build_args}
+%__spec_clean_cmd %{___build_cmd}
+%__spec_clean_pre %{___build_pre}
+%__spec_clean_body %{___build_body}
+%__spec_clean_post %{___build_post}
+%__spec_clean_template #!%{__spec_clean_shell}\
+%{__spec_clean_pre}\
+%{nil}
+
+#%{__spec_clean_body}\
+#%{__spec_clean_post}\
+#%{nil}
+
+%__spec_rmbuild_shell %{___build_shell}
+%__spec_rmbuild_args %{___build_args}
+%__spec_rmbuild_cmd %{___build_cmd}
+%__spec_rmbuild_pre %{___build_pre}
+%__spec_rmbuild_body %{___build_body}
+%__spec_rmbuild_post %{___build_post}
+%__spec_rmbuild_template #!%{__spec_rmbuild_shell}\
+%{__spec_rmbuild_pre}\
+%{nil}
+
+#%{__spec_rmbuild_body}\
+#%{__spec_rmbuild_post}\
+#%{nil}
+
+# XXX We don't expand pre/post install scriptlets (yet).
+#%__spec_pre_pre %{nil}
+#%__spec_pre_post %{nil}
+#%__spec_post_pre %{nil}
+#%__spec_post_post %{nil}
+#%__spec_preun_pre %{nil}
+#%__spec_preun_post %{nil}
+#%__spec_postun_pre %{nil}
+#%__spec_postun_post %{nil}
+#%__spec_triggerpostun_pre %{nil}
+#%__spec_triggerpostun_post %{nil}
+#%__spec_triggerun_pre %{nil}
+#%__spec_triggerun_post %{nil}
+#%__spec_triggerin_pre %{nil}
+#%__spec_triggerin_post %{nil}
+
+#==============================================================================
+# ---- configure macros.
+# Macro(s) slavishly copied from autoconf's config.status.
+#
+%_prefix @prefix@
+%_exec_prefix %{_prefix}
+%_bindir %{_exec_prefix}/bin
+%_sbindir %{_exec_prefix}/sbin
+%_libexecdir %{_exec_prefix}/libexec
+%_datadir %{_prefix}/share
+%_sysconfdir /etc
+%_sharedstatedir %{_prefix}/com
+%_localstatedir %{_prefix}/var
+%_lib lib
+%_libdir %{_exec_prefix}/%{_lib}
+%_includedir %{_prefix}/include
+%_infodir %{_datadir}/info
+%_mandir %{_datadir}/man
+
+#==============================================================================
+# ---- config.guess platform macros.
+# Macro(s) similar to the tokens used by configure.
+#
+%_build %{_host}
+%_build_alias %{_host_alias}
+%_build_cpu %{_host_cpu}
+%_build_vendor %{_host_vendor}
+%_build_os %{_host_os}
+%_host @host@
+%_host_alias @host_alias@%{nil}
+%_host_cpu @host_cpu@
+%_host_vendor @host_vendor@
+%_host_os @host_os@
+%_target %{_host}
+%_target_alias %{_host_alias}
+%_target_cpu %{_host_cpu}
+%_target_vendor %{_host_vendor}
+%_target_os %{_host_os}
+
+#==============================================================================
+# ---- specfile macros.
+# Macro(s) here can be used reliably for reproducible builds.
+# (Note: Above is the goal, below are the macros under development)
+#
+# The configure macro runs autoconf configure script with platform specific
+# directory structure (--prefix, --libdir etc) and compiler flags
+# such as CFLAGS.
+#
+# The configure macro should be invoked as %configure (rather than %{configure})
+# because the rest of the arguments will be expanded using %*.
+#
+%_configure ./configure
+%configure \
+ CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ; \
+ CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ; \
+ FFLAGS="${FFLAGS:-%optflags}" ; export FFLAGS ; \
+ %{_configure} --host=%{_host} --build=%{_build} \\\
+ --program-prefix=%{?_program_prefix} \\\
+ --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}
+
+#------------------------------------------------------------------------------
+# The make install analogue of %configure for modern autotools:
+%make_install %{__make} install DESTDIR=%{?buildroot}
+
+#------------------------------------------------------------------------------
+# Former make install analogue, kept for compatibility and for old/broken
+# packages that don't support DESTDIR properly.
+%makeinstall \
+ %{__make} \\\
+ 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} \\\
+ install
+
+#------------------------------------------------------------------------------
+# The GNUconfigure macro does the following:
+# update config.guess and config.sub.
+# regenerate all autoconf/automake files
+# optionally change to a directory (make the directory if requested).
+# run configure with correct prefix, platform, and CFLAGS.
+# optionally restore current directory.
+#
+# Based on autogen.sh from GNOME and orginal GNUconfigure
+#
+%GNUconfigure(MCs:) \
+ CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS; \
+ LDFLAGS="${LDFLAGS:-%{-s:-s}}" ; export LDFLAGS; \
+ %{-C:_mydir="`pwd`"; %{-M: %{__mkdir} -p %{-C*};} cd %{-C*}} \
+ dirs="`find ${_mydir} -name configure.in -print`"; export dirs; \
+ for coin in `echo ${dirs}` \
+do \
+ dr=`dirname ${coin}`; \
+if test -f ${dr}/NO-AUTO-GEN; then \
+ : \
+else \
+ macrodirs=`sed -n -e 's,AM_ACLOCAL_INCLUDE(\(.*\)),\1,gp' < ${coin}`; \
+ ( cd ${dr}; \
+ aclocalinclude="${ACLOCAL_FLAGS}"; \
+ for k in ${macrodirs}; do \
+ if test -d ${k}; then \
+ aclocalinclude="${aclocalinclude} -I ${k}"; \
+ ##else \
+ ## echo "**Warning**: No such directory \`${k}'. Ignored." \
+ fi \
+ done \
+ if grep "^AM_GNU_GETTEXT" configure.in >/dev/null; then \
+ if grep "sed.*POTFILES" configure.in >/dev/null; then \
+ : do nothing -- we still have an old unmodified configure.in \
+ else \
+ test -r ${dr}/aclocal.m4 || touch ${dr}/aclocal.m4; \
+ echo "no" | gettextize --force --copy; \
+ test -r ${dr}/aclocal.m4 && %{__chmod} u+w ${dr}/aclocal.m4; \
+ fi \
+ fi \
+ if grep "^AM_PROG_LIBTOOL" configure.in >/dev/null; then \
+ %{__libtoolize} --force --copy; \
+ fi \
+ aclocal ${aclocalinclude}; \
+ if grep "^AM_CONFIG_HEADER" configure.in >/dev/null; then \
+ %{__autoheader}; \
+ fi \
+ echo "Running automake --gnu ${am_opt} ..."; \
+ %{__automake} --add-missing --gnu ${am_opt}; \
+ %{__autoconf}; \
+ ); \
+ fi \
+done \
+ %{-C:${_mydir}}%{!-C:.}/configure --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} %* ; \
+ %{-C:cd ${_mydir}; unset _mydir}
+
+%patches %{lua: for i, p in ipairs(patches) do print(p.." ") end}
+%sources %{lua: for i, s in ipairs(sources) do print(s.." ") end}
+
+#------------------------------------------------------------------------------
+# Useful perl macros (from Artur Frysiak <wiget@t17.ds.pwr.wroc.pl>)
+#
+# For example, these can be used as (from ImageMagick.spec from PLD site)
+# [...]
+# BuildPrereq: perl
+# [...]
+# %package perl
+# Summary: libraries and modules for access to ImageMagick from perl
+# Group: Development/Languages/Perl
+# Requires: %{name} = %{version}
+# %requires_eq perl
+# [...]
+# %install
+# rm -fr $RPM_BUILD_ROOT
+# install -d $RPM_BUILD_ROOT/%{perl_sitearch}
+# [...]
+# %files perl
+# %defattr(644,root,root,755)
+# %{perl_sitearch}/Image
+# %dir %{perl_sitearch}/auto/Image
+#
+%requires_eq() %(LC_ALL="C" echo '%*' | xargs -r rpm -q --qf 'Requires: %%{name} = %%{epoch}:%%{version}\\n' | sed -e 's/ (none):/ /' -e 's/ 0:/ /' | grep -v "is not")
+%perl_sitearch %(eval "`%{__perl} -V:installsitearch`"; echo $installsitearch)
+%perl_sitelib %(eval "`%{__perl} -V:installsitelib`"; echo $installsitelib)
+%perl_vendorarch %(eval "`%{__perl} -V:installvendorarch`"; echo $installvendorarch)
+%perl_vendorlib %(eval "`%{__perl} -V:installvendorlib`"; echo $installvendorlib)
+%perl_archlib %(eval "`%{__perl} -V:installarchlib`"; echo $installarchlib)
+%perl_privlib %(eval "`%{__perl} -V:installprivlib`"; echo $installprivlib)
+
+#------------------------------------------------------------------------------
+# Useful python macros for determining python version and paths
+#
+%python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; import sys; sys.stdout.write(get_python_lib())")
+%python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; import sys; sys.stdout.write(get_python_lib(1))")
+%python_version %(%{__python} -c "import sys; sys.stdout.write(sys.version[:3])")
+
+#------------------------------------------------------------------------------
+# arch macro for all Intel i?86 compatibile processors
+# (Note: This macro (and it's analogues) will probably be obsoleted when
+# rpm can use regular expressions against target platforms in macro
+# conditionals.
+#
+%ix86 i386 i486 i586 i686 pentium3 pentium4 athlon geode
+
+#------------------------------------------------------------------------------
+# arch macro for all supported ARM processors
+%arm armv3l armv4b armv4l armv4tl armv5tel armv5tejl armv6l armv7l
+
+#------------------------------------------------------------------------------
+# arch macro for all supported Sparc processors
+%sparc sparc sparcv8 sparcv9 sparcv9v sparc64 sparc64v
+
+#------------------------------------------------------------------------------
+# arch macro for all supported Alpha processors
+%alpha alpha alphaev56 alphaev6 alphaev67
+
+#------------------------------------------------------------------------
+# Use in %install to generate locale specific file lists. For example,
+#
+# %install
+# ...
+# %find_lang %{name}
+# ...
+# %files -f %{name}.lang
+#
+%find_lang %{_rpmconfigdir}/find-lang.sh %{buildroot}
+
+# Commands + opts to use for retrieving remote files
+# Proxy opts can be set through --httpproxy/--httpport popt aliases,
+# for any special local needs use %__urlhelper_localopts in system-wide
+# or per-user macro configuration.
+%__urlhelpercmd @__CURL@
+%__urlhelperopts --silent --show-error --fail --location -o
+%__urlhelper_proxyopts %{?_httpproxy:--proxy %{_httpproxy}%{?_httpport::%{_httpport}}}%{!?_httpproxy:%{nil}}
+%_urlhelper %{__urlhelpercmd} %{?__urlhelper_localopts} %{?__urlhelper_proxyopts} %{__urlhelperopts}
+
+#------------------------------------------------------------------------------
+# Collection specific macros
+%__plugindir %{_libdir}/rpm-plugins
+%__collection_font %{__plugindir}/exec.so /usr/bin/fc-cache
+%__collection_java %{__plugindir}/exec.so /usr/bin/rebuild-gcj-db
+%__collection_sepolicy %{__plugindir}/sepolicy.so
+%__collection_sepolicy_flags 1
+
+# \endverbatim
+#*/