#27 Fix the py_byte_compile macro to work on Python 2
Merged 6 years ago by churchyard. Opened 6 years ago by churchyard.
rpms/ churchyard/python3 py_byte_compile  into  master

file modified
+18 -3
@@ -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}

file modified
+6 -1
@@ -14,7 +14,7 @@ 

  #  WARNING  When rebasing to a new Python version,

  #           remember to update the python3-docs package as well

  Version: %{pybasever}.4

- Release: 17%{?dist}

+ Release: 18%{?dist}

  License: Python

  

  
@@ -1513,6 +1513,11 @@ 

  # ======================================================

  

  %changelog

+ * Thu Mar 15 2018 Miro Hrončok <mhroncok@redhat.com> - 3.6.4-18

+ - Fix the py_byte_compile macro to work on Python 2

+ - Remove the pybytecompile macro file from the flat package

+ Resolves: rhbz#1484993

+ 

  * Tue Mar 13 2018 Charalampos Stratakis <cstratak@redhat.com> - 3.6.4-17

  - Do not send IP addresses in SNI TLS extension

  

See https://bugzilla.redhat.com/show_bug.cgi?id=1484993

Inspired by Terje Røsten's workaround from that bugzilla

Backport from https://src.fedoraproject.org/rpms/python37/pull-request/3

@pviktori You wanted to review this.

Ship it!
Sorry for the long delay :'(

rebased onto e5f4159

6 years ago

Pull-Request has been merged by churchyard

6 years ago