Fix the py_byte_compile macro to work on Python 2
See https://bugzilla.redhat.com/show_bug.cgi?id=1484993 Inspired by Terje Røsten's workaround from that bugzilla This also removes the pybytecompile macro file from the flat package because it doesn't belong there as pointed out during the review and later forgotten.
This commit is contained in:
parent
f52973f5cb
commit
6a6a8d45dd
@ -3,8 +3,23 @@
|
|||||||
# 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 python2 as well
|
||||||
|
# Which unfortunately makes the definition more complicated than it should be
|
||||||
|
# The condition should be reversed once /usr/bin/python is python3!
|
||||||
|
|
||||||
%py_byte_compile()\
|
%py_byte_compile()\
|
||||||
python_binary="%1"\
|
py2_byte_compile () {\
|
||||||
bytecode_compilation_path="%2"\
|
python_binary="%1"\
|
||||||
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:]]' || :\
|
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 -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("$RPM_BUILD_ROOT")[2]) for f in sys.argv[1:]]' || :\
|
||||||
|
}\
|
||||||
|
\
|
||||||
|
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:]]' || :\
|
||||||
|
}\
|
||||||
|
\
|
||||||
|
[[ "%1" == *python3* ]] || py2_byte_compile "%1" "%2" && py3_byte_compile "%1" "%2" \
|
||||||
%{nil}
|
%{nil}
|
||||||
|
@ -18,7 +18,7 @@ URL: https://www.python.org/
|
|||||||
# WARNING When rebasing to a new Python version,
|
# WARNING When rebasing to a new Python version,
|
||||||
# remember to update the python3-docs package as well
|
# remember to update the python3-docs package as well
|
||||||
Version: %{pybasever}.0
|
Version: %{pybasever}.0
|
||||||
Release: 0.10.%{?prerel}%{?dist}
|
Release: 0.11.%{?prerel}%{?dist}
|
||||||
License: Python
|
License: Python
|
||||||
|
|
||||||
|
|
||||||
@ -964,9 +964,9 @@ rm -rf %{buildroot}%{_bindir}/__pycache__
|
|||||||
find %{buildroot} -perm 555 -exec chmod 755 {} \;
|
find %{buildroot} -perm 555 -exec chmod 755 {} \;
|
||||||
|
|
||||||
# Install macros for rpm:
|
# Install macros for rpm:
|
||||||
|
%if %{without flatpackage}
|
||||||
mkdir -p %{buildroot}/%{_rpmconfigdir}/macros.d/
|
mkdir -p %{buildroot}/%{_rpmconfigdir}/macros.d/
|
||||||
install -m 644 %{SOURCE3} %{buildroot}/%{_rpmconfigdir}/macros.d/
|
install -m 644 %{SOURCE3} %{buildroot}/%{_rpmconfigdir}/macros.d/
|
||||||
%if %{without flatpackage}
|
|
||||||
install -m 644 %{SOURCE9} %{buildroot}/%{_rpmconfigdir}/macros.d/
|
install -m 644 %{SOURCE9} %{buildroot}/%{_rpmconfigdir}/macros.d/
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@ -1365,6 +1365,7 @@ CheckPython optimized
|
|||||||
%{_bindir}/python3-config
|
%{_bindir}/python3-config
|
||||||
%{_libdir}/pkgconfig/python3.pc
|
%{_libdir}/pkgconfig/python3.pc
|
||||||
%{_rpmconfigdir}/macros.d/macros.systempython
|
%{_rpmconfigdir}/macros.d/macros.systempython
|
||||||
|
%{_rpmconfigdir}/macros.d/macros.pybytecompile%{pybasever}
|
||||||
%{_bindir}/pathfix.py
|
%{_bindir}/pathfix.py
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@ -1374,7 +1375,6 @@ CheckPython optimized
|
|||||||
%{_libdir}/libpython%{LDVERSION_optimized}.so
|
%{_libdir}/libpython%{LDVERSION_optimized}.so
|
||||||
%{_libdir}/pkgconfig/python-%{LDVERSION_optimized}.pc
|
%{_libdir}/pkgconfig/python-%{LDVERSION_optimized}.pc
|
||||||
%{_libdir}/pkgconfig/python-%{pybasever}.pc
|
%{_libdir}/pkgconfig/python-%{pybasever}.pc
|
||||||
%{_rpmconfigdir}/macros.d/macros.pybytecompile%{pybasever}
|
|
||||||
|
|
||||||
|
|
||||||
%if %{without flatpackage}
|
%if %{without flatpackage}
|
||||||
@ -1572,6 +1572,11 @@ CheckPython optimized
|
|||||||
# ======================================================
|
# ======================================================
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Feb 21 2018 Miro Hrončok <mhroncok@redhat.com> - 3.7.0-0.11.b1
|
||||||
|
- Fix the py_byte_compile macro to work on Python 2
|
||||||
|
- Remove the pybytecompile macro file from the flat package
|
||||||
|
Resolves: rhbz#1484993
|
||||||
|
|
||||||
* Wed Feb 21 2018 Miro Hrončok <mhroncok@redhat.com> - 3.7.0-0.10.b1
|
* Wed Feb 21 2018 Miro Hrončok <mhroncok@redhat.com> - 3.7.0-0.10.b1
|
||||||
- Filter out automatic /usr/bin/python3.X requirement,
|
- Filter out automatic /usr/bin/python3.X requirement,
|
||||||
recommend the main package from libs instead
|
recommend the main package from libs instead
|
||||||
|
Loading…
Reference in New Issue
Block a user