]> git.pld-linux.org Git - packages/rpm.git/blobdiff - rpm.macros
- up to 5.1.6
[packages/rpm.git] / rpm.macros
index 8405e209094590061e54d1796cddaaec7626b937..8b57ae3b9127aa77b2ee247e39c3c7e3214dbe8c 100644 (file)
@@ -57,8 +57,8 @@
 %_dependency_whiteout  %{nil}
 
 %_smp_mflags %([ -z "$RPM_BUILD_NCPUS" ] \\\
-       && RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"; \\\
-       [ "$RPM_BUILD_NCPUS" -gt 1 ] && echo "-j$RPM_BUILD_NCPUS")
+       && RPM_BUILD_NCPUS=$(/usr/bin/getconf _NPROCESSORS_ONLN); \\\
+       [ "$RPM_BUILD_NCPUS" -gt 1 ] && echo "-j$(($RPM_BUILD_NCPUS * 2))")
 
 #-----------------------------------------------------------------
 #
@@ -69,6 +69,7 @@
 # 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} \
 }
 
@@ -162,7 +169,7 @@ CXXFLAGS="%{rpmcxxflags}" \
        CFLAGS="${CFLAGS:-%rpmcflags}" \
        CXXFLAGS="${CXXFLAGS:-%rpmcxxflags}" \
        FFLAGS="${FFLAGS:-%rpmcflags}" \
-       CPPFLAGS="${CPPFLAGS:-}" \
+       CPPFLAGS="${CPPFLAGS:-%rpmcppflags}" \
        %{?__cc:CC="%{__cc}"} \
        %{?__cxx:CXX="%{__cxx}"} \
        libsuffix=%{_lib} \
@@ -191,7 +198,7 @@ CXXFLAGS="%{rpmcxxflags}" \
        CXXFLAGS="${CXXFLAGS:-%rpmcxxflags}" \
        FFLAGS="${FFLAGS:-%rpmcflags}" \
        FCFLAGS="${FCFLAGS:-%rpmcflags}" \
-       CPPFLAGS="${CPPFLAGS:-}" \
+       CPPFLAGS="${CPPFLAGS:-%rpmcppflags}" \
        %{?__cc:CC="%{__cc}"} \
        %{?__cxx:CXX="%{__cxx}"} \
        --host=%{_target_platform} \
@@ -513,13 +520,15 @@ fi; }; __spec_install_post_chrpath } } }
 #
 %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}
 
@@ -529,15 +538,17 @@ fi; \
 %update_desktop_database() {{ \
        umask 022; \
        /usr/bin/update-desktop-database -q; \
-}}%{nil}
+};} \
+%{nil}
 
 %update_desktop_database_post %update_desktop_database
 
 %update_desktop_database_postun() {{ \
 if [ "$1" = "0" ]; then \
-       %update_desktop_database; \
+       %update_desktop_database \
 fi; \
-}}%{nil}
+};} \
+%{nil}
 
 #-----------------------------------------------------------------
 # Update shared MIME info database
@@ -546,7 +557,8 @@ fi; \
 %update_mime_database() {{ \
        umask 022; \
        /usr/bin/update-mime-database %{_datadir}/mime; \
-}}%{nil}
+};} \
+%{nil}
 
 #-----------------------------------------------------------------
 # Update icon cache
@@ -555,7 +567,8 @@ fi; \
 %update_icon_cache() {{ \
        umask 022; \
        /usr/bin/gtk-update-icon-cache -qf %{_datadir}/icons/%1; \
-}}%{nil}
+};} \
+%{nil}
 
 #-----------------------------------------------------------------
 # Update scrollkeeper database
@@ -621,6 +634,7 @@ fi; \
 %ruby_vendorlibdir     %{expand:%%global ruby_vendorlibdir %(%{__ruby} -r rbconfig -e 'print Config::CONFIG["vendorlibdir"]' 2>/dev/null || echo ERROR)}%ruby_vendorlibdir
 %ruby_sitearchdir      %{expand:%%global ruby_sitearchdir %(%{__ruby} -r rbconfig -e 'print Config::CONFIG["sitearchdir"]' 2>/dev/null || echo ERROR)}%ruby_sitearchdir
 %ruby_sitelibdir       %{expand:%%global ruby_sitelibdir %(%{__ruby} -r rbconfig -e 'print Config::CONFIG["sitelibdir"]' 2>/dev/null || echo ERROR)}%ruby_sitelibdir
