...instead of guessing from the executable name. This should make it work on EPEL7 as well where we ship 3.4 and 3.6 https://bugzilla.redhat.com/show_bug.cgi?id=1599809
		
			
				
	
	
		
			28 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # Note that the path could itself be a python file, or a directory
 | |
| 
 | |
| # 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 all Python versions
 | |
| # Which unfortunately makes the definition more complicated than it should be
 | |
| 
 | |
| %py_byte_compile()\
 | |
| 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:]]' || :\
 | |
| }\
 | |
| \
 | |
| # 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}
 |