X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=rpm.macros;h=ce3242d781d54f3cb07fa56b52613810fa30371f;hb=f05db907224f42389137e50fcb68c20ff0a5981a;hp=470d88f6c907365f1fa695894325491c67054ed2;hpb=92a43428a7b06c1f5e1fb0b51eac92e86e32cbfe;p=packages%2Frpm.git diff --git a/rpm.macros b/rpm.macros index 470d88f..ce3242d 100644 --- a/rpm.macros +++ b/rpm.macros @@ -36,7 +36,7 @@ %__gnome_doc_prepare gnome-doc-prepare --copy --force %__gtkdocize gtkdocize --copy %__intltoolize intltoolize --copy --force -%__libtoolize libtoolize --copy --force +%__libtoolize libtoolize --copy --force --install # Path to top of build area. %_topdir %{expand:%%global _topdir %(test -d ../SPECS -a -d ../SOURCES && (cd ..; pwd) || echo $HOME/rpm)}%_topdir @@ -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 @@ -94,6 +95,12 @@ %{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) @@ -122,7 +129,7 @@ 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 \ @@ -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} \ @@ -462,7 +469,8 @@ if [ -d "$RPM_BUILD_ROOT" ]; then \ continue ; \ ;; \ esac ; \ - dir=$(readlink -m "$dir"); \ + newdir=$(readlink -m "$dir"); \ + [ ${#newdir} -le ${#dir} ] && dir=$newdir; \ case $dir in \ /home/* | /tmp/* | /usr/lib | /usr/lib64 | /lib | /lib64 | /usr/local/lib | /usr/local/lib64 | /usr/X11R6/lib | /usr/X11R6/lib64 ) \ echo "remove-rpath: $dir in $file"; \ @@ -682,31 +690,50 @@ if [ -f /etc/rc.d/init.d/php-fcgi ]; then \ fi \ %{nil} - # X.org helper macros -%__xorg_abi_requires() Requires: xorg-xserver-server(%{expand:%1}-abi) = %{expand:%{%{!?2:%{1}}%{?2}}} -# +%__xorg_abi_requires_ge() Requires: xorg-xserver-server(%{expand:%1}-abi) >= %{expand:%{%2}} +%__xorg_abi_requires_lt() Requires: xorg-xserver-server(%{expand:%1}-abi) < %(awk -vv=%{expand:%{%2}} 'BEGIN{split(v, a, "."); printf("%s.0", a[1] + 1); exit}') + %xorg_xserver_ansic_abi %{expand:%%global xorg_xserver_ansic_abi %(awk '/#define ABI_ANSIC_VERSION/ { split($0,A,/[(,)]/); printf("%d.%d",A[2], A[3]); }' /usr/include/xorg/xf86Module.h 2> /dev/null || echo ERROR)}%xorg_xserver_ansic_abi %xorg_xserver_extension_abi %{expand:%%global xorg_xserver_extension_abi %(awk '/#define ABI_EXTENSION_VERSION/ { split($0,A,/[(,)]/); printf("%d.%d",A[2], A[3]); }' /usr/include/xorg/xf86Module.h 2> /dev/null || echo ERROR)}%xorg_xserver_extension_abi %xorg_xserver_font_abi %{expand:%%global xorg_xserver_font_abi %(awk '/#define ABI_FONT_VERSION/ { split($0,A,/[(,)]/); printf("%d.%d",A[2], A[3]); }' /usr/include/xorg/xf86Module.h 2> /dev/null | echo ERROR)}%xorg_xserver_font_abi %xorg_xserver_videodrv_abi %{expand:%%global xorg_xserver_videodrv_abi %(awk '/#define ABI_VIDEODRV_VERSION/ { split($0,A,/[(,)]/); printf("%d.%d",A[2], A[3]); }' /usr/include/xorg/xf86Module.h 2> /dev/null || echo ERROR)}%xorg_xserver_videodrv_abi %xorg_xserver_xinput_abi %{expand:%%global xorg_xserver_xinput_abi %(awk '/#define ABI_XINPUT_VERSION/ { split($0,A,/[(,)]/); printf("%d.%d",A[2], A[3]); }' /usr/include/xorg/xf86Module.h 2> /dev/null || echo ERROR)}%xorg_xserver_xinput_abi -%requires_xorg_xserver_extension %{__xorg_abi_requires ansic xorg_xserver_ansic_abi} \ -%{__xorg_abi_requires extension xorg_xserver_extension_abi} -%requires_xorg_xserver_xinput %{__xorg_abi_requires ansic xorg_xserver_ansic_abi} \ -%{__xorg_abi_requires xinput xorg_xserver_xinput_abi} -%requires_xorg_xserver_font %{__xorg_abi_requires ansic xorg_xserver_ansic_abi} \ -%{__xorg_abi_requires font xorg_xserver_font_abi} -%requires_xorg_xserver_videodrv %{__xorg_abi_requires ansic xorg_xserver_ansic_abi} \ -%{__xorg_abi_requires videodrv xorg_xserver_videodrv_abi} +%requires_xorg_xserver_extension \ +%{__xorg_abi_requires_ge ansic xorg_xserver_ansic_abi} \ +%{__xorg_abi_requires_lt ansic xorg_xserver_ansic_abi} \ +%{__xorg_abi_requires_ge extension xorg_xserver_extension_abi} \ +%{__xorg_abi_requires_lt extension xorg_xserver_extension_abi} \ +%{nil} + +%requires_xorg_xserver_xinput \ +%{__xorg_abi_requires_ge ansic xorg_xserver_ansic_abi} \ +%{__xorg_abi_requires_lt ansic xorg_xserver_ansic_abi} \ +%{__xorg_abi_requires_ge xinput xorg_xserver_xinput_abi} \ +%{__xorg_abi_requires_lt xinput xorg_xserver_xinput_abi} \ +%{nil} + +%requires_xorg_xserver_font \ +%{__xorg_abi_requires_ge ansic xorg_xserver_ansic_abi} \ +%{__xorg_abi_requires_lt ansic xorg_xserver_ansic_abi} \ +%{__xorg_abi_requires_ge font xorg_xserver_font_abi} \ +%{__xorg_abi_requires_lt font xorg_xserver_font_abi} \ +%{nil} + +%requires_xorg_xserver_videodrv \ +%{__xorg_abi_requires_ge ansic xorg_xserver_ansic_abi} \ +%{__xorg_abi_requires_lt ansic xorg_xserver_ansic_abi} \ +%{__xorg_abi_requires_ge videodrv xorg_xserver_videodrv_abi} \ +%{__xorg_abi_requires_lt videodrv xorg_xserver_videodrv_abi} \ +%{nil} # 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} @@ -1495,4 +1522,42 @@ io.open("/etc/shells", "w"):write(s)\ %{-p:end} \ %{nil} +# Check syntax for Python files +# +# Author: Elan Ruusamäe +# Author: Arkadiusz Miśkiewicz +# +# 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