+%ruby_rdocdir          /usr/share/rdoc
 %ruby_version          %{expand:%%global ruby_version %(%{__ruby} -r rbconfig -e 'print Config::CONFIG["ruby_version"]' 2>/dev/null || echo ERROR)}%ruby_version
 %ruby_ver_requires_eq  Requires:       ruby(ver) = %ruby_version
 %ruby_mod_ver_requires_eq      Requires:       ruby-modules(ver) = %ruby_version
@@ -723,10 +737,10 @@ fi \
 
 # Python specific macro definitions.
 # python main version
-%py_ver                        %{expand:%%global py_ver %(%{__python} -c "import sys; print sys.version[:3]" || echo ERROR)}%py_ver
+%py_ver                        %{expand:%%global py_ver %(%{__python} -c "import sys; print sys.version[:3]" 2>/dev/null || echo ERROR)}%py_ver
 
 # directories
-%py_prefix             %{expand:%%global py_prefix %(%{__python} -c "import sys; print sys.prefix" || echo ERROR)}%py_prefix
+%py_prefix             %{expand:%%global py_prefix %(%{__python} -c "import sys; print sys.prefix" 2>/dev/null || echo ERROR)}%py_prefix
 %py_libdir             %{py_prefix}/%{_lib}/python%{py_ver}
 %py_scriptdir  %{py_prefix}/share/python%{py_ver}
 %py_incdir             /usr/include/python%{py_ver}
@@ -898,7 +912,7 @@ fi;
 %groupadd(g:P:rfo)     \
 %{!-g:%{error:groupadd: Required argument -g missing}} \
 %{!?1:%{error:groupadd: Required parameter group missing}} \
-if [ -n "`/usr/bin/getgid %{1}`" ]; then \
+if /usr/bin/getgid %{1} > /dev/null 2>&1; then \
        if [ "`/usr/bin/getgid %{1}`" != "%{-g*}" ]; then \
                echo "Error: group %{1} doesn't have gid=%{-g*}. Correct this before installing %{-P*}%{!?-P:%{name}}." 1>&2 \
                exit 1 \
@@ -1002,7 +1016,7 @@ fi \
 
 %java_home             %{expand:%%global java_home %([ -f %{_javadir}-utils/java-functions ] || { echo ERROR; exit 0; }; unset JAVA_HOME; . %{_javadir}-utils/java-functions; set_jvm; echo ${JAVA_HOME:-ERROR})}%java_home
 
-%ant                   JAVA_HOME=%{java_home} ant
+%ant                   JAVA_HOME=%{java_home} CLASSPATH=$CLASSPATH ant
 %jar                   %{java_home}/bin/jar
 %java                  %{expand:%%global java %([ -f %{_javadir}-utils/java-functions ] || { echo ERROR; exit 0; }; unset JAVACMD; . %{_javadir}-utils/java-functions; set_javacmd; echo $JAVACMD)}%java
 %javac                 %{java_home}/bin/javac
@@ -1098,11 +1112,13 @@ echo -e "</dependencies>\\n" >> %{_mavendepmapdir}/maven2-depmap.xml
 # 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
@@ -1124,7 +1140,7 @@ echo -e "</dependencies>\\n" >> %{_mavendepmapdir}/maven2-depmap.xml
 %__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 \
@@ -1137,9 +1153,10 @@ fi \
 
 %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 \\\
@@ -1149,18 +1166,20 @@ fi \
        --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 \
@@ -1298,7 +1317,7 @@ for cfg in ${cfgs:-dist}; do                                        \
        [ -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}                                                                                             \
@@ -1515,4 +1534,42 @@ io.open("/etc/shells", "w"):write(s)\
 %{-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
This page took 0.063739 seconds and 4 git commands to generate.