aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPascal Rigaux <pixel@mandriva.com>2008-01-29 16:37:09 +0000
committerPascal Rigaux <pixel@mandriva.com>2008-01-29 16:37:09 +0000
commitd56fb8ee567b2165f63d23cbaa096653811039ab (patch)
treedfd901761ece67bc5480af9ef34410d89883d481
parent6a3b2c36a77bbdc0f521e745ba227d8ba9855d08 (diff)
downloadrpm-setup-d56fb8ee567b2165f63d23cbaa096653811039ab.tar
rpm-setup-d56fb8ee567b2165f63d23cbaa096653811039ab.tar.gz
rpm-setup-d56fb8ee567b2165f63d23cbaa096653811039ab.tar.bz2
rpm-setup-d56fb8ee567b2165f63d23cbaa096653811039ab.tar.xz
rpm-setup-d56fb8ee567b2165f63d23cbaa096653811039ab.zip
move many macros out of /usr/lib/rpm/<vendor>/macros into
new file /etc/rpm/macros.d/build.macros, those macros will not be available anymore if rpm-<vendor>-setup-build is not installed
-rw-r--r--Makefile.am19
-rw-r--r--build.macros.in435
-rw-r--r--macros.in464
3 files changed, 450 insertions, 468 deletions
diff --git a/Makefile.am b/Makefile.am
index 1ab58bf..364c5bb 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -9,8 +9,15 @@ pkg_gdata = \
rpmrc \
macros
+pkg_sysconf_macros_tmp = \
+ build.macros
+
pkg_data_in = $(pkg_gdata:=.in)
+pkg_sysconf_macros_in = $(pkg_sysconf_macros_tmp:=.in)
+
+pkg_sysconf_macros = $(pkg_sysconf_macros_tmp)
+
pkg_gconfig = \
platform \
$(if $(CANONTARGETCPU32), platform32, )
@@ -64,6 +71,7 @@ pkglib_SCRIPTS = \
EXTRA_DIST = \
$(pkg_data) \
$(pkg_data_in) \
+ $(pkg_sysconf_macros_in) \
$(pkg_scripts) \
$(pkg_scripts_in) \
macros-perarch.in make_arch_macrosfiles.sh.in \
@@ -86,7 +94,7 @@ edit = sed \
%: %.in Makefile
$(edit) $< > $@
-%.macros: macros-perarch make_arch_macrosfiles.sh
+$(arch_macrosfiles): macros-perarch make_arch_macrosfiles.sh
arch=`echo $@ | sed 's,\\.macros,,'`; \
sh ./make_arch_macrosfiles.sh macros-perarch $$arch > $@
@@ -96,7 +104,7 @@ platform: rpmgenplatform Makefile
platform32: rpmgenplatform Makefile
perl rpmgenplatform $(CANONTARGETCPU32) > $@
-install-data-local: $(arch_macrosfiles) $(pkg_gconfig)
+install-data-local: $(arch_macrosfiles) $(pkg_gconfig) $(pkg_sysconf_macros_tmp)
if ONLY_RPMRC
echo "not installing per-arch macros which are already in rpmrc and standard rpm per-arch macros"
else
@@ -105,8 +113,11 @@ else
$(install_sh_DATA) $${i}.macros $(DESTDIR)$(RPMVENDORDIR)/$${i}-$(RPMOS)/macros; \
done
endif
- [ -d $(DESTDIR)$(RPMSYSCONFDIR) ] || $(mkinstalldirs) $(DESTDIR)$(RPMSYSCONFDIR)
+ [ -d $(DESTDIR)$(RPMSYSCONFDIR)/macros.d ] || $(mkinstalldirs) $(DESTDIR)$(RPMSYSCONFDIR)/macros.d
$(install_sh_SCRIPT) rpmb_deprecated $(DESTDIR)$(RPMLIBDIR)
+ for i in $(pkg_sysconf_macros); do \
+ $(install_sh_DATA) $${i} $(DESTDIR)$(RPMSYSCONFDIR)/macros.d/$${i}; \
+ done
if RPMPLATFORM
for i in $(pkg_gconfig); do \
$(install_sh_DATA) $${i} $(DESTDIR)$(RPMSYSCONFDIR)/$${i}; \
@@ -124,5 +135,5 @@ test: $(pkg_gdata) $(pkg_gscripts) $(arch_macrosfiles) $(pkg_gconfig)
sh tests.sh
CLEANFILES = $(pkg_gdata) $(pkg_gscripts) $(arch_macrosfiles) $(pkg_gconfig)\
- macros-perarch \
+ macros-perarch $(pkg_sysconf_macros_tmp) \
make_arch_macrosfiles.sh
diff --git a/build.macros.in b/build.macros.in
new file mode 100644
index 0000000..c4cfae9
--- /dev/null
+++ b/build.macros.in
@@ -0,0 +1,435 @@
+
+%__gzip /usr/bin/gzip
+
+%_sys_macros_dir @RPMSYSCONFDIR@/macros.d
+%build_sysmacrospath() %{_sys_macros_dir}/%{?1:%{1}}%{?!1:%{name}}.macros
+
+%defaultbuildroot %{_tmppath}/%{name}-%{version}-%{release}-buildroot
+
+%__cputoolize cputoolize
+
+# Where install-info is located
+%__install_info /sbin/install-info
+
+# Various programs used in rpm scripts
+%_update_desktop_database_bin %{_bindir}/update-desktop-database
+%_update_mime_database_bin %{_bindir}/update-mime-database
+%_update_icon_cache_bin %{_bindir}/gtk-update-icon-cache
+%_gconftool_bin %{_bindir}/gconftool-2
+%_scrollkeeper_bin %{_bindir}/scrollkeeper-update
+
+%__service /sbin/service
+%__chkconfig /sbin/chkconfig
+
+#==============================================================================
+# ---- 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.
+#
+
+%_enable_debug_packages 1
+
+%debugcflags %{?_enable_debug_packages:-g}
+
+%debug_package_and_restore %{debug_package} \
+%package __restore__\
+Summary: %{summary}\
+Group: %{group}\
+%description __restore__
+
+%ix86 i386 i486 i586 i686 pentium3 pentium4 athlon k6
+
+%sunsparc sun4 sun4m sun4c sun4d sparc sparcv8 sparcv9 sparc64 scparcv9b sparcv9v
+
+# common compilation flags
+%_fortify_cflags -Wp,-D_FORTIFY_SOURCE=2
+%_serverbuild_flags %nil
+%_ssp_cflags -fstack-protector --param=ssp-buffer-size=4 %{?_serverbuild_flags}
+%__common_cflags -O2 %{debugcflags} -pipe %{?_fortify_cflags} -fexceptions
+%__common_cflags_with_ssp %{__common_cflags} %{?_ssp_cflags}
+
+# Multilibs
+%_multilibpatt (/%{_lib}|/usr/%{_lib}(|/gconv)|/usr/local/%{_lib}|/usr/X11R6/%{_lib}|/opt/%{_lib})/[^/]*\\.([oa]|la|so[0-9.]*)$
+
+%_arch_tag_suffix (%_lib)
+%arch_tagged() %{1}%{_arch_tag_suffix} %{?2:%{2} %{3}%{?!3:%{error:undefined 3rd argument in arch_tagged}}}
+
+# Games macros
+%_gamesdir games
+%_gamesbindir %{_prefix}/%{_gamesdir}
+%_gamesdatadir %{_datadir}/%{_gamesdir}
+
+# Default extension to use.
+%_extension .lzma
+
+# Menu directories
+%_menudir %{_prefix}/lib/menu
+%_iconsdir %{_datadir}/icons
+%_miconsdir %{_datadir}/icons/mini
+%_liconsdir %{_datadir}/icons/large
+
+%_xfontdir %_datadir/fonts
+
+%_webconfdir %{_sysconfdir}/httpd/conf
+%_webappconfdir %_webconfdir/webapps.d
+# compatibility
+%webappconfdir %_webappconfdir
+
+#==============================================================================
+# ---- Build configuration macros.
+#
+# Package version macro.
+# The type of package to produce, for compatibility with legacy
+# versions of rpm.
+#
+# Script gets packaged file list on input.
+# Returns list of multiarch files that are not marked as such,
+# i.e. files in $RPM_BUILD_ROOT that have arch-dependent values
+#
+# Note: Disable (by commenting out) for legacy compatibility.
+#%__check_multiarch_files @RPMLIBDIR@/check-multiarch-files %{buildroot}
+
+# Use internal dependency generator rather than external helpers?
+%_use_internal_dependency_generator 0
+
+%__find_provides @RPMVENDORDIR@/filter.sh '%{?_provides_exceptions:%{_provides_exceptions}}%{!?_provides_exceptions: }' '%{?_exclude_files_from_autoprov:%{_exclude_files_from_autoprov}}%{!?_exclude_files_from_autoprov: }' '%{buildroot}' @RPMVENDORDIR@/find-provides
+%__find_requires @RPMVENDORDIR@/filter.sh '%{?_requires_exceptions:%{_requires_exceptions}}%{!?_requires_exceptions: }' '%{?_exclude_files_from_autoreq:%{_exclude_files_from_autoreq}}%{!?_exclude_files_from_autoreq: }' '%{buildroot}' @RPMVENDORDIR@/find-requires %{?buildroot:%{buildroot}} %{?_target_cpu:%{_target_cpu}}
+
+%find_lang @RPMVENDORDIR@/find-lang.pl %{buildroot}
+
+# Macro: %{mklibname <name> [<major> [<minor>]] [-s] [-d]}
+# - %{mklibname test} => lib64test, on a lib64 platform
+# - %{mklibname test 1 -d} => libtest1-devel
+# - %{mklibname test 1 -d 0 -s} => libtest1_0-static-devel
+%mklibname(ds) %{_lib}%{1}%{?2:%{2}}%{?3:_%{3}}%{-s:-static}%{-d:-devel}
+
+# Update Menu
+%_update_menus_bin %{_bindir}/update-menus
+%update_menus if [ -x %{_update_menus_bin} ]; then %{_update_menus_bin} || true ; fi \
+%{nil}
+
+# Clean Menu
+%clean_menus if [ "$1" = "0" -a -x %{_update_menus_bin} ]; then %{_update_menus_bin} || true ; fi \
+%{nil}
+
+# Update Window Managers session.
+%_fndsession_bin %{_sbindir}/fndSession
+%make_session if [ -x %{_fndsession_bin} ]; then %{_fndsession_bin} || true ; fi \
+%{nil}
+
+# Macros to install info-files.
+%_install_info() if [[ -f %{_infodir}/%{1}%{_extension} ]];then %{__install_info} %{_infodir}/%{1}%{_extension} --dir=%{_infodir}/dir;fi \
+%{nil}
+
+# Macros to remove info-files. (keep the "alone on its line ';'")
+%_remove_install_info() if [ "$1" = "0" ]; then if [[ -f %{_infodir}/%{1}%{_extension} ]];then %{__install_info} %{_infodir}/%{1}%{_extension} --dir=%{_infodir}/dir --remove ;fi; fi \
+%{nil}
+
+# For rebuilding gcj-db
+%_rebuildgcjdb_bin %{_bindir}/rebuild-gcj-db
+%update_gcjdb if [ -x %{_rebuildgcjdb_bin} ]; then %{_rebuildgcjdb_bin} || true ; fi \
+%{nil}
+
+%clean_gcjdb if [ -x %{_rebuildgcjdb_bin} ]; then %{_rebuildgcjdb_bin} || true ; fi \
+%{nil}
+
+# Rebuild .desktop / MIME mapping database
+%update_desktop_database if [ -x %{_update_desktop_database_bin} ]; then \
+%{_update_desktop_database_bin} %{_datadir}/applications > /dev/null || \
+true ; fi \
+%{nil}
+
+%clean_desktop_database if [ "$1" = "0" -a -x %{_update_desktop_database_bin} ]; then \
+%{_update_desktop_database_bin} %{_datadir}/applications > /dev/null || true ; fi \
+%{nil}
+
+# Rebuild freedesktop.org MIME magic/extension database
+%update_mime_database if [ -x %{_update_mime_database_bin} ]; then \
+%{_update_mime_database_bin} %{_datadir}/mime > /dev/null || true ; fi \
+%{nil}
+
+%clean_mime_database if [ "$1" = "0" -a -x %{_update_mime_database_bin} ]; \
+then %{_update_mime_database_bin} %{_datadir}/mime > /dev/null || true ; fi \
+%{nil}
+
+# Rebuild icon cache
+%update_icon_cache() if [ -x %{_update_icon_cache_bin} ]; then \
+%{_update_icon_cache_bin} --force --quiet %{_iconsdir}/%{1} || true; fi \
+%{nil}
+
+%clean_icon_cache() if [ -x %{_update_icon_cache_bin} -a -r %{_iconsdir}/%{1}/index.theme ]; then \
+%{_update_icon_cache_bin} --force --quiet %{_iconsdir}/%{1} || true ; fi \
+%{nil}
+
+# Install GConf schemas
+%post_install_gconf_schemas() if [ -x %{_gconftool_bin} ]; then \
+SCHEMAS="" \
+for SCHEMA in %{*} ; do \
+ SCHEMAS="$SCHEMAS %{_sysconfdir}/gconf/schemas/$SCHEMA.schemas" \
+done \
+GCONF_CONFIG_SOURCE=`%{_gconftool_bin} --get-default-source` %{_gconftool_bin} --makefile-install-rule $SCHEMAS > /dev/null || true ; fi \
+%{nil}
+
+%preun_uninstall_gconf_schemas() if [ "$1" = "0" -a -x %{_gconftool_bin} ]; then \
+SCHEMAS="" \
+for SCHEMA in %{*} ; do \
+ SCHEMAS="$SCHEMAS %{_sysconfdir}/gconf/schemas/$SCHEMA.schemas" \
+done \
+GCONF_CONFIG_SOURCE=`%{_gconftool_bin} --get-default-source` %{_gconftool_bin} --makefile-uninstall-rule $SCHEMAS > /dev/null || true ; fi \
+%{nil}
+
+# Rebuild scrollkeeper database
+%update_scrollkeeper if [ -x %{_scrollkeeper_bin} ]; then \
+%{_scrollkeeper_bin} -q || true ; fi \
+%{nil}
+
+%clean_scrollkeeper if [ "$1" = "0" -a -x %{_scrollkeeper_bin} ]; \
+then %{_scrollkeeper_bin} -q || true ; fi \
+%{nil}
+
+# Mandriva Linux version
+# - "9.1" => 910
+# - "10.2.2" => 1022
+# (user may copy the following line in specfile)
+%mdkversion %(perl -pe '/(\\d+)\\.(\\d)\\.?(\\d)?/; $_="$1$2".($3||0)' /etc/mandriva-release)
+
+%distsuffix mdv
+
+%mkrel(c:) %{-c: 0.%{-c*}.}%{1}%{?subrel:.%subrel}%{?distsuffix:%distsuffix}%{?!distsuffix:mdv}%{?mandriva_release:%mandriva_release}
+
+%_smp_mflags %([ -z "$RPM_BUILD_NCPUS" ] \\\
+ && RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"; \\\
+ [ "$RPM_BUILD_NCPUS" -gt 1 ] && echo "-j$RPM_BUILD_NCPUS")
+
+# make
+%_make_bin make
+%make %{_make_bin} %_smp_mflags
+
+#==============================================================================
+# ---- Build policy macros.
+#
+#---------------------------------------------------------------------
+# Expanded at end of %install scriptlet.
+#
+
+%__os_install_post \
+ %{?__spec_helper_post}%{?!__spec_helper_post:/usr/share/spec-helper/spec-helper} \
+%{nil}
+
+%__debug_install_post \
+ @RPMVENDORDIR@/find-debuginfo.sh %{_builddir}/%{?buildsubdir}\
+%{nil}
+
+
+#==============================================================================
+# ---- specfile macros.
+# Macro(s) here can be used reliably for reproducible builds.
+# (Note: Above is the goal, below are the macros under development)
+#
+
+# Servers opt flags.
+# Also set the env variables for backward compatibility (#32050).
+%serverbuild %define _serverbuild_flags -fstack-protector-all \
+export CFLAGS="%optflags"; export CXXFLAGS="%optflags"; export RPM_OPT_FLAGS="%optflags" \
+%{nil}
+
+%__libtoolize_configure %{?__libtoolize:(cd $CONFIGURE_TOP; [ -f configure.in -o -f configure.ac ] && %{__libtoolize} --copy --force)}
+
+# This is an improved version of %configure (from PLD team).
+%configure \
+ CONFIGURE_TOP="${CONFIGURE_TOP:-.}"; \
+ CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ; \
+ CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ; \
+ FFLAGS="${FFLAGS:-%optflags}" ; export FFLAGS ; \
+ %{?__cputoolize:%{__cputoolize} -c $CONFIGURE_TOP} ; \
+ %{?_enable_libtoolize:%{?__libtoolize_configure:%{__libtoolize_configure};}} \
+ [ -f $CONFIGURE_TOP/configure.in -o -f $CONFIGURE_TOP/configure.ac ] && \
+ CONFIGURE_XPATH="--x-includes=%{_prefix}/include --x-libraries=%{_prefix}/%{_lib}" \
+ $CONFIGURE_TOP/configure %{_target_platform} \\\
+ --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} \\\
+ $CONFIGURE_XPATH
+
+%configure2_5x \
+ CONFIGURE_TOP="${CONFIGURE_TOP:-.}"; \
+ CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ; \
+ CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ; \
+ FFLAGS="${FFLAGS:-%optflags}" ; export FFLAGS ; \
+ %{?__cputoolize:%{__cputoolize} -c $CONFIGURE_TOP} ; \
+ %{?_enable_libtoolize:%{?__libtoolize_configure:%{__libtoolize_configure};}} \
+ [ -f $CONFIGURE_TOP/configure.in -o -f $CONFIGURE_TOP/configure.ac ] && \
+ CONFIGURE_XPATH="--x-includes=%{_prefix}/include --x-libraries=%{_prefix}/%{_lib}" \
+ $CONFIGURE_TOP/configure --build=%{_target_platform} \\\
+ --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} \\\
+ $CONFIGURE_XPATH
+
+%makeinstall_std make DESTDIR=%{?buildroot:%{buildroot}} install
+
+%old_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
+
+
+#------------------------------------------------------------------------------
+# Useful python macros
+%pyver %(python -V 2>&1 | cut -f2 -d" " | cut -f1,2 -d".")
+
+#------------------------------------------------------------------------------
+# Useful perl macros
+# (initially from Artur Frysiak <wiget@t17.ds.pwr.wroc.pl>)
+# (modified by Pixel <pixel@mandriva.com>)
+#
+# [...]
+# Group: Development/Perl
+# [...]
+# %build
+# perl Makefile.PL INSTALLDIRS=vendor
+# %make
+# [...]
+# %install
+# rm -rf $RPM_BUILD_ROOT
+# make install PREFIX="$RPM_BUILD_ROOT/%{prefix}"
+# [...]
+# %files
+# %defattr(644,root,root,755)
+# %{perl_vendorlib}/CGI
+# or
+# %{perl_vendorarch}/DBI
+# %{perl_vendorarch}/auto/DBI
+# %{_mandir}/*/*
+#
+
+# kept for compatibility, but should not be used, especially the ugly perl_archlib!
+%perl_sitearch %(eval "`perl -V:installsitearch`"; echo $installsitearch)
+%perl_archlib %(eval "`perl -V:installarchlib`"; echo $installarchlib)
+
+#--------------------------------------------------------------------------------
+# Macro from conectiva
+
+%rename() \
+Obsoletes: %{1} < %{version}-%{release} \
+Provides: %{1} = %{version}-%{release}
+
+# Shorthand for %{defined with_...}
+# macros provided by rpm 4.4, but buggy :(
+%_with() %{expand: %%{?_with_%1:1} %%{!?_with_%1: %%{?_without_%1:0} %%{!?_without_%1: %%{?with_%1:%%{with_%1}} %%{!?with_%1: %%{?without_%1:!%%{without_%1}} %%{!?without_%1: %%{?2:%%2} %%{!?2:1} } } } } }
+%_without() !%{expand: %%{with %1 %{?2:%2}}}
+
+%_package_i18n(g:f:) \
+%%package -n %{?1:%{1}}%{?!1:%{name}}-i18n\
+Summary: Internationalization and locale data for %{?1:%{1}}%{?!1:%{name}}\
+License: %{license}\
+Group: %{?-g:%{-g*}}%{?!-g:%{group}}\
+\
+%%description -n %{?1:%{1}}%{?!1:%{name}}-i18n\
+Internationalization and locale data for %{?1:%{1}}%{?!1:%{name}}\
+\
+%%files -n %{?1:%{1}}%{?!1:%{name}}-i18n %{?-f:%{-f}}%{?!-f:-f %{?1:%{1}}%{?!1:%{name}}.lang}\
+%{nil}
+
+
+#------------------------------------------------------------------------------
+# Python specific macros
+
+# (from rpm 4.4.6)
+%python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")
+%python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")
+%python_version %(%{__python} -c "import sys; print(sys.version[0:3])")
+
+# More Python specific macro definitions (originally from PLD).
+#
+%py_ver %(python -c "import sys; v=sys.version_info[:2]; print '%%d.%%d'%%v" 2>/dev/null || echo PYTHON-NOT-FOUND)
+%py_prefix %(python -c "import sys; print sys.prefix" 2>/dev/null || echo PYTHON-NOT-FOUND)
+# backward compatibility
+%py_libdir %py_purelibdir
+%py_platlibdir %(python -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib(standard_lib=1,plat_specific=1)' 2>/dev/null || echo PYTHON-LIBDIR-NOT-FOUND)
+%py_purelibdir %(python -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib(standard_lib=1,plat_specific=0)' 2>/dev/null || echo PYTHON-LIBDIR-NOT-FOUND)
+%py_incdir %(python -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_inc()' 2>/dev/null || echo PYTHON-INCLUDEDIR-NOT-FOUND)
+%py_sitedir %py_puresitedir
+%py_platsitedir %(python -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib(plat_specific=1)' 2>/dev/null || echo PYTHON-LIBDIR-NOT-FOUND)
+%py_puresitedir %(python -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib()' 2>/dev/null || echo PYTHON-LIBDIR-NOT-FOUND)
+
+%py_compile(O) \
+find %1 -name '*.pyc' -exec rm -f {} \\; \
+python -c "import sys, os, compileall; br='%{buildroot}'; compileall.compile_dir(sys.argv[1], ddir=br and (sys.argv[1][len(os.path.abspath(br)):]+'/') or None)" %1 \
+%{-O: \
+find %1 -name '*.pyo' -exec rm -f {} \\; \
+python -O -c "import sys, os, compileall; br='%{buildroot}'; compileall.compile_dir(sys.argv[1], ddir=br and (sys.argv[1][len(os.path.abspath(br)):]+'/') or None)" %1 \
+}
+%py_requires(d) \
+%define minver %py_ver \
+%define maxver %(python -c "import sys; a,b=sys.version_info[:2]; print '%%d.%%d'%%(a,b+1)" 2>/dev/null || echo PYTHON-NOT-FOUND) \
+BuildRequires: python %{-d:python-devel} \
+Requires: python >= %minver, python < %maxver
+
+
+#------------------------------------------------------------------------------
+# Ocaml macro
+#
+
+%ocaml_sitelib %(if [ -x /usr/bin/ocamlc ]; then ocamlc -where;fi)/site-lib
+
+#------------------------------------------------------------------------------
+# Redefine RPM sections to allow jumping over them using "--without <section>".
+# This an interesting alternative to --short-circuit.
+# The following are mostly equivalent:
+# % rpmbuild -bi --short-circuit foo.spec && rpmbuild -bb --short-circuit foo.spec
+# % rpmbuild -bb --without build foo.spec
+
+%prep %%prep \
+[ %{_with prep} -eq 1 ] || exit 0 \
+[ %{_with build} -eq 1 ] || exit 0 \
+[ %{_with install} -eq 1 ] || exit 0 \
+%{nil}
+
+%build %%build \
+[ %{_with install} -eq 1 ] || exit 0 \
+[ %{_with build} -eq 1 ] || exit 0 \
+%{nil}
+
+%install %{?_enable_debug_packages:%{?buildsubdir:%{debug_package_and_restore}}}\
+%%install\
+[ %{_with install} -eq 1 ] || exit 0 \
+%{nil}
+
+%check %%check \
+[ %{_with check} -eq 1 ] || exit 0 \
+%{nil}
diff --git a/macros.in b/macros.in
index 904a923..61b11f6 100644
--- a/macros.in
+++ b/macros.in
@@ -19,87 +19,8 @@
%_host %{_host_cpu}-%{_real_vendor}-%{_host_os}
-#==============================================================================
-# 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.
-#
-
-%__gzip /usr/bin/gzip
-
-%_sys_macros_dir @RPMSYSCONFDIR@/macros.d
-%build_sysmacrospath() %{_sys_macros_dir}/%{?1:%{1}}%{?!1:%{name}}.macros
-
-#==============================================================================
-# ---- Build system path macros.
-#
-
-%defaultbuildroot %{_tmppath}/%{name}-%{version}-%{release}-buildroot
-
-%__cputoolize cputoolize
-
-# Where install-info is located
-%__install_info /sbin/install-info
-
-# Update Menu
-%_update_menus_bin %{_bindir}/update-menus
-
-# Various programs used in rpm scripts
-%_update_desktop_database_bin %{_bindir}/update-desktop-database
-%_update_mime_database_bin %{_bindir}/update-mime-database
-%_update_icon_cache_bin %{_bindir}/gtk-update-icon-cache
-%_gconftool_bin %{_bindir}/gconftool-2
-%_scrollkeeper_bin %{_bindir}/scrollkeeper-update
-
-%__service /sbin/service
-%__chkconfig /sbin/chkconfig
-
-#==============================================================================
-# ---- 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.
-#
-
-%_enable_debug_packages 1
-
-%debugcflags %{?_enable_debug_packages:-g}
-
-%debug_package_and_restore %{debug_package} \
-%package __restore__\
-Summary: %{summary}\
-Group: %{group}\
-%description __restore__
-
-%ix86 i386 i486 i586 i686 pentium3 pentium4 athlon k6
-
-%sunsparc sun4 sun4m sun4c sun4d sparc sparcv8 sparcv9 sparc64 scparcv9b sparcv9v
-
-# common compilation flags
-%_fortify_cflags -Wp,-D_FORTIFY_SOURCE=2
-%_serverbuild_flags %nil
-%_ssp_cflags -fstack-protector --param=ssp-buffer-size=4 %{?_serverbuild_flags}
-%__common_cflags -O2 %{debugcflags} -pipe %{?_fortify_cflags} -fexceptions
-%__common_cflags_with_ssp %{__common_cflags} %{?_ssp_cflags}
-
-#==============================================================================
-# ---- Optional rpmrc macros.
-# Macros that are initialized as a side effect of rpmrc and/or spec
-# file parsing.
-#
-
%_changelog_truncate 3 years ago
-# Multilibs
-%_multilibpatt (/%{_lib}|/usr/%{_lib}(|/gconv)|/usr/local/%{_lib}|/usr/X11R6/%{_lib}|/opt/%{_lib})/[^/]*\\.([oa]|la|so[0-9.]*)$
-
-%_arch_tag_suffix (%_lib)
-%arch_tagged() %{1}%{_arch_tag_suffix} %{?2:%{2} %{3}%{?!3:%{error:undefined 3rd argument in arch_tagged}}}
-
%_sysconfdir /etc
%_localstatedir %{_var}/lib
%_logdir %{_var}/log
@@ -114,179 +35,6 @@ Group: %{group}\
%_libexecdir %_libdir
-# Games macros
-%_gamesdir games
-%_gamesbindir %{_prefix}/%{_gamesdir}
-%_gamesdatadir %{_datadir}/%{_gamesdir}
-
-# Default extension to use.
-%_extension .lzma
-
-# Menu directories
-%_menudir %{_prefix}/lib/menu
-%_iconsdir %{_datadir}/icons
-%_miconsdir %{_datadir}/icons/mini
-%_liconsdir %{_datadir}/icons/large
-
-%_xfontdir %_datadir/fonts
-
-%_webconfdir %{_sysconfdir}/httpd/conf
-%_webappconfdir %_webconfdir/webapps.d
-# compatibility
-%webappconfdir %_webappconfdir
-
-#==============================================================================
-# ---- Build configuration macros.
-#
-# Package version macro.
-# The type of package to produce, for compatibility with legacy
-# versions of rpm.
-#
-# Script gets packaged file list on input.
-# Returns list of multiarch files that are not marked as such,
-# i.e. files in $RPM_BUILD_ROOT that have arch-dependent values
-#
-# Note: Disable (by commenting out) for legacy compatibility.
-#%__check_multiarch_files @RPMLIBDIR@/check-multiarch-files %{buildroot}
-
-# Use internal dependency generator rather than external helpers?
-%_use_internal_dependency_generator 0
-
-%__find_provides @RPMVENDORDIR@/filter.sh '%{?_provides_exceptions:%{_provides_exceptions}}%{!?_provides_exceptions: }' '%{?_exclude_files_from_autoprov:%{_exclude_files_from_autoprov}}%{!?_exclude_files_from_autoprov: }' '%{buildroot}' @RPMVENDORDIR@/find-provides
-%__find_requires @RPMVENDORDIR@/filter.sh '%{?_requires_exceptions:%{_requires_exceptions}}%{!?_requires_exceptions: }' '%{?_exclude_files_from_autoreq:%{_exclude_files_from_autoreq}}%{!?_exclude_files_from_autoreq: }' '%{buildroot}' @RPMVENDORDIR@/find-requires %{?buildroot:%{buildroot}} %{?_target_cpu:%{_target_cpu}}
-
-%find_lang @RPMVENDORDIR@/find-lang.pl %{buildroot}
-
-# Macro: %{mklibname <name> [<major> [<minor>]] [-s] [-d]}
-# - %{mklibname test} => lib64test, on a lib64 platform
-# - %{mklibname test 1 -d} => libtest1-devel
-# - %{mklibname test 1 -d 0 -s} => libtest1_0-static-devel
-%mklibname(ds) %{_lib}%{1}%{?2:%{2}}%{?3:_%{3}}%{-s:-static}%{-d:-devel}
-
-# Update Menu
-%_update_menus_bin %{_bindir}/update-menus
-%update_menus if [ -x %{_update_menus_bin} ]; then %{_update_menus_bin} || true ; fi \
-%{nil}
-
-# Clean Menu
-%clean_menus if [ "$1" = "0" -a -x %{_update_menus_bin} ]; then %{_update_menus_bin} || true ; fi \
-%{nil}
-
-# Update Window Managers session.
-%_fndsession_bin %{_sbindir}/fndSession
-%make_session if [ -x %{_fndsession_bin} ]; then %{_fndsession_bin} || true ; fi \
-%{nil}
-
-# Macros to install info-files.
-%_install_info() if [[ -f %{_infodir}/%{1}%{_extension} ]];then %{__install_info} %{_infodir}/%{1}%{_extension} --dir=%{_infodir}/dir;fi \
-%{nil}
-
-# Macros to remove info-files. (keep the "alone on its line ';'")
-%_remove_install_info() if [ "$1" = "0" ]; then if [[ -f %{_infodir}/%{1}%{_extension} ]];then %{__install_info} %{_infodir}/%{1}%{_extension} --dir=%{_infodir}/dir --remove ;fi; fi \
-%{nil}
-
-# For rebuilding gcj-db
-%_rebuildgcjdb_bin %{_bindir}/rebuild-gcj-db
-%update_gcjdb if [ -x %{_rebuildgcjdb_bin} ]; then %{_rebuildgcjdb_bin} || true ; fi \
-%{nil}
-
-%clean_gcjdb if [ -x %{_rebuildgcjdb_bin} ]; then %{_rebuildgcjdb_bin} || true ; fi \
-%{nil}
-
-# Rebuild .desktop / MIME mapping database
-%update_desktop_database if [ -x %{_update_desktop_database_bin} ]; then \
-%{_update_desktop_database_bin} %{_datadir}/applications > /dev/null || \
-true ; fi \
-%{nil}
-
-%clean_desktop_database if [ "$1" = "0" -a -x %{_update_desktop_database_bin} ]; then \
-%{_update_desktop_database_bin} %{_datadir}/applications > /dev/null || true ; fi \
-%{nil}
-
-# Rebuild freedesktop.org MIME magic/extension database
-%update_mime_database if [ -x %{_update_mime_database_bin} ]; then \
-%{_update_mime_database_bin} %{_datadir}/mime > /dev/null || true ; fi \
-%{nil}
-
-%clean_mime_database if [ "$1" = "0" -a -x %{_update_mime_database_bin} ]; \
-then %{_update_mime_database_bin} %{_datadir}/mime > /dev/null || true ; fi \
-%{nil}
-
-# Rebuild icon cache
-%update_icon_cache() if [ -x %{_update_icon_cache_bin} ]; then \
-%{_update_icon_cache_bin} --force --quiet %{_iconsdir}/%{1} || true; fi \
-%{nil}
-
-%clean_icon_cache() if [ -x %{_update_icon_cache_bin} -a -r %{_iconsdir}/%{1}/index.theme ]; then \
-%{_update_icon_cache_bin} --force --quiet %{_iconsdir}/%{1} || true ; fi \
-%{nil}
-
-# Install GConf schemas
-%post_install_gconf_schemas() if [ -x %{_gconftool_bin} ]; then \
-SCHEMAS="" \
-for SCHEMA in %{*} ; do \
- SCHEMAS="$SCHEMAS %{_sysconfdir}/gconf/schemas/$SCHEMA.schemas" \
-done \
-GCONF_CONFIG_SOURCE=`%{_gconftool_bin} --get-default-source` %{_gconftool_bin} --makefile-install-rule $SCHEMAS > /dev/null || true ; fi \
-%{nil}
-
-%preun_uninstall_gconf_schemas() if [ "$1" = "0" -a -x %{_gconftool_bin} ]; then \
-SCHEMAS="" \
-for SCHEMA in %{*} ; do \
- SCHEMAS="$SCHEMAS %{_sysconfdir}/gconf/schemas/$SCHEMA.schemas" \
-done \
-GCONF_CONFIG_SOURCE=`%{_gconftool_bin} --get-default-source` %{_gconftool_bin} --makefile-uninstall-rule $SCHEMAS > /dev/null || true ; fi \
-%{nil}
-
-# Rebuild scrollkeeper database
-%update_scrollkeeper if [ -x %{_scrollkeeper_bin} ]; then \
-%{_scrollkeeper_bin} -q || true ; fi \
-%{nil}
-
-%clean_scrollkeeper if [ "$1" = "0" -a -x %{_scrollkeeper_bin} ]; \
-then %{_scrollkeeper_bin} -q || true ; fi \
-%{nil}
-
-# Mandriva Linux version
-# - "9.1" => 910
-# - "10.2.2" => 1022
-# (user may copy the following line in specfile)
-%mdkversion %(perl -pe '/(\\d+)\\.(\\d)\\.?(\\d)?/; $_="$1$2".($3||0)' /etc/mandriva-release)
-
-%distsuffix mdv
-
-%mkrel(c:) %{-c: 0.%{-c*}.}%{1}%{?subrel:.%subrel}%{?distsuffix:%distsuffix}%{?!distsuffix:mdv}%{?mandriva_release:%mandriva_release}
-
-%_smp_mflags %([ -z "$RPM_BUILD_NCPUS" ] \\\
- && RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"; \\\
- [ "$RPM_BUILD_NCPUS" -gt 1 ] && echo "-j$RPM_BUILD_NCPUS")
-
-# make
-%_make_bin make
-%make %{_make_bin} %_smp_mflags
-
-#==============================================================================
-# ---- Build policy macros.
-#
-#---------------------------------------------------------------------
-# Expanded at end of %install scriptlet.
-#
-
-%__os_install_post \
- @RPMVENDORDIR@/brp-compress \
- @RPMVENDORDIR@/brp-strip \
- @RPMVENDORDIR@/brp-strip-static-archive \
- @RPMVENDORDIR@/brp-strip-comment-note \
-%{nil}
-
-%__os_install_post \
- %{?__spec_helper_post}%{?!__spec_helper_post:/usr/share/spec-helper/spec-helper} \
-%{nil}
-
-%__debug_install_post \
- @RPMVENDORDIR@/find-debuginfo.sh %{_builddir}/%{?buildsubdir}\
-%{nil}
-
#==============================================================================
# ---- GPG/PGP/PGP5 signature macros.
@@ -316,215 +64,3 @@ then %{_scrollkeeper_bin} -q || true ; fi \
%_rpmlock_path %{_dbpath}/__db.000
-
-#==============================================================================
-# ---- specfile macros.
-# Macro(s) here can be used reliably for reproducible builds.
-# (Note: Above is the goal, below are the macros under development)
-#
-
-# Servers opt flags.
-# Also set the env variables for backward compatibility (#32050).
-%serverbuild %define _serverbuild_flags -fstack-protector-all \
-export CFLAGS="%optflags"; export CXXFLAGS="%optflags"; export RPM_OPT_FLAGS="%optflags" \
-%{nil}
-
-%__libtoolize_configure %{?__libtoolize:(cd $CONFIGURE_TOP; [ -f configure.in -o -f configure.ac ] && %{__libtoolize} --copy --force)}
-
-# This is an improved version of %configure (from PLD team).
-%configure \
- CONFIGURE_TOP="${CONFIGURE_TOP:-.}"; \
- CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ; \
- CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ; \
- FFLAGS="${FFLAGS:-%optflags}" ; export FFLAGS ; \
- %{?__cputoolize:%{__cputoolize} -c $CONFIGURE_TOP} ; \
- %{?_enable_libtoolize:%{?__libtoolize_configure:%{__libtoolize_configure};}} \
- [ -f $CONFIGURE_TOP/configure.in -o -f $CONFIGURE_TOP/configure.ac ] && \
- CONFIGURE_XPATH="--x-includes=%{_prefix}/include --x-libraries=%{_prefix}/%{_lib}" \
- $CONFIGURE_TOP/configure %{_target_platform} \\\
- --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} \\\
- $CONFIGURE_XPATH
-
-%configure2_5x \
- CONFIGURE_TOP="${CONFIGURE_TOP:-.}"; \
- CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ; \
- CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ; \
- FFLAGS="${FFLAGS:-%optflags}" ; export FFLAGS ; \
- %{?__cputoolize:%{__cputoolize} -c $CONFIGURE_TOP} ; \
- %{?_enable_libtoolize:%{?__libtoolize_configure:%{__libtoolize_configure};}} \
- [ -f $CONFIGURE_TOP/configure.in -o -f $CONFIGURE_TOP/configure.ac ] && \
- CONFIGURE_XPATH="--x-includes=%{_prefix}/include --x-libraries=%{_prefix}/%{_lib}" \
- $CONFIGURE_TOP/configure --build=%{_target_platform} \\\
- --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} \\\
- $CONFIGURE_XPATH
-
-%makeinstall_std make DESTDIR=%{?buildroot:%{buildroot}} install
-
-%old_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
-
-
-#------------------------------------------------------------------------------
-# Useful python macros
-%pyver %(python -V 2>&1 | cut -f2 -d" " | cut -f1,2 -d".")
-
-#------------------------------------------------------------------------------
-# Useful perl macros
-# (initially from Artur Frysiak <wiget@t17.ds.pwr.wroc.pl>)
-# (modified by Pixel <pixel@mandriva.com>)
-#
-# [...]
-# Group: Development/Perl
-# [...]
-# %build
-# perl Makefile.PL INSTALLDIRS=vendor
-# %make
-# [...]
-# %install
-# rm -rf $RPM_BUILD_ROOT
-# make install PREFIX="$RPM_BUILD_ROOT/%{prefix}"
-# [...]
-# %files
-# %defattr(644,root,root,755)
-# %{perl_vendorlib}/CGI
-# or
-# %{perl_vendorarch}/DBI
-# %{perl_vendorarch}/auto/DBI
-# %{_mandir}/*/*
-#
-
-# kept for compatibility, but should not be used, especially the ugly perl_archlib!
-%perl_sitearch %(eval "`perl -V:installsitearch`"; echo $installsitearch)
-%perl_archlib %(eval "`perl -V:installarchlib`"; echo $installarchlib)
-
-#--------------------------------------------------------------------------------
-# Macro from conectiva
-
-%rename() \
-Obsoletes: %{1} < %{version}-%{release} \
-Provides: %{1} = %{version}-%{release}
-
-# Shorthand for %{defined with_...}
-# macros provided by rpm 4.4, but buggy :(
-%_with() %{expand: %%{?_with_%1:1} %%{!?_with_%1: %%{?_without_%1:0} %%{!?_without_%1: %%{?with_%1:%%{with_%1}} %%{!?with_%1: %%{?without_%1:!%%{without_%1}} %%{!?without_%1: %%{?2:%%2} %%{!?2:1} } } } } }
-%_without() !%{expand: %%{with %1 %{?2:%2}}}
-
-%_package_i18n(g:f:) \
-%%package -n %{?1:%{1}}%{?!1:%{name}}-i18n\
-Summary: Internationalization and locale data for %{?1:%{1}}%{?!1:%{name}}\
-License: %{license}\
-Group: %{?-g:%{-g*}}%{?!-g:%{group}}\
-\
-%%description -n %{?1:%{1}}%{?!1:%{name}}-i18n\
-Internationalization and locale data for %{?1:%{1}}%{?!1:%{name}}\
-\
-%%files -n %{?1:%{1}}%{?!1:%{name}}-i18n %{?-f:%{-f}}%{?!-f:-f %{?1:%{1}}%{?!1:%{name}}.lang}\
-%{nil}
-
-
-#------------------------------------------------------------------------------
-# Python specific macros
-
-# (from rpm 4.4.6)
-%python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")
-%python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")
-%python_version %(%{__python} -c "import sys; print(sys.version[0:3])")
-
-# More Python specific macro definitions (originally from PLD).
-#
-%py_ver %(python -c "import sys; v=sys.version_info[:2]; print '%%d.%%d'%%v" 2>/dev/null || echo PYTHON-NOT-FOUND)
-%py_prefix %(python -c "import sys; print sys.prefix" 2>/dev/null || echo PYTHON-NOT-FOUND)
-# backward compatibility
-%py_libdir %py_purelibdir
-%py_platlibdir %(python -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib(standard_lib=1,plat_specific=1)' 2>/dev/null || echo PYTHON-LIBDIR-NOT-FOUND)
-%py_purelibdir %(python -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib(standard_lib=1,plat_specific=0)' 2>/dev/null || echo PYTHON-LIBDIR-NOT-FOUND)
-%py_incdir %(python -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_inc()' 2>/dev/null || echo PYTHON-INCLUDEDIR-NOT-FOUND)
-%py_sitedir %py_puresitedir
-%py_platsitedir %(python -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib(plat_specific=1)' 2>/dev/null || echo PYTHON-LIBDIR-NOT-FOUND)
-%py_puresitedir %(python -c 'import distutils.sysconfig; print distutils.sysconfig.get_python_lib()' 2>/dev/null || echo PYTHON-LIBDIR-NOT-FOUND)
-
-%py_compile(O) \
-find %1 -name '*.pyc' -exec rm -f {} \\; \
-python -c "import sys, os, compileall; br='%{buildroot}'; compileall.compile_dir(sys.argv[1], ddir=br and (sys.argv[1][len(os.path.abspath(br)):]+'/') or None)" %1 \
-%{-O: \
-find %1 -name '*.pyo' -exec rm -f {} \\; \
-python -O -c "import sys, os, compileall; br='%{buildroot}'; compileall.compile_dir(sys.argv[1], ddir=br and (sys.argv[1][len(os.path.abspath(br)):]+'/') or None)" %1 \
-}
-%py_requires(d) \
-%define minver %py_ver \
-%define maxver %(python -c "import sys; a,b=sys.version_info[:2]; print '%%d.%%d'%%(a,b+1)" 2>/dev/null || echo PYTHON-NOT-FOUND) \
-BuildRequires: python %{-d:python-devel} \
-Requires: python >= %minver, python < %maxver
-
-
-#------------------------------------------------------------------------------
-# Ocaml macro
-#
-
-%ocaml_sitelib %(if [ -x /usr/bin/ocamlc ]; then ocamlc -where;fi)/site-lib
-
-#------------------------------------------------------------------------------
-# Redefine RPM sections to allow jumping over them using "--without <section>".
-# This an interesting alternative to --short-circuit.
-# The following are mostly equivalent:
-# % rpmbuild -bi --short-circuit foo.spec && rpmbuild -bb --short-circuit foo.spec
-# % rpmbuild -bb --without build foo.spec
-
-%prep %%prep \
-[ %{_with prep} -eq 1 ] || exit 0 \
-[ %{_with build} -eq 1 ] || exit 0 \
-[ %{_with install} -eq 1 ] || exit 0 \
-%{nil}
-
-%build %%build \
-[ %{_with install} -eq 1 ] || exit 0 \
-[ %{_with build} -eq 1 ] || exit 0 \
-%{nil}
-
-%install %{?_enable_debug_packages:%{?buildsubdir:%{debug_package_and_restore}}}\
-%%install\
-[ %{_with install} -eq 1 ] || exit 0 \
-%{nil}
-
-%check %%check \
-[ %{_with check} -eq 1 ] || exit 0 \
-%{nil}