diff --git a/macros.pybytecompile3.7 b/macros.pybytecompile3.7 index 3968c6e..f319979 100644 --- a/macros.pybytecompile3.7 +++ b/macros.pybytecompile3.7 @@ -3,8 +3,23 @@ # Python's compile_all module only works on directories, and requires a max # 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()\ -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:]]' || :\ +py2_byte_compile () {\ + python_binary="%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} diff --git a/python37.spec b/python37.spec index fda232b..85b9e06 100644 --- a/python37.spec +++ b/python37.spec @@ -18,7 +18,7 @@ URL: https://www.python.org/ # WARNING When rebasing to a new Python version, # remember to update the python3-docs package as well Version: %{pybasever}.0 -Release: 0.10.%{?prerel}%{?dist} +Release: 0.11.%{?prerel}%{?dist} License: Python @@ -964,9 +964,9 @@ rm -rf %{buildroot}%{_bindir}/__pycache__ find %{buildroot} -perm 555 -exec chmod 755 {} \; # Install macros for rpm: +%if %{without flatpackage} mkdir -p %{buildroot}/%{_rpmconfigdir}/macros.d/ install -m 644 %{SOURCE3} %{buildroot}/%{_rpmconfigdir}/macros.d/ -%if %{without flatpackage} install -m 644 %{SOURCE9} %{buildroot}/%{_rpmconfigdir}/macros.d/ %endif @@ -1365,6 +1365,7 @@ CheckPython optimized %{_bindir}/python3-config %{_libdir}/pkgconfig/python3.pc %{_rpmconfigdir}/macros.d/macros.systempython +%{_rpmconfigdir}/macros.d/macros.pybytecompile%{pybasever} %{_bindir}/pathfix.py %endif @@ -1374,7 +1375,6 @@ CheckPython optimized %{_libdir}/libpython%{LDVERSION_optimized}.so %{_libdir}/pkgconfig/python-%{LDVERSION_optimized}.pc %{_libdir}/pkgconfig/python-%{pybasever}.pc -%{_rpmconfigdir}/macros.d/macros.pybytecompile%{pybasever} %if %{without flatpackage} @@ -1572,6 +1572,11 @@ CheckPython optimized # ====================================================== %changelog +* Wed Feb 21 2018 Miro Hrončok - 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 - 3.7.0-0.10.b1 - Filter out automatic /usr/bin/python3.X requirement, recommend the main package from libs instead