python3: enable lib2to3 to also search and fix .pyc files.
authorNj Hsiong <nj.hsiong@gmail.com>
Wed, 9 Jan 2019 11:43:22 +0000 (19:43 +0800)
committerNj Hsiong <nj.hsiong@gmail.com>
Wed, 9 Jan 2019 14:06:52 +0000 (22:06 +0800)
python3's lib2to3 would fail in silence if python3 and its packages are installed as compiled .pyc files. Root cause is, in Lib/lib2to3/refactor.py, the function get_all_fix_names only searches '.py' fix names.

Signed-off-by: Nj Hsiong <nj.hsiong@gmail.com>
lang/python/python3/Makefile
lang/python/python3/patches/017_lib2to3_fix_pyc_search.patch [new file with mode: 0644]

index e4116e27d1da929f0d16ad2051a41417416979b9..2d950db6051a0f22c575fe86a17285c655a57e2b 100644 (file)
@@ -14,7 +14,7 @@ PYTHON_VERSION:=$(PYTHON3_VERSION)
 PYTHON_VERSION_MICRO:=$(PYTHON3_VERSION_MICRO)
 
 PKG_NAME:=python3
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_VERSION:=$(PYTHON_VERSION).$(PYTHON_VERSION_MICRO)
 
 PKG_SOURCE:=Python-$(PKG_VERSION).tar.xz
diff --git a/lang/python/python3/patches/017_lib2to3_fix_pyc_search.patch b/lang/python/python3/patches/017_lib2to3_fix_pyc_search.patch
new file mode 100644 (file)
index 0000000..5972914
--- /dev/null
@@ -0,0 +1,17 @@
+diff --git a/Lib/lib2to3/refactor.py b/Lib/lib2to3/refactor.py
+index 7841b99..1e0d3b3 100644
+--- a/Lib/lib2to3/refactor.py
++++ b/Lib/lib2to3/refactor.py
+@@ -37,6 +37,12 @@ def get_all_fix_names(fixer_pkg, remove_prefix=True):
+             if remove_prefix:
+                 name = name[4:]
+             fix_names.append(name[:-3])
++        if name.startswith("fix_") and name.endswith(".pyc"):
++            if remove_prefix:
++                name = name[4:]
++            name = name[:-4]
++            if name not in fix_names:
++                fix_names.append(name)
+     return fix_names