# Flags specified in %filterout_* are removed from %rpm*flags, exactly:
# %rpmcflags = %optflags - %filterout - %filterout_c - %filterout_ld
# %rpmcxxflags = %optflags - %filterout - %filterout_cxx - %filterout_ld
+# %rpmcppflags = %optcppflags - %filterout - %filterout_cpp - %filterout_ld
# %rpmldflags = %optldflags - %filterout_ld
#
# Regular expressions are supported, but to avoid some character be treated
%{filter_out}
}')
+%rpmcppflags %(awk 'BEGIN {
+ split("%{?debug:%debugcppflags}%{!?debug:%optcppflags}%{?debuginfocppflags}",I);
+ split("%{?filterout} %{?filterout_cpp} %{?filterout_cpp}",F);
+ %{filter_out}
+}')
+
%rpmldflags %(awk 'BEGIN {
split("%{?optldflags}",I);
split("%{?filterout_ld}",F)
CXXFLAGS="${CXXFLAGS:-%rpmcxxflags}" ; export CXXFLAGS ; \
FFLAGS="${FFLAGS:-%rpmcflags}" ; export FFLAGS ; \
FCFLAGS="${FCFLAGS:-%rpmcflags}" ; export FCFLAGS ; \
- CPPFLAGS="${CPPFLAGS:-}" ; export CPPFLAGS ; \
+ CPPFLAGS="${CPPFLAGS:-%rpmcppflags}" ; export CPPFLAGS ; \
%{?__cc:CC="%{__cc}" ; export CC ; } \
%{?__cxx:CXX="%{__cxx}" ; export CXX ; } \
%{?configuredir:%{configuredir}}%{!?configuredir:.}/configure \
%{dependencytracking} \
}
-# override __cmake to add -j4 in your ~/.rpmmacros for parallel make
%__cmake /usr/bin/cmake
%cmake { \
CC="%{__cc}" \
CXX="%{__cxx}" \
CFLAGS="%{rpmcflags}" \
CXXFLAGS="%{rpmcxxflags}" \
+LDFLAGS="%{rpmldflags}" \
%{__cmake} \
}
CFLAGS="${CFLAGS:-%rpmcflags}" \
CXXFLAGS="${CXXFLAGS:-%rpmcxxflags}" \
FFLAGS="${FFLAGS:-%rpmcflags}" \
- CPPFLAGS="${CPPFLAGS:-}" \
+ CPPFLAGS="${CPPFLAGS:-%rpmcppflags}" \
%{?__cc:CC="%{__cc}"} \
%{?__cxx:CXX="%{__cxx}"} \
libsuffix=%{_lib} \
CXXFLAGS="${CXXFLAGS:-%rpmcxxflags}" \
FFLAGS="${FFLAGS:-%rpmcflags}" \
FCFLAGS="${FCFLAGS:-%rpmcflags}" \
- CPPFLAGS="${CPPFLAGS:-}" \
+ CPPFLAGS="${CPPFLAGS:-%rpmcppflags}" \
%{?__cc:CC="%{__cc}"} \
%{?__cxx:CXX="%{__cxx}"} \
--host=%{_target_platform} \
#
%gconf_schema_install() \
umask 022; \
- GCONF_CONFIG_SOURCE="xml:readwrite:/etc/gconf/gconf.xml.defaults" /usr/bin/gconftool-2 --makefile-install-rule /etc/gconf/schemas/%{?1}%{!?1:*.schemas} > /dev/null; \
+ GCONF_CONFIG_SOURCE="xml:readwrite:/etc/gconf/gconf.xml.defaults" \\\
+ /usr/bin/gconftool-2 --makefile-install-rule /etc/gconf/schemas/%{?1}%{!?1:*.schemas} > /dev/null; \
%{nil}
%gconf_schema_uninstall() \
-if [ $1 = 0 ]; then \
+if [ $1 = 0 -a -x /usr/bin/gconftool-2 ]; then \
umask 022; \
- GCONF_CONFIG_SOURCE="xml:readwrite:/etc/gconf/gconf.xml.defaults" /usr/bin/gconftool-2 --makefile-uninstall-rule /etc/gconf/schemas/%{?1} > /dev/null \
+ GCONF_CONFIG_SOURCE="xml:readwrite:/etc/gconf/gconf.xml.defaults" \\\
+ /usr/bin/gconftool-2 --makefile-uninstall-rule /etc/gconf/schemas/%{?1} > /dev/null \
fi; \
%{nil}
# Author: Elan Ruusamäe <glen@pld-linux.org>
#
# Usage:
-# %%pear_package_setup [-a #] [-n FMT]
+# %%pear_package_setup ...
#
# -a # - also unpack SOURCE#. for PEAR bootstrapping
# -n FMT - create builddir with FMT, instead of default %%{_pearname}-%%{version}
# -z - unpack pear package and let pear use package.xml (not tarball) for install. for PEAR bootstrapping
+# -D - pass -D to %setup (so the build dir is not removed)
+# -c - register channel from local channel.xml file
#
# unpack PEAR package to %%{_builddir}/FMT. package is extracted with already
# destination hierarchy. you should copy the tree to buildroot after
%__pear_install_log \
tee install.log \
# make post message of optional packages \
-grep 'can optionally use' install.log | sed -e 's,package "pear/,package "php-pear-,g;s,^pear/,php-pear-,' > optional-packages.txt \
+grep 'can optionally use' install.log | sed -e 's,package "pear/,package "php-pear-,g;s,^pear/,php-pear-,;s,^pear/,php-pear-,;s,^channel://.*/,,' > optional-packages.txt \
if [ -s optional-packages.txt ]; then \
awk -F'"' '/use package/{print $2}' optional-packages.txt | sed -e "s,_,/,g;s,php-pear-, 'pear(,;s,$,.*)'," | tr -d '\\\n' > _noautoreq \
else \
%pear_install(a:n:zD) \
%__pear \\\
- -c pearrc \\\
+ -c %{builddir}/pearrc \\\
-d doc_dir=/docs \\\
- -d php_dir=%{php_pear_dir} \\\
+ -d temp_dir=/tmp \\\
+ -d php_dir=%{-c:%{builddir}/}%{php_pear_dir} \\\
-d bin_dir=%{_bindir} \\\
-d data_dir=%{php_pear_dir}/data \\\
-d test_dir=%{php_pear_dir}/tests \\\
--nodeps \\\
%{-f:--force} \\\
%{!-z:%{S:%{-a*}%{!-a:0}}}%{-z:$_P} > .install.log || { c=$?; cat .install.log; exit $c; }; \
+ %{-c:cp -a %{builddir}/%{builddir}/%{php_pear_dir} %{builddir}/%(dirname %{php_pear_dir}); rm -rf %{builddir}/%{builddir}; } \
%{nil}
# The main macro.
# using this macro will append optional-packages.txt to the nocompressdoc list
# as it's displayed to user after package install. and adding additional gzip
# dep is just waste ;)
-%pear_package_setup(a:n:zD) \
+%pear_package_setup(a:n:zDc:) \
%define srcdir %{-n*}%{!-n:%{_pearname}-%{version}} \
%define builddir %{_builddir}/%{srcdir} \
%setup -q -c -T %{-D:-D} -n %{srcdir} \
%{-z:tar zxf %{S:0}; %{-a:tar zxf %{S:%{-a*}}}} \
%{-z:_P=package2.xml; [ -f $_P ] || _P=package.xml; _N=%{srcdir}; mv $_P $_N; cd $_N} \
+%{-c:%{__pear} -c pearrc config-set php_dir %{builddir}/%{php_pear_dir}; %__pear -c %{builddir}/pearrc channel-add %{-c*}} \
%pear_install \
%{-z:cd ..} \
cat %{-z:$_N/}.install.log | %__pear_install_log \
[ -z "$PATCH_SH" ] || echo "$PATCH_SH" | %__spec_build_shell \
set -x \
\
- %if %{with dist_kernel} \
+ %if %{with dist_kernel} || %(test -f %{_kernelsrcdir}/scripts/bin2c ; echo $?) \
%{__make} -j1 -C %{_kernelsrcdir} prepare scripts \\\
%{-p*} %{-P*} \\\
%{MakeOpts} \
%{-p:end} \
%{nil}
+# Check syntax for Python files
+#
+# Author: Elan Ruusamäe <glen@pld-linux.org>
+# Author: Arkadiusz Miśkiewicz <arekm@pld-linux.org>
+#
+# Usage:
+# %py_lint src
+#
+# Requirements:
+# BuildRequires: python
+# BuildRequires: rpmbuild(macros) >= 1.469
+
+%py_lint() \
+__py_lint() { \
+find "$@" -type f -name '*.py' | python -c ' \
+import sys \
+import compiler \
+\
+err = 0\
+for f in sys.stdin: \
+ fd = open(f.strip()) \
+ c = fd.read() \
+ fd.close() \
+ try: \
+ compiler.parse(c) \
+ except SyntaxError, e: \
+ print "py_lint: %s: %s" % (f.strip(), e) \
+ err = err + 1\
+\
+if err: \
+ print >> sys.stderr, "\\npy_lint: ERROR: Syntax errors in %d files.\\n" % err \
+ sys.exit(1) \
+else: \
+ print >> sys.stderr, "py_lint: Found no syntax errors." \
+' \
+}; __py_lint %* \
+%{nil}
+
# vim:ts=4 sw=4 noet syn=spec