From 474ff0ec6ac0f38e948e345cd9650ed808204dc2 Mon Sep 17 00:00:00 2001 From: Kubilay Kocak Date: Fri, 8 Jan 2016 16:45:09 +0000 Subject: lang/python{27,3*}: Backport patch in upstream issue20397 In certain situations, file references (.py[co]) for Python files that fail to compile with compileall() are still added to distutils --record output. This output is used for pkg-plist generation and must only contain references to files that will be installed. One example of a failure condition is when a Python 2/3 compatible package containing a file containing Python 3.x only code is built with Python 2.x, such as Gunicorn's _gaiohttp.py [1] This change backports patches submitted against upstream issue 20397 [2] that has not yet been committed. - For Python 2.7 and 3.5, backport both install_lib and test - For Python 3.2, 3.3 and 3.4, only backport install_lib [1] https://svnweb.freebsd.org/changeset/ports/404558 [2] https://bugs.python.org/issue20397 Thank you to Brendan Molloy for producing and submitting the patches against upstream sources. Reviewed by: sbz (python) MFH: 2016Q1 Differential Revision: D4832 --- lang/python34/Makefile | 2 +- .../patch-Lib_distutils_command_install__lib.py | 35 ++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 lang/python34/files/patch-Lib_distutils_command_install__lib.py (limited to 'lang/python34') diff --git a/lang/python34/Makefile b/lang/python34/Makefile index b2c076e87f9d..e06ac3c486b3 100644 --- a/lang/python34/Makefile +++ b/lang/python34/Makefile @@ -3,7 +3,7 @@ PORTNAME= python34 PORTVERSION= ${PYTHON_PORTVERSION} -PORTREVISION= 0 +PORTREVISION= 1 CATEGORIES= lang python ipv6 MASTER_SITES= PYTHON/ftp/python/${PORTVERSION} DISTNAME= Python-${PORTVERSION} diff --git a/lang/python34/files/patch-Lib_distutils_command_install__lib.py b/lang/python34/files/patch-Lib_distutils_command_install__lib.py new file mode 100644 index 000000000000..78b107068ec0 --- /dev/null +++ b/lang/python34/files/patch-Lib_distutils_command_install__lib.py @@ -0,0 +1,35 @@ +From 9934ce31b8447667f71c211e559a8de71e8263db Mon Sep 17 00:00:00 2001 +From: Brendan Molloy +Date: Mon, 4 Jan 2016 23:14:06 +1100 +Subject: [PATCH] Check bytecode file actually exists and tests + +Should solve issue 20397, where using the --record argument results +in files that failed to generate bytecode files are added to the +record file nonetheless. + +--- Lib/distutils/command/install_lib.py.orig 2016-01-08 12:38:49 UTC ++++ Lib/distutils/command/install_lib.py +@@ -165,11 +165,19 @@ class install_lib(Command): + if ext != PYTHON_SOURCE_EXTENSION: + continue + if self.compile: +- bytecode_files.append(importlib.util.cache_from_source( +- py_file, debug_override=True)) ++ candidate = importlib.util.cache_from_source( ++ py_file, debug_override=True) ++ ++ if os.path.isfile(candidate): ++ bytecode_files.append(candidate) ++ + if self.optimize > 0: +- bytecode_files.append(importlib.util.cache_from_source( +- py_file, debug_override=False)) ++ candidate = importlib.util.cache_from_source( ++ py_file, debug_override=False) ++ ++ if os.path.isfile(candidate): ++ bytecode_files.append(candidate) ++ + + return bytecode_files + -- cgit v1.2.3