#17 Move macros.pybytecompile in here from python3X-devel
Merged 4 months ago by churchyard. Opened 4 months ago by carlwgeorge.
rpms/ carlwgeorge/python-rpm-macros el6-pybytecompile  into  el6

file added
+27

@@ -0,0 +1,27 @@ 

+ # 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}

file modified
+9 -2

@@ -1,6 +1,6 @@ 

  Name:           python-rpm-macros

  Version:        3

- Release:        13%{?dist}

+ Release:        14%{?dist}

  Summary:        The unversioned Python RPM macros

  

  License:        MIT

@@ -8,6 +8,7 @@ 

  Source1:        macros.python-srpm

  Source2:        macros.python2

  Source3:        macros.python3

+ Source5:        macros.pybytecompile

  

  BuildArch:      noarch

  # For %%python3_pkgversion used in %%python_provide

@@ -45,12 +46,13 @@ 

  

  %install

  mkdir -p %{buildroot}/%{rpmmacrodir}

- install -m 644 %{SOURCE0} %{SOURCE1} %{SOURCE2} %{SOURCE3} \

+ install -m 644 %{SOURCE0} %{SOURCE1} %{SOURCE2} %{SOURCE3} %{SOURCE5} \

    %{buildroot}/%{rpmmacrodir}

  

  

  %files

  %{rpmmacrodir}/macros.python

+ %{rpmmacrodir}/macros.pybytecompile

  

  %files -n python-srpm-macros

  %{rpmmacrodir}/macros.python-srpm

@@ -63,6 +65,11 @@ 

  

  

  %changelog

+ * Wed Mar 06 2019 Carl George <carl@george.computer> - 3-14

+ - Move macros.pybytecompile in here from python3X-devel

+ - macros.pybytecompile: Detect Python version through sys.version_info instead

+   of guessing from the executable name

+ 

  * Mon Jul 09 2018 Jason L Tibbitts III <tibbs@math.uh.edu> - 3-13

  - Backport %%python3_platform macro.

  

Backporting to el6 branch from #10 (epel7). This is necessary to facilitate python34#23.

Pull-Request has been merged by churchyard

4 months ago