Make %py_byte_compile terminate build on SyntaxErrors (#1616219)
Also, make it simpler again
This commit is contained in:
parent
25b297c006
commit
8f067ff385
@ -3,25 +3,17 @@
|
|||||||
# Python's compile_all module only works on directories, and requires a max
|
# Python's compile_all module only works on directories, and requires a max
|
||||||
# recursion depth
|
# recursion depth
|
||||||
|
|
||||||
# Note that the py_byte_compile macro should work for all Python versions
|
# Usage:
|
||||||
# Which unfortunately makes the definition more complicated than it should be
|
# %py_byte_compile <interpereter> <path>
|
||||||
|
# Example:
|
||||||
|
# %py_byte_compile %{__python3} %{buildroot}%{_datadir}/spam/plugins/
|
||||||
|
|
||||||
|
# This will terminate build on SyntaxErrors, if you want to avoid that,
|
||||||
|
# use it in a subshell like this:
|
||||||
|
# (%{py_byte_compile <interpereter> <path>}) || :
|
||||||
|
|
||||||
%py_byte_compile()\
|
%py_byte_compile()\
|
||||||
py2_byte_compile () {\
|
|
||||||
python_binary="%1"\
|
python_binary="%1"\
|
||||||
bytecode_compilation_path="%2"\
|
bytecode_compilation_path="%2"\
|
||||||
find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("$RPM_BUILD_ROOT")[2]) for f in sys.argv[1:]]' || :\
|
find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -O -m py_compile\
|
||||||
find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("$RPM_BUILD_ROOT")[2]) for f in sys.argv[1:]]' || :\
|
find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -m py_compile
|
||||||
}\
|
|
||||||
\
|
|
||||||
py3_byte_compile () {\
|
|
||||||
python_binary="%1"\
|
|
||||||
bytecode_compilation_path="%2"\
|
|
||||||
find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("$RPM_BUILD_ROOT")[2], optimize=opt) for opt in range(2) for f in sys.argv[1:]]' || :\
|
|
||||||
}\
|
|
||||||
\
|
|
||||||
# Get version without a dot (36 instead of 3.6), bash doesn't compare floats well \
|
|
||||||
python_version=$(%1 -c "import sys; sys.stdout.write('{0.major}{0.minor}'.format(sys.version_info))") \
|
|
||||||
# The bytecompilation syntax has changed between Python 3.4 and Python 3.5, so for 3.4 and earlier we use the "Python 2" syntax \
|
|
||||||
[ "$python_version" -ge 35 ] && py3_byte_compile "%1" "%2" || py2_byte_compile "%1" "%2" \
|
|
||||||
%{nil}
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
Name: python-rpm-macros
|
Name: python-rpm-macros
|
||||||
Version: 3
|
Version: 3
|
||||||
Release: 36%{?dist}
|
Release: 37%{?dist}
|
||||||
Summary: The unversioned Python RPM macros
|
Summary: The unversioned Python RPM macros
|
||||||
|
|
||||||
License: MIT
|
License: MIT
|
||||||
@ -71,6 +71,9 @@ install -m 644 %{SOURCE0} %{SOURCE1} %{SOURCE2} %{SOURCE3} %{SOURCE4} \
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Aug 15 2018 Miro Hrončok <mhroncok@redhat.com> - 3-37
|
||||||
|
- Make %%py_byte_compile terminate build on SyntaxErrors (#1616219)
|
||||||
|
|
||||||
* Wed Aug 15 2018 Miro Hrončok <mhroncok@redhat.com> - 3-36
|
* Wed Aug 15 2018 Miro Hrončok <mhroncok@redhat.com> - 3-36
|
||||||
- Make %%py_build wokr if %%__python is defined to custom value
|
- Make %%py_build wokr if %%__python is defined to custom value
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user