summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorAlexander Kanavin <alex.kanavin@gmail.com>2020-01-20 18:24:47 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-01-21 12:52:52 +0000
commit28c5a5033e4893ec1f1fd5aab8b2fd0d5f815678 (patch)
tree516cabd91f2d95e50eb1980efa4cda946fdb8b57 /meta
parentf7a99d04e6fb81ffbb14cfa3caaf47e89bb424b5 (diff)
downloadpoky-28c5a5033e4893ec1f1fd5aab8b2fd0d5f815678.tar.gz
python3: update to 3.8.1
Drop backports, rebase other patches. 0001-main.c-if-OEPYTHON3HOME-is-set-use-instead-of-PYTHON.patch is removed as the use case (allowing python 2 and 3 to coexist in SDKs) is no longer relevant with Python 2.x reaching end of line and upstream has refactored the code making a rebase difficult. If needed, please re-add the patch to py2, rather than py3. Python 3.8 no longer adds "m" to "3.8" in paths, so adjust the recipes and classes accordingly. The manifest for the 3.8.0 version is updated; particularly pkgutil module is now packaged in -core (as other things in core need it); this also necessitates allowing empty -pkgutil package to avoid breakage across layers. (From OE-Core rev: e6ab9f16b92aa1abdae82c535c1a452a1341b0e2) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/classes/python3-dir.bbclass4
-rw-r--r--meta/recipes-devtools/python/python3/0001-Do-not-add-usr-lib-termcap-to-linker-flags-to-avoid-.patch14
-rw-r--r--meta/recipes-devtools/python/python3/0001-Do-not-hardcode-lib-as-location-for-site-packages-an.patch156
-rw-r--r--meta/recipes-devtools/python/python3/0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch16
-rw-r--r--meta/recipes-devtools/python/python3/0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch8
-rw-r--r--meta/recipes-devtools/python/python3/0001-main.c-if-OEPYTHON3HOME-is-set-use-instead-of-PYTHON.patch47
-rw-r--r--meta/recipes-devtools/python/python3/0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch37
-rw-r--r--meta/recipes-devtools/python/python3/0001-setup.py-pass-missing-libraries-to-Extension-for-mul.patch (renamed from meta/recipes-devtools/python/python3/0003-setup.py-pass-missing-libraries-to-Extension-for-mul.patch)41
-rw-r--r--meta/recipes-devtools/python/python3/0002-Don-t-do-runtime-test-to-get-float-byte-order.patch199
-rw-r--r--meta/recipes-devtools/python/python3/0017-setup.py-do-not-report-missing-dependencies-for-disa.patch11
-rw-r--r--meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch10
-rw-r--r--meta/recipes-devtools/python/python3/avoid_warning_about_tkinter.patch33
-rw-r--r--meta/recipes-devtools/python/python3/python-config.patch24
-rw-r--r--meta/recipes-devtools/python/python3/python3-manifest.json106
-rw-r--r--meta/recipes-devtools/python/python3_3.8.1.bb (renamed from meta/recipes-devtools/python/python3_3.7.6.bb)30
15 files changed, 249 insertions, 487 deletions
diff --git a/meta/classes/python3-dir.bbclass b/meta/classes/python3-dir.bbclass
index 7dd130bad9..036d7140d9 100644
--- a/meta/classes/python3-dir.bbclass
+++ b/meta/classes/python3-dir.bbclass
@@ -1,5 +1,5 @@
1PYTHON_BASEVERSION = "3.7" 1PYTHON_BASEVERSION = "3.8"
2PYTHON_ABI = "m" 2PYTHON_ABI = ""
3PYTHON_DIR = "python${PYTHON_BASEVERSION}" 3PYTHON_DIR = "python${PYTHON_BASEVERSION}"
4PYTHON_PN = "python3" 4PYTHON_PN = "python3"
5PYTHON_SITEPACKAGES_DIR = "${libdir}/${PYTHON_DIR}/site-packages" 5PYTHON_SITEPACKAGES_DIR = "${libdir}/${PYTHON_DIR}/site-packages"
diff --git a/meta/recipes-devtools/python/python3/0001-Do-not-add-usr-lib-termcap-to-linker-flags-to-avoid-.patch b/meta/recipes-devtools/python/python3/0001-Do-not-add-usr-lib-termcap-to-linker-flags-to-avoid-.patch
index 09f279ba1d..59592821d7 100644
--- a/meta/recipes-devtools/python/python3/0001-Do-not-add-usr-lib-termcap-to-linker-flags-to-avoid-.patch
+++ b/meta/recipes-devtools/python/python3/0001-Do-not-add-usr-lib-termcap-to-linker-flags-to-avoid-.patch
@@ -1,4 +1,4 @@
1From 23294c6ba6896115828293fdb7e67b47b38ba675 Mon Sep 17 00:00:00 2001 1From 039c53dd5baddec3359a05be0bff46a3b32bbb84 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com> 2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Fri, 25 Jan 2019 19:04:13 +0100 3Date: Fri, 25 Jan 2019 19:04:13 +0100
4Subject: [PATCH] Do not add /usr/lib/termcap to linker flags to avoid host 4Subject: [PATCH] Do not add /usr/lib/termcap to linker flags to avoid host
@@ -12,14 +12,14 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
12 1 file changed, 1 deletion(-) 12 1 file changed, 1 deletion(-)
13 13
14diff --git a/setup.py b/setup.py 14diff --git a/setup.py b/setup.py
15index b4357e3..fbec00d 100644 15index 20d7f35..ab18ff0 100644
16--- a/setup.py 16--- a/setup.py
17+++ b/setup.py 17+++ b/setup.py
18@@ -856,7 +856,6 @@ class PyBuildExt(build_ext): 18@@ -957,7 +957,6 @@ class PyBuildExt(build_ext):
19 'termcap'): 19 'termcap'):
20 readline_libs.append('termcap') 20 readline_libs.append('termcap')
21 exts.append( Extension('readline', ['readline.c'], 21 self.add(Extension('readline', ['readline.c'],
22- library_dirs=['/usr/lib/termcap'], 22- library_dirs=['/usr/lib/termcap'],
23 extra_link_args=readline_extra_link_args, 23 extra_link_args=readline_extra_link_args,
24 libraries=readline_libs) ) 24 libraries=readline_libs))
25 else: 25 else:
diff --git a/meta/recipes-devtools/python/python3/0001-Do-not-hardcode-lib-as-location-for-site-packages-an.patch b/meta/recipes-devtools/python/python3/0001-Do-not-hardcode-lib-as-location-for-site-packages-an.patch
index ea75262c4f..112c979441 100644
--- a/meta/recipes-devtools/python/python3/0001-Do-not-hardcode-lib-as-location-for-site-packages-an.patch
+++ b/meta/recipes-devtools/python/python3/0001-Do-not-hardcode-lib-as-location-for-site-packages-an.patch
@@ -1,4 +1,4 @@
1From 0fbdad1eaf541a8e92be81f39514cd249b3b0801 Mon Sep 17 00:00:00 2001 1From a078b6ff1492e848ad1055764fb9a414abaf3e12 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com> 2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Tue, 5 Feb 2019 15:52:02 +0100 3Date: Tue, 5 Feb 2019 15:52:02 +0100
4Subject: [PATCH] Do not hardcode "lib" as location for modules, site-packages 4Subject: [PATCH] Do not hardcode "lib" as location for modules, site-packages
@@ -11,13 +11,13 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
11 Include/pythonrun.h | 2 ++ 11 Include/pythonrun.h | 2 ++
12 Lib/site.py | 4 ++-- 12 Lib/site.py | 4 ++--
13 Makefile.pre.in | 5 +++-- 13 Makefile.pre.in | 5 +++--
14 Modules/getpath.c | 18 ++++++++++++------ 14 Modules/getpath.c | 22 ++++++++++++++--------
15 Python/getplatform.c | 10 ++++++++++ 15 Python/getplatform.c | 10 ++++++++++
16 Python/sysmodule.c | 2 ++ 16 Python/sysmodule.c | 2 ++
17 6 files changed, 31 insertions(+), 10 deletions(-) 17 6 files changed, 33 insertions(+), 12 deletions(-)
18 18
19diff --git a/Include/pythonrun.h b/Include/pythonrun.h 19diff --git a/Include/pythonrun.h b/Include/pythonrun.h
20index 6f0c6fc..0a17edd 100644 20index 46091e0..61b2e15 100644
21--- a/Include/pythonrun.h 21--- a/Include/pythonrun.h
22+++ b/Include/pythonrun.h 22+++ b/Include/pythonrun.h
23@@ -7,6 +7,8 @@ 23@@ -7,6 +7,8 @@
@@ -28,12 +28,12 @@ index 6f0c6fc..0a17edd 100644
28+ 28+
29 #ifndef Py_LIMITED_API 29 #ifndef Py_LIMITED_API
30 PyAPI_FUNC(int) PyRun_SimpleStringFlags(const char *, PyCompilerFlags *); 30 PyAPI_FUNC(int) PyRun_SimpleStringFlags(const char *, PyCompilerFlags *);
31 PyAPI_FUNC(int) PyRun_AnyFileFlags(FILE *, const char *, PyCompilerFlags *); 31 PyAPI_FUNC(int) PyRun_AnyFileExFlags(
32diff --git a/Lib/site.py b/Lib/site.py 32diff --git a/Lib/site.py b/Lib/site.py
33index ffd132b..b55f6d8 100644 33index a065ab0..1d720ef 100644
34--- a/Lib/site.py 34--- a/Lib/site.py
35+++ b/Lib/site.py 35+++ b/Lib/site.py
36@@ -334,12 +334,12 @@ def getsitepackages(prefixes=None): 36@@ -335,12 +335,12 @@ def getsitepackages(prefixes=None):
37 seen.add(prefix) 37 seen.add(prefix)
38 38
39 if os.sep == '/': 39 if os.sep == '/':
@@ -49,10 +49,10 @@ index ffd132b..b55f6d8 100644
49 49
50 def addsitepackages(known_paths, prefixes=None): 50 def addsitepackages(known_paths, prefixes=None):
51diff --git a/Makefile.pre.in b/Makefile.pre.in 51diff --git a/Makefile.pre.in b/Makefile.pre.in
52index 6e81b2f..671a20e 100644 52index 65665df..be49140 100644
53--- a/Makefile.pre.in 53--- a/Makefile.pre.in
54+++ b/Makefile.pre.in 54+++ b/Makefile.pre.in
55@@ -142,7 +142,7 @@ LIBDIR= @libdir@ 55@@ -143,7 +143,7 @@ LIBDIR= @libdir@
56 MANDIR= @mandir@ 56 MANDIR= @mandir@
57 INCLUDEDIR= @includedir@ 57 INCLUDEDIR= @includedir@
58 CONFINCLUDEDIR= $(exec_prefix)/include 58 CONFINCLUDEDIR= $(exec_prefix)/include
@@ -61,7 +61,7 @@ index 6e81b2f..671a20e 100644
61 ABIFLAGS= @ABIFLAGS@ 61 ABIFLAGS= @ABIFLAGS@
62 62
63 # Detailed destination directories 63 # Detailed destination directories
64@@ -768,6 +768,7 @@ Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile 64@@ -753,6 +753,7 @@ Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile
65 -DEXEC_PREFIX='"$(exec_prefix)"' \ 65 -DEXEC_PREFIX='"$(exec_prefix)"' \
66 -DVERSION='"$(VERSION)"' \ 66 -DVERSION='"$(VERSION)"' \
67 -DVPATH='"$(VPATH)"' \ 67 -DVPATH='"$(VPATH)"' \
@@ -69,7 +69,7 @@ index 6e81b2f..671a20e 100644
69 -o $@ $(srcdir)/Modules/getpath.c 69 -o $@ $(srcdir)/Modules/getpath.c
70 70
71 Programs/python.o: $(srcdir)/Programs/python.c 71 Programs/python.o: $(srcdir)/Programs/python.c
72@@ -856,7 +857,7 @@ regen-opcode: 72@@ -868,7 +869,7 @@ regen-symbol: $(srcdir)/Include/graminit.h
73 Python/compile.o Python/symtable.o Python/ast_unparse.o Python/ast.o Python/future.o Parser/parsetok.o: $(srcdir)/Include/graminit.h $(srcdir)/Include/Python-ast.h 73 Python/compile.o Python/symtable.o Python/ast_unparse.o Python/ast.o Python/future.o Parser/parsetok.o: $(srcdir)/Include/graminit.h $(srcdir)/Include/Python-ast.h
74 74
75 Python/getplatform.o: $(srcdir)/Python/getplatform.c 75 Python/getplatform.o: $(srcdir)/Python/getplatform.c
@@ -79,72 +79,90 @@ index 6e81b2f..671a20e 100644
79 Python/importdl.o: $(srcdir)/Python/importdl.c 79 Python/importdl.o: $(srcdir)/Python/importdl.c
80 $(CC) -c $(PY_CORE_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c 80 $(CC) -c $(PY_CORE_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
81diff --git a/Modules/getpath.c b/Modules/getpath.c 81diff --git a/Modules/getpath.c b/Modules/getpath.c
82index e6a3e8e..0c62af6 100644 82index b727f66..c003e46 100644
83--- a/Modules/getpath.c 83--- a/Modules/getpath.c
84+++ b/Modules/getpath.c 84+++ b/Modules/getpath.c
85@@ -123,6 +123,7 @@ typedef struct { 85@@ -128,6 +128,7 @@ typedef struct {
86 wchar_t *exec_prefix; /* EXEC_PREFIX define */ 86 wchar_t *exec_prefix; /* EXEC_PREFIX macro */
87 87
88 wchar_t *lib_python; /* "lib/pythonX.Y" */ 88 wchar_t *lib_python; /* "lib/pythonX.Y" */
89+ wchar_t *multilib_python; /* "lib[suffix]/pythonX.Y" */ 89+ wchar_t *multilib_python; /* "lib[suffix]/pythonX.Y" */
90 wchar_t argv0_path[MAXPATHLEN+1];
91 wchar_t zip_path[MAXPATHLEN+1]; /* ".../lib/pythonXY.zip" */
92 90
93@@ -314,7 +315,7 @@ search_for_prefix(const _PyCoreConfig *core_config, 91 int prefix_found; /* found platform independent libraries? */
92 int exec_prefix_found; /* found the platform dependent libraries? */
93@@ -386,7 +387,7 @@ search_for_prefix(PyCalculatePath *calculate, _PyPathConfig *pathconfig,
94 if (delim) { 94 if (delim) {
95 *delim = L'\0'; 95 *delim = L'\0';
96 } 96 }
97- joinpath(prefix, calculate->lib_python); 97- status = joinpath(prefix, calculate->lib_python, prefix_len);
98+ joinpath(prefix, calculate->multilib_python); 98+ status = joinpath(prefix, calculate->multilib_python, prefix_len);
99 joinpath(prefix, LANDMARK); 99 if (_PyStatus_EXCEPTION(status)) {
100 return 1; 100 return status;
101 } 101 }
102@@ -343,7 +344,7 @@ search_for_prefix(const _PyCoreConfig *core_config, 102@@ -444,7 +445,7 @@ search_for_prefix(PyCalculatePath *calculate, _PyPathConfig *pathconfig,
103 copy_absolute(prefix, calculate->argv0_path, MAXPATHLEN+1);
104 do { 103 do {
105 n = wcslen(prefix); 104 /* Path: <argv0_path or substring> / <lib_python> / LANDMARK */
106- joinpath(prefix, calculate->lib_python); 105 size_t n = wcslen(prefix);
107+ joinpath(prefix, calculate->multilib_python); 106- status = joinpath(prefix, calculate->lib_python, prefix_len);
108 joinpath(prefix, LANDMARK); 107+ status = joinpath(prefix, calculate->multilib_python, prefix_len);
109 if (ismodule(prefix)) { 108 if (_PyStatus_EXCEPTION(status)) {
110 return 1; 109 return status;
111@@ -355,7 +356,7 @@ search_for_prefix(const _PyCoreConfig *core_config,
112 /* Look at configure's PREFIX */
113 wcsncpy(prefix, calculate->prefix, MAXPATHLEN);
114 prefix[MAXPATHLEN] = L'\0';
115- joinpath(prefix, calculate->lib_python);
116+ joinpath(prefix, calculate->multilib_python);
117 joinpath(prefix, LANDMARK);
118 if (ismodule(prefix)) {
119 return 1;
120@@ -427,7 +428,7 @@ search_for_exec_prefix(const _PyCoreConfig *core_config,
121 wcsncpy(exec_prefix, core_config->home, MAXPATHLEN);
122 } 110 }
123 exec_prefix[MAXPATHLEN] = L'\0'; 111@@ -467,7 +468,7 @@ search_for_prefix(PyCalculatePath *calculate, _PyPathConfig *pathconfig,
124- joinpath(exec_prefix, calculate->lib_python); 112 if (safe_wcscpy(prefix, calculate->prefix, prefix_len) < 0) {
125+ joinpath(exec_prefix, calculate->multilib_python); 113 return PATHLEN_ERR();
126 joinpath(exec_prefix, L"lib-dynload"); 114 }
127 return 1; 115- status = joinpath(prefix, calculate->lib_python, prefix_len);
116+ status = joinpath(prefix, calculate->multilib_python, prefix_len);
117 if (_PyStatus_EXCEPTION(status)) {
118 return status;
128 } 119 }
129@@ -464,7 +465,7 @@ search_for_exec_prefix(const _PyCoreConfig *core_config, 120@@ -510,7 +511,7 @@ calculate_prefix(PyCalculatePath *calculate, _PyPathConfig *pathconfig,
130 copy_absolute(exec_prefix, calculate->argv0_path, MAXPATHLEN+1); 121 if (safe_wcscpy(prefix, calculate->prefix, prefix_len) < 0) {
122 return PATHLEN_ERR();
123 }
124- status = joinpath(prefix, calculate->lib_python, prefix_len);
125+ status = joinpath(prefix, calculate->multilib_python, prefix_len);
126 if (_PyStatus_EXCEPTION(status)) {
127 return status;
128 }
129@@ -635,7 +636,7 @@ search_for_exec_prefix(PyCalculatePath *calculate, _PyPathConfig *pathconfig,
130 return PATHLEN_ERR();
131 }
132 }
133- status = joinpath(exec_prefix, calculate->lib_python, exec_prefix_len);
134+ status = joinpath(exec_prefix, calculate->multilib_python, exec_prefix_len);
135 if (_PyStatus_EXCEPTION(status)) {
136 return status;
137 }
138@@ -667,7 +668,7 @@ search_for_exec_prefix(PyCalculatePath *calculate, _PyPathConfig *pathconfig,
131 do { 139 do {
132 n = wcslen(exec_prefix); 140 /* Path: <argv0_path or substring> / <lib_python> / "lib-dynload" */
133- joinpath(exec_prefix, calculate->lib_python); 141 size_t n = wcslen(exec_prefix);
134+ joinpath(exec_prefix, calculate->multilib_python); 142- status = joinpath(exec_prefix, calculate->lib_python, exec_prefix_len);
135 joinpath(exec_prefix, L"lib-dynload"); 143+ status = joinpath(exec_prefix, calculate->multilib_python, exec_prefix_len);
136 if (isdir(exec_prefix)) { 144 if (_PyStatus_EXCEPTION(status)) {
137 return 1; 145 return status;
138@@ -476,7 +477,7 @@ search_for_exec_prefix(const _PyCoreConfig *core_config, 146 }
139 /* Look at configure's EXEC_PREFIX */ 147@@ -689,7 +690,7 @@ search_for_exec_prefix(PyCalculatePath *calculate, _PyPathConfig *pathconfig,
140 wcsncpy(exec_prefix, calculate->exec_prefix, MAXPATHLEN); 148 if (safe_wcscpy(exec_prefix, calculate->exec_prefix, exec_prefix_len) < 0) {
141 exec_prefix[MAXPATHLEN] = L'\0'; 149 return PATHLEN_ERR();
142- joinpath(exec_prefix, calculate->lib_python); 150 }
143+ joinpath(exec_prefix, calculate->multilib_python); 151- status = joinpath(exec_prefix, calculate->lib_python, exec_prefix_len);
144 joinpath(exec_prefix, L"lib-dynload"); 152+ status = joinpath(exec_prefix, calculate->multilib_python, exec_prefix_len);
145 if (isdir(exec_prefix)) { 153 if (_PyStatus_EXCEPTION(status)) {
146 return 1; 154 return status;
147@@ -871,6 +872,10 @@ calculate_init(PyCalculatePath *calculate, 155 }
156@@ -928,7 +929,7 @@ calculate_argv0_path(PyCalculatePath *calculate, const wchar_t *program_full_pat
157 return PATHLEN_ERR();
158 }
159 reduce(argv0_path);
160- status = joinpath(argv0_path, calculate->lib_python, argv0_path_len);
161+ status = joinpath(argv0_path, calculate->multilib_python, argv0_path_len);
162 if (_PyStatus_EXCEPTION(status)) {
163 PyMem_RawFree(wbuf);
164 return status;
165@@ -1201,6 +1202,10 @@ calculate_init(PyCalculatePath *calculate, const PyConfig *config)
148 if (!calculate->lib_python) { 166 if (!calculate->lib_python) {
149 return DECODE_LOCALE_ERR("EXEC_PREFIX define", len); 167 return DECODE_LOCALE_ERR("EXEC_PREFIX define", len);
150 } 168 }
@@ -152,10 +170,10 @@ index e6a3e8e..0c62af6 100644
152+ if (!calculate->multilib_python) { 170+ if (!calculate->multilib_python) {
153+ return DECODE_LOCALE_ERR("EXEC_PREFIX define", len); 171+ return DECODE_LOCALE_ERR("EXEC_PREFIX define", len);
154+ } 172+ }
155 return _Py_INIT_OK();
156 }
157 173
158@@ -882,6 +887,7 @@ calculate_free(PyCalculatePath *calculate) 174 calculate->warnings = config->pathconfig_warnings;
175 calculate->pythonpath_env = config->pythonpath_env;
176@@ -1216,6 +1221,7 @@ calculate_free(PyCalculatePath *calculate)
159 PyMem_RawFree(calculate->prefix); 177 PyMem_RawFree(calculate->prefix);
160 PyMem_RawFree(calculate->exec_prefix); 178 PyMem_RawFree(calculate->exec_prefix);
161 PyMem_RawFree(calculate->lib_python); 179 PyMem_RawFree(calculate->lib_python);
@@ -182,10 +200,10 @@ index 81a0f7a..d55396b 100644
182+ return LIB; 200+ return LIB;
183+} 201+}
184diff --git a/Python/sysmodule.c b/Python/sysmodule.c 202diff --git a/Python/sysmodule.c b/Python/sysmodule.c
185index efe5b29..de77b17 100644 203index 5b0fb81..0dce754 100644
186--- a/Python/sysmodule.c 204--- a/Python/sysmodule.c
187+++ b/Python/sysmodule.c 205+++ b/Python/sysmodule.c
188@@ -2319,6 +2319,8 @@ _PySys_BeginInit(PyObject **sysmod) 206@@ -2668,6 +2668,8 @@ _PySys_InitCore(_PyRuntimeState *runtime, PyInterpreterState *interp,
189 PyUnicode_FromString(Py_GetCopyright())); 207 PyUnicode_FromString(Py_GetCopyright()));
190 SET_SYS_FROM_STRING("platform", 208 SET_SYS_FROM_STRING("platform",
191 PyUnicode_FromString(Py_GetPlatform())); 209 PyUnicode_FromString(Py_GetPlatform()));
diff --git a/meta/recipes-devtools/python/python3/0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch b/meta/recipes-devtools/python/python3/0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch
index e7af88654d..fe0aa8aabe 100644
--- a/meta/recipes-devtools/python/python3/0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch
+++ b/meta/recipes-devtools/python/python3/0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch
@@ -1,4 +1,4 @@
1From 7535c39951b9d15dd64c4669092a8582ba555466 Mon Sep 17 00:00:00 2001 1From 2581ebe3cd9686089aed223651e1b8bf0b862b48 Mon Sep 17 00:00:00 2001
2From: Matthias Schoepfer <matthias.schoepfer@ithinx.io> 2From: Matthias Schoepfer <matthias.schoepfer@ithinx.io>
3Date: Fri, 31 May 2019 15:34:34 +0200 3Date: Fri, 31 May 2019 15:34:34 +0200
4Subject: [PATCH] bpo-36852: proper detection of mips architecture for soft 4Subject: [PATCH] bpo-36852: proper detection of mips architecture for soft
@@ -12,15 +12,16 @@ to do this in a more autoconf/autotools manner.
12 12
13Upstream-Status: Submitted [https://github.com/python/cpython/pull/13196] 13Upstream-Status: Submitted [https://github.com/python/cpython/pull/13196]
14Signed-off-by: Matthias Schoepfer <matthias.schoepfer@ithinx.io> 14Signed-off-by: Matthias Schoepfer <matthias.schoepfer@ithinx.io>
15
15--- 16---
16 configure.ac | 169 ++++++--------------------------------------------- 17 configure.ac | 171 +++++----------------------------------------------
17 1 file changed, 17 insertions(+), 152 deletions(-) 18 1 file changed, 17 insertions(+), 154 deletions(-)
18 19
19diff --git a/configure.ac b/configure.ac 20diff --git a/configure.ac b/configure.ac
20index a7de901e08..a73e2de51b 100644 21index 0f85486..0ca7e24 100644
21--- a/configure.ac 22--- a/configure.ac
22+++ b/configure.ac 23+++ b/configure.ac
23@@ -727,158 +727,23 @@ fi 24@@ -704,160 +704,23 @@ fi
24 MULTIARCH=$($CC --print-multiarch 2>/dev/null) 25 MULTIARCH=$($CC --print-multiarch 2>/dev/null)
25 AC_SUBST(MULTIARCH) 26 AC_SUBST(MULTIARCH)
26 27
@@ -163,6 +164,8 @@ index a7de901e08..a73e2de51b 100644
163- i386-gnu 164- i386-gnu
164-#elif defined(__APPLE__) 165-#elif defined(__APPLE__)
165- darwin 166- darwin
167-#elif defined(__VXWORKS__)
168- vxworks
166-#else 169-#else
167-# error unknown platform triplet 170-# error unknown platform triplet
168-#endif 171-#endif
@@ -196,6 +199,3 @@ index a7de901e08..a73e2de51b 100644
196 199
197 if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then 200 if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then
198 if test x$PLATFORM_TRIPLET != x$MULTIARCH; then 201 if test x$PLATFORM_TRIPLET != x$MULTIARCH; then
199--
2002.21.0
201
diff --git a/meta/recipes-devtools/python/python3/0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch b/meta/recipes-devtools/python/python3/0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch
index 1709011be8..03719cafcd 100644
--- a/meta/recipes-devtools/python/python3/0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch
+++ b/meta/recipes-devtools/python/python3/0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch
@@ -1,4 +1,4 @@
1From eff903c600f4c40f5753e95ab1557126fc6e0c9c Mon Sep 17 00:00:00 2001 1From 14eecf00459c0af698ed811e4f8bea460aada681 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com> 2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Thu, 31 Jan 2019 16:46:30 +0100 3Date: Thu, 31 Jan 2019 16:46:30 +0100
4Subject: [PATCH] distutils/sysconfig: append 4Subject: [PATCH] distutils/sysconfig: append
@@ -15,10 +15,10 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
15 2 files changed, 4 insertions(+) 15 2 files changed, 4 insertions(+)
16 16
17diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py 17diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
18index 0a034ee..3dfd0a3 100644 18index b51629e..2df348c 100644
19--- a/Lib/distutils/sysconfig.py 19--- a/Lib/distutils/sysconfig.py
20+++ b/Lib/distutils/sysconfig.py 20+++ b/Lib/distutils/sysconfig.py
21@@ -439,6 +439,8 @@ def _init_posix(): 21@@ -438,6 +438,8 @@ def _init_posix():
22 platform=sys.platform, 22 platform=sys.platform,
23 multiarch=getattr(sys.implementation, '_multiarch', ''), 23 multiarch=getattr(sys.implementation, '_multiarch', ''),
24 )) 24 ))
@@ -28,7 +28,7 @@ index 0a034ee..3dfd0a3 100644
28 build_time_vars = _temp.build_time_vars 28 build_time_vars = _temp.build_time_vars
29 global _config_vars 29 global _config_vars
30diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py 30diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py
31index 87fa5e6..756a41c 100644 31index b2d790b..405273c 100644
32--- a/Lib/sysconfig.py 32--- a/Lib/sysconfig.py
33+++ b/Lib/sysconfig.py 33+++ b/Lib/sysconfig.py
34@@ -419,6 +419,8 @@ def _init_posix(vars): 34@@ -419,6 +419,8 @@ def _init_posix(vars):
diff --git a/meta/recipes-devtools/python/python3/0001-main.c-if-OEPYTHON3HOME-is-set-use-instead-of-PYTHON.patch b/meta/recipes-devtools/python/python3/0001-main.c-if-OEPYTHON3HOME-is-set-use-instead-of-PYTHON.patch
deleted file mode 100644
index a146c747f8..0000000000
--- a/meta/recipes-devtools/python/python3/0001-main.c-if-OEPYTHON3HOME-is-set-use-instead-of-PYTHON.patch
+++ /dev/null
@@ -1,47 +0,0 @@
1From 5ce3ac59531828ff682646fbba59b2126b28a8aa Mon Sep 17 00:00:00 2001
2From: Jaewon Lee <jaewon.lee@xilinx.com>
3Date: Thu, 25 Apr 2019 15:34:26 -0700
4Subject: [PATCH] main.c: if OEPYTHON3HOME is set use instead of PYTHONHOME
5
6There is one variable PYTHONHOME to determine where libraries are coming
7from for both python2 and python3. This becomes an issue if only one has
8libraries in the specified PYTHONHOME path, but they are using the same
9PYTHONHOME. Creating another variable OEPYTHON3HOME to allow for a way
10to set a different path for python3
11
12Signed-off-by: Jaewon Lee <jaewon.lee@xilinx.com>
13
14Upstream-Status: Inappropriate [OE specific configuration]
15
16---
17 Modules/main.c | 17 +++++++++++++----
18 1 file changed, 13 insertions(+), 4 deletions(-)
19
20diff --git a/Modules/main.c b/Modules/main.c
21index acc59c6..407085a 100644
22--- a/Modules/main.c
23+++ b/Modules/main.c
24@@ -1834,10 +1834,19 @@ config_init_home(_PyCoreConfig *config)
25 }
26 return _Py_INIT_OK();
27 }
28-
29- int res = config_get_env_var_dup(&home, L"PYTHONHOME", "PYTHONHOME");
30- if (res < 0) {
31- return DECODE_LOCALE_ERR("PYTHONHOME", res);
32+ int res;
33+ const char *oepython3home = config_get_env_var("OEPYTHON3HOME");
34+ if (oepython3home) {
35+ res = config_get_env_var_dup(&home, L"OEPYTHON3HOME", "OEPYTHON3HOME");
36+ if (res < 0) {
37+ return DECODE_LOCALE_ERR("OEPYTHON3HOME", res);
38+ }
39+ }
40+ else {
41+ res = config_get_env_var_dup(&home, L"PYTHONHOME", "PYTHONHOME");
42+ if (res < 0) {
43+ return DECODE_LOCALE_ERR("PYTHONHOME", res);
44+ }
45 }
46 config->home = home;
47 return _Py_INIT_OK();
diff --git a/meta/recipes-devtools/python/python3/0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch b/meta/recipes-devtools/python/python3/0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch
index a0ea897f4e..fb10ca94b3 100644
--- a/meta/recipes-devtools/python/python3/0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch
+++ b/meta/recipes-devtools/python/python3/0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch
@@ -1,4 +1,4 @@
1From 2645317fef09afe31b01bb2c1d4fe5b9afdbb11a Mon Sep 17 00:00:00 2001 1From 994783da5c21cab81b6589ed2d4275e665a946f9 Mon Sep 17 00:00:00 2001
2From: Changqing Li <changqing.li@windriver.com> 2From: Changqing Li <changqing.li@windriver.com>
3Date: Mon, 22 Oct 2018 15:19:51 +0800 3Date: Mon, 22 Oct 2018 15:19:51 +0800
4Subject: [PATCH] python3: use cc_basename to replace CC for checking compiler 4Subject: [PATCH] python3: use cc_basename to replace CC for checking compiler
@@ -21,12 +21,13 @@ Signed-off-by: Li Zhou <li.zhou@windriver.com>
21patch originally from Li Zhou, I just rework it to new version 21patch originally from Li Zhou, I just rework it to new version
22 22
23Signed-off-by: Changqing Li <changqing.li@windriver.com> 23Signed-off-by: Changqing Li <changqing.li@windriver.com>
24
24--- 25---
25 configure.ac | 19 ++++++++++--------- 26 configure.ac | 19 ++++++++++---------
26 1 file changed, 10 insertions(+), 9 deletions(-) 27 1 file changed, 10 insertions(+), 9 deletions(-)
27 28
28diff --git a/configure.ac b/configure.ac 29diff --git a/configure.ac b/configure.ac
29index a7de901..4a3681f 100644 30index a189d42..0f85486 100644
30--- a/configure.ac 31--- a/configure.ac
31+++ b/configure.ac 32+++ b/configure.ac
32@@ -54,6 +54,7 @@ AC_CONFIG_HEADER(pyconfig.h) 33@@ -54,6 +54,7 @@ AC_CONFIG_HEADER(pyconfig.h)
@@ -37,7 +38,7 @@ index a7de901..4a3681f 100644
37 38
38 # pybuilddir.txt will be created by --generate-posix-vars in the Makefile 39 # pybuilddir.txt will be created by --generate-posix-vars in the Makefile
39 rm -f pybuilddir.txt 40 rm -f pybuilddir.txt
40@@ -695,7 +696,7 @@ AC_MSG_RESULT($with_cxx_main) 41@@ -671,7 +672,7 @@ AC_MSG_RESULT($with_cxx_main)
41 preset_cxx="$CXX" 42 preset_cxx="$CXX"
42 if test -z "$CXX" 43 if test -z "$CXX"
43 then 44 then
@@ -46,7 +47,7 @@ index a7de901..4a3681f 100644
46 gcc) AC_PATH_TOOL(CXX, [g++], [g++], [notfound]) ;; 47 gcc) AC_PATH_TOOL(CXX, [g++], [g++], [notfound]) ;;
47 cc) AC_PATH_TOOL(CXX, [c++], [c++], [notfound]) ;; 48 cc) AC_PATH_TOOL(CXX, [c++], [c++], [notfound]) ;;
48 clang|*/clang) AC_PATH_TOOL(CXX, [clang++], [clang++], [notfound]) ;; 49 clang|*/clang) AC_PATH_TOOL(CXX, [clang++], [clang++], [notfound]) ;;
49@@ -979,7 +980,7 @@ rmdir CaseSensitiveTestDir 50@@ -957,7 +958,7 @@ rmdir CaseSensitiveTestDir
50 51
51 case $ac_sys_system in 52 case $ac_sys_system in
52 hp*|HP*) 53 hp*|HP*)
@@ -55,7 +56,7 @@ index a7de901..4a3681f 100644
55 cc|*/cc) CC="$CC -Ae";; 56 cc|*/cc) CC="$CC -Ae";;
56 esac;; 57 esac;;
57 esac 58 esac
58@@ -1336,7 +1337,7 @@ else 59@@ -1335,7 +1336,7 @@ else
59 fi], 60 fi],
60 [AC_MSG_RESULT(no)]) 61 [AC_MSG_RESULT(no)])
61 if test "$Py_LTO" = 'true' ; then 62 if test "$Py_LTO" = 'true' ; then
@@ -64,7 +65,7 @@ index a7de901..4a3681f 100644
64 *clang*) 65 *clang*)
65 AC_SUBST(LLVM_AR) 66 AC_SUBST(LLVM_AR)
66 AC_PATH_TOOL(LLVM_AR, llvm-ar, '', ${llvm_path}) 67 AC_PATH_TOOL(LLVM_AR, llvm-ar, '', ${llvm_path})
67@@ -1426,7 +1427,7 @@ then 68@@ -1425,7 +1426,7 @@ then
68 fi 69 fi
69 fi 70 fi
70 LLVM_PROF_ERR=no 71 LLVM_PROF_ERR=no
@@ -73,16 +74,16 @@ index a7de901..4a3681f 100644
73 *clang*) 74 *clang*)
74 # Any changes made here should be reflected in the GCC+Darwin case below 75 # Any changes made here should be reflected in the GCC+Darwin case below
75 PGO_PROF_GEN_FLAG="-fprofile-instr-generate" 76 PGO_PROF_GEN_FLAG="-fprofile-instr-generate"
76@@ -1500,7 +1501,7 @@ then 77@@ -1486,7 +1487,7 @@ esac
77 WRAP="-fwrapv" 78 # compiler and platform. BASECFLAGS tweaks need to be made even if the
78 fi 79 # user set OPT.
79 80
80- case $CC in 81-case $CC in
81+ case $cc_basename in 82+case $cc_basename in
82 *clang*) 83 *clang*)
83 cc_is_clang=1 84 cc_is_clang=1
84 ;; 85 ;;
85@@ -1623,7 +1624,7 @@ yes) 86@@ -1622,7 +1623,7 @@ yes)
86 87
87 # ICC doesn't recognize the option, but only emits a warning 88 # ICC doesn't recognize the option, but only emits a warning
88 ## XXX does it emit an unused result warning and can it be disabled? 89 ## XXX does it emit an unused result warning and can it be disabled?
@@ -91,7 +92,7 @@ index a7de901..4a3681f 100644
91 *icc*) 92 *icc*)
92 ac_cv_disable_unused_result_warning=no 93 ac_cv_disable_unused_result_warning=no
93 ;; 94 ;;
94@@ -1965,7 +1966,7 @@ yes) 95@@ -1943,7 +1944,7 @@ yes)
95 esac 96 esac
96 97
97 # ICC needs -fp-model strict or floats behave badly 98 # ICC needs -fp-model strict or floats behave badly
@@ -100,7 +101,7 @@ index a7de901..4a3681f 100644
100 *icc*) 101 *icc*)
101 CFLAGS_NODIST="$CFLAGS_NODIST -fp-model strict" 102 CFLAGS_NODIST="$CFLAGS_NODIST -fp-model strict"
102 ;; 103 ;;
103@@ -2727,7 +2728,7 @@ then 104@@ -2711,7 +2712,7 @@ then
104 then 105 then
105 LINKFORSHARED="-Wl,--export-dynamic" 106 LINKFORSHARED="-Wl,--export-dynamic"
106 fi;; 107 fi;;
@@ -109,7 +110,7 @@ index a7de901..4a3681f 100644
109 *gcc*) 110 *gcc*)
110 if $CC -Xlinker --help 2>&1 | grep export-dynamic >/dev/null 111 if $CC -Xlinker --help 2>&1 | grep export-dynamic >/dev/null
111 then 112 then
112@@ -5429,7 +5430,7 @@ if test "$have_gcc_asm_for_x87" = yes; then 113@@ -5362,7 +5363,7 @@ if test "$have_gcc_asm_for_x87" = yes; then
113 # Some versions of gcc miscompile inline asm: 114 # Some versions of gcc miscompile inline asm:
114 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46491 115 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46491
115 # http://gcc.gnu.org/ml/gcc/2010-11/msg00366.html 116 # http://gcc.gnu.org/ml/gcc/2010-11/msg00366.html
diff --git a/meta/recipes-devtools/python/python3/0003-setup.py-pass-missing-libraries-to-Extension-for-mul.patch b/meta/recipes-devtools/python/python3/0001-setup.py-pass-missing-libraries-to-Extension-for-mul.patch
index b9d5bc9c51..d38ed61dd7 100644
--- a/meta/recipes-devtools/python/python3/0003-setup.py-pass-missing-libraries-to-Extension-for-mul.patch
+++ b/meta/recipes-devtools/python/python3/0001-setup.py-pass-missing-libraries-to-Extension-for-mul.patch
@@ -1,6 +1,6 @@
1From b881a79adcd4ae5ac8fe4f49d0fc77c47f777919 Mon Sep 17 00:00:00 2001 1From 7019ba184b828ed7253750cf409fc5760ef90a54 Mon Sep 17 00:00:00 2001
2From: Hongxu Jia <hongxu.jia@windriver.com> 2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Fri, 4 Aug 2017 11:16:14 +0800 3Date: Thu, 9 Jan 2020 17:44:05 +0100
4Subject: [PATCH] setup.py: pass missing libraries to Extension for 4Subject: [PATCH] setup.py: pass missing libraries to Extension for
5 multiprocessing module 5 multiprocessing module
6 6
@@ -46,35 +46,24 @@ ValueError: semaphore or lock released too many times
46 46
47And the semaphore issue also caused multiprocessing.Queue().put() hung. 47And the semaphore issue also caused multiprocessing.Queue().put() hung.
48 48
49Upstream-Status: Submitted [https://github.com/python/cpython/pull/2999] 49Upstream-Status: Pensing
50 50
51Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> 51Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
52Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
52--- 53---
53 setup.py | 7 +++++-- 54 setup.py | 2 +-
54 1 file changed, 5 insertions(+), 2 deletions(-) 55 1 file changed, 1 insertion(+), 1 deletion(-)
55 56
56diff --git a/setup.py b/setup.py 57diff --git a/setup.py b/setup.py
57index b7a36a6..658ead3 100644 58index ec3f2a4..b0f1541 100644
58--- a/setup.py 59--- a/setup.py
59+++ b/setup.py 60+++ b/setup.py
60@@ -1584,8 +1584,10 @@ class PyBuildExt(build_ext): 61@@ -1671,7 +1671,7 @@ class PyBuildExt(build_ext):
61 elif host_platform.startswith('netbsd'): 62 libraries=libs,
62 macros = dict() 63 include_dirs=["Modules/_multiprocessing"]))
63 libraries = []
64-
65- else: # Linux and other unices
66+ elif host_platform.startswith(('linux')):
67+ macros = dict()
68+ libraries = ['pthread']
69+ else: # Other unices
70 macros = dict()
71 libraries = ['rt']
72 64
73@@ -1603,6 +1605,7 @@ class PyBuildExt(build_ext): 65- self.add(Extension('_multiprocessing', multiprocessing_srcs,
74 66+ self.add(Extension('_multiprocessing', multiprocessing_srcs, libraries=['pthread'],
75 exts.append ( Extension('_multiprocessing', multiprocessing_srcs, 67 include_dirs=["Modules/_multiprocessing"]))
76 define_macros=list(macros.items()),
77+ libraries=libraries,
78 include_dirs=["Modules/_multiprocessing"]))
79 # End multiprocessing
80 68
69 def detect_uuid(self):
diff --git a/meta/recipes-devtools/python/python3/0002-Don-t-do-runtime-test-to-get-float-byte-order.patch b/meta/recipes-devtools/python/python3/0002-Don-t-do-runtime-test-to-get-float-byte-order.patch
deleted file mode 100644
index 58ab709028..0000000000
--- a/meta/recipes-devtools/python/python3/0002-Don-t-do-runtime-test-to-get-float-byte-order.patch
+++ /dev/null
@@ -1,199 +0,0 @@
1From fa96a7fd19e17b9c6b4dd01c3c3774fb382dddc6 Mon Sep 17 00:00:00 2001
2From: Ross Burton <ross.burton@intel.com>
3Date: Wed, 5 Sep 2018 11:45:52 +0100
4Subject: [PATCH] Don't do runtime test to get float byte order
5
6Python uses AC_RUN_IFELSE to determine the byte order for floats and doubles,
7and falls back onto "I don't know" if it can't run code. This results in
8crippled floating point numbers in Python, and the regression tests fail.
9
10Instead of running code, take a macro from autoconf-archive which compiles C
11with a special double in which has an ASCII representation, and then greps the
12binary to identify the format.
13
14Upstream-Status: Backport [2a9c3805ddedf282881ef7811a561c70b74f80b1]
15Signed-off-by: Ross Burton <ross.burton@intel.com>
16---
17 configure.ac | 72 +++------------------------
18 m4/ax_c_float_words_bigendian.m4 | 83 ++++++++++++++++++++++++++++++++
19 2 files changed, 90 insertions(+), 65 deletions(-)
20 create mode 100644 m4/ax_c_float_words_bigendian.m4
21
22diff --git a/configure.ac b/configure.ac
23index 4a3681f..4ab19a6 100644
24--- a/configure.ac
25+++ b/configure.ac
26@@ -4328,77 +4328,19 @@ fi
27 # * Check for various properties of floating point *
28 # **************************************************
29
30-AC_MSG_CHECKING(whether C doubles are little-endian IEEE 754 binary64)
31-AC_CACHE_VAL(ac_cv_little_endian_double, [
32-AC_RUN_IFELSE([AC_LANG_SOURCE([[
33-#include <string.h>
34-int main() {
35- double x = 9006104071832581.0;
36- if (memcmp(&x, "\x05\x04\x03\x02\x01\xff\x3f\x43", 8) == 0)
37- return 0;
38- else
39- return 1;
40-}
41-]])],
42-[ac_cv_little_endian_double=yes],
43-[ac_cv_little_endian_double=no],
44-[ac_cv_little_endian_double=no])])
45-AC_MSG_RESULT($ac_cv_little_endian_double)
46-if test "$ac_cv_little_endian_double" = yes
47-then
48- AC_DEFINE(DOUBLE_IS_LITTLE_ENDIAN_IEEE754, 1,
49- [Define if C doubles are 64-bit IEEE 754 binary format, stored
50- with the least significant byte first])
51-fi
52-
53-AC_MSG_CHECKING(whether C doubles are big-endian IEEE 754 binary64)
54-AC_CACHE_VAL(ac_cv_big_endian_double, [
55-AC_RUN_IFELSE([AC_LANG_SOURCE([[
56-#include <string.h>
57-int main() {
58- double x = 9006104071832581.0;
59- if (memcmp(&x, "\x43\x3f\xff\x01\x02\x03\x04\x05", 8) == 0)
60- return 0;
61- else
62- return 1;
63-}
64-]])],
65-[ac_cv_big_endian_double=yes],
66-[ac_cv_big_endian_double=no],
67-[ac_cv_big_endian_double=no])])
68-AC_MSG_RESULT($ac_cv_big_endian_double)
69-if test "$ac_cv_big_endian_double" = yes
70+AX_C_FLOAT_WORDS_BIGENDIAN
71+if test "$ax_cv_c_float_words_bigendian" = "yes"
72 then
73 AC_DEFINE(DOUBLE_IS_BIG_ENDIAN_IEEE754, 1,
74 [Define if C doubles are 64-bit IEEE 754 binary format, stored
75 with the most significant byte first])
76-fi
77-
78-# Some ARM platforms use a mixed-endian representation for doubles.
79-# While Python doesn't currently have full support for these platforms
80-# (see e.g., issue 1762561), we can at least make sure that float <-> string
81-# conversions work.
82-AC_MSG_CHECKING(whether C doubles are ARM mixed-endian IEEE 754 binary64)
83-AC_CACHE_VAL(ac_cv_mixed_endian_double, [
84-AC_RUN_IFELSE([AC_LANG_SOURCE([[
85-#include <string.h>
86-int main() {
87- double x = 9006104071832581.0;
88- if (memcmp(&x, "\x01\xff\x3f\x43\x05\x04\x03\x02", 8) == 0)
89- return 0;
90- else
91- return 1;
92-}
93-]])],
94-[ac_cv_mixed_endian_double=yes],
95-[ac_cv_mixed_endian_double=no],
96-[ac_cv_mixed_endian_double=no])])
97-AC_MSG_RESULT($ac_cv_mixed_endian_double)
98-if test "$ac_cv_mixed_endian_double" = yes
99+elif test "$ax_cv_c_float_words_bigendian" = "no"
100 then
101- AC_DEFINE(DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754, 1,
102+ AC_DEFINE(DOUBLE_IS_LITTLE_ENDIAN_IEEE754, 1,
103 [Define if C doubles are 64-bit IEEE 754 binary format, stored
104- in ARM mixed-endian order (byte order 45670123)])
105+ with the least significant byte first])
106+else
107+ AC_MSG_ERROR([Cannot identify floating point byte order])
108 fi
109
110 # The short float repr introduced in Python 3.1 requires the
111diff --git a/m4/ax_c_float_words_bigendian.m4 b/m4/ax_c_float_words_bigendian.m4
112new file mode 100644
113index 0000000..216b90d
114--- /dev/null
115+++ b/m4/ax_c_float_words_bigendian.m4
116@@ -0,0 +1,83 @@
117+# ===============================================================================
118+# https://www.gnu.org/software/autoconf-archive/ax_c_float_words_bigendian.html
119+# ===============================================================================
120+#
121+# SYNOPSIS
122+#
123+# AX_C_FLOAT_WORDS_BIGENDIAN([ACTION-IF-TRUE], [ACTION-IF-FALSE], [ACTION-IF-UNKNOWN])
124+#
125+# DESCRIPTION
126+#
127+# Checks the ordering of words within a multi-word float. This check is
128+# necessary because on some systems (e.g. certain ARM systems), the float
129+# word ordering can be different from the byte ordering. In a multi-word
130+# float context, "big-endian" implies that the word containing the sign
131+# bit is found in the memory location with the lowest address. This
132+# implementation was inspired by the AC_C_BIGENDIAN macro in autoconf.
133+#
134+# The endianness is detected by first compiling C code that contains a
135+# special double float value, then grepping the resulting object file for
136+# certain strings of ASCII values. The double is specially crafted to have
137+# a binary representation that corresponds with a simple string. In this
138+# implementation, the string "noonsees" was selected because the
139+# individual word values ("noon" and "sees") are palindromes, thus making
140+# this test byte-order agnostic. If grep finds the string "noonsees" in
141+# the object file, the target platform stores float words in big-endian
142+# order. If grep finds "seesnoon", float words are in little-endian order.
143+# If neither value is found, the user is instructed to specify the
144+# ordering.
145+#
146+# LICENSE
147+#
148+# Copyright (c) 2008 Daniel Amelang <dan@amelang.net>
149+#
150+# Copying and distribution of this file, with or without modification, are
151+# permitted in any medium without royalty provided the copyright notice
152+# and this notice are preserved. This file is offered as-is, without any
153+# warranty.
154+
155+#serial 11
156+
157+AC_DEFUN([AX_C_FLOAT_WORDS_BIGENDIAN],
158+ [AC_CACHE_CHECK(whether float word ordering is bigendian,
159+ ax_cv_c_float_words_bigendian, [
160+
161+ax_cv_c_float_words_bigendian=unknown
162+AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
163+
164+double d = 90904234967036810337470478905505011476211692735615632014797120844053488865816695273723469097858056257517020191247487429516932130503560650002327564517570778480236724525140520121371739201496540132640109977779420565776568942592.0;
165+
166+]])], [
167+
168+if grep noonsees conftest.$ac_objext >/dev/null ; then
169+ ax_cv_c_float_words_bigendian=yes
170+fi
171+if grep seesnoon conftest.$ac_objext >/dev/null ; then
172+ if test "$ax_cv_c_float_words_bigendian" = unknown; then
173+ ax_cv_c_float_words_bigendian=no
174+ else
175+ ax_cv_c_float_words_bigendian=unknown
176+ fi
177+fi
178+
179+])])
180+
181+case $ax_cv_c_float_words_bigendian in
182+ yes)
183+ m4_default([$1],
184+ [AC_DEFINE([FLOAT_WORDS_BIGENDIAN], 1,
185+ [Define to 1 if your system stores words within floats
186+ with the most significant word first])]) ;;
187+ no)
188+ $2 ;;
189+ *)
190+ m4_default([$3],
191+ [AC_MSG_ERROR([
192+
193+Unknown float word ordering. You need to manually preset
194+ax_cv_c_float_words_bigendian=no (or yes) according to your system.
195+
196+ ])]) ;;
197+esac
198+
199+])# AX_C_FLOAT_WORDS_BIGENDIAN
diff --git a/meta/recipes-devtools/python/python3/0017-setup.py-do-not-report-missing-dependencies-for-disa.patch b/meta/recipes-devtools/python/python3/0017-setup.py-do-not-report-missing-dependencies-for-disa.patch
index c15295c034..4bd98f62fd 100644
--- a/meta/recipes-devtools/python/python3/0017-setup.py-do-not-report-missing-dependencies-for-disa.patch
+++ b/meta/recipes-devtools/python/python3/0017-setup.py-do-not-report-missing-dependencies-for-disa.patch
@@ -1,4 +1,4 @@
1From e3b59cb9658e1d3efa3535840939a0fa92a70a5a Mon Sep 17 00:00:00 2001 1From a2dd127b4163aff6cc35af0d0251321964232ad4 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com> 2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Mon, 7 Oct 2019 13:22:14 +0200 3Date: Mon, 7 Oct 2019 13:22:14 +0200
4Subject: [PATCH] setup.py: do not report missing dependencies for disabled 4Subject: [PATCH] setup.py: do not report missing dependencies for disabled
@@ -10,22 +10,23 @@ build completeness checker which relies on the report.
10 10
11Upstream-Status: Inappropriate [oe-core specific] 11Upstream-Status: Inappropriate [oe-core specific]
12Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> 12Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
13
13--- 14---
14 setup.py | 4 ++++ 15 setup.py | 4 ++++
15 1 file changed, 4 insertions(+) 16 1 file changed, 4 insertions(+)
16 17
17diff --git a/setup.py b/setup.py 18diff --git a/setup.py b/setup.py
18index 4b53668..0097643 100644 19index 7691258..ec3f2a4 100644
19--- a/setup.py 20--- a/setup.py
20+++ b/setup.py 21+++ b/setup.py
21@@ -365,6 +365,10 @@ class PyBuildExt(build_ext): 22@@ -408,6 +408,10 @@ class PyBuildExt(build_ext):
22 print("%-*s %-*s %-*s" % (longest, e, longest, f, 23 print("%-*s %-*s %-*s" % (longest, e, longest, f,
23 longest, g)) 24 longest, g))
24 25
25+ # There is no need to report missing module dependencies, 26+ # There is no need to report missing module dependencies,
26+ # if the modules have been disabled in the first place. 27+ # if the modules have been disabled in the first place.
27+ missing = list(set(missing) - set(sysconf_dis)) 28+ self.missing = list(set(self.missing) - set(sysconf_dis))
28+ 29+
29 if missing: 30 if self.missing:
30 print() 31 print()
31 print("Python build finished successfully!") 32 print("Python build finished successfully!")
diff --git a/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch b/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch
index d49604ba4d..3105f0d176 100644
--- a/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch
+++ b/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch
@@ -1,4 +1,4 @@
1From a274ba778838824efcacaba57c415b7262f779ec Mon Sep 17 00:00:00 2001 1From 6ca960869738fc89041a2e672d8e28b51e73d3c6 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 14 May 2013 15:00:26 -0700 3Date: Tue, 14 May 2013 15:00:26 -0700
4Subject: [PATCH] python3: Add target and native recipes 4Subject: [PATCH] python3: Add target and native recipes
@@ -18,10 +18,10 @@ Upstream-Status: Inappropriate [embedded specific]
18 1 file changed, 11 insertions(+), 3 deletions(-) 18 1 file changed, 11 insertions(+), 3 deletions(-)
19 19
20diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py 20diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
21index 3dfd0a3..6c6b09a 100644 21index 2df348c..4f8db84 100644
22--- a/Lib/distutils/sysconfig.py 22--- a/Lib/distutils/sysconfig.py
23+++ b/Lib/distutils/sysconfig.py 23+++ b/Lib/distutils/sysconfig.py
24@@ -97,7 +97,9 @@ def get_python_inc(plat_specific=0, prefix=None): 24@@ -96,7 +96,9 @@ def get_python_inc(plat_specific=0, prefix=None):
25 If 'prefix' is supplied, use it instead of sys.base_prefix or 25 If 'prefix' is supplied, use it instead of sys.base_prefix or
26 sys.base_exec_prefix -- i.e., ignore 'plat_specific'. 26 sys.base_exec_prefix -- i.e., ignore 'plat_specific'.
27 """ 27 """
@@ -32,7 +32,7 @@ index 3dfd0a3..6c6b09a 100644
32 prefix = plat_specific and BASE_EXEC_PREFIX or BASE_PREFIX 32 prefix = plat_specific and BASE_EXEC_PREFIX or BASE_PREFIX
33 if os.name == "posix": 33 if os.name == "posix":
34 if python_build: 34 if python_build:
35@@ -140,7 +142,13 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None): 35@@ -139,7 +141,13 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None):
36 If 'prefix' is supplied, use it instead of sys.base_prefix or 36 If 'prefix' is supplied, use it instead of sys.base_prefix or
37 sys.base_exec_prefix -- i.e., ignore 'plat_specific'. 37 sys.base_exec_prefix -- i.e., ignore 'plat_specific'.
38 """ 38 """
@@ -47,7 +47,7 @@ index 3dfd0a3..6c6b09a 100644
47 if standard_lib: 47 if standard_lib:
48 prefix = plat_specific and BASE_EXEC_PREFIX or BASE_PREFIX 48 prefix = plat_specific and BASE_EXEC_PREFIX or BASE_PREFIX
49 else: 49 else:
50@@ -148,7 +156,7 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None): 50@@ -147,7 +155,7 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None):
51 51
52 if os.name == "posix": 52 if os.name == "posix":
53 libpython = os.path.join(prefix, 53 libpython = os.path.join(prefix,
diff --git a/meta/recipes-devtools/python/python3/avoid_warning_about_tkinter.patch b/meta/recipes-devtools/python/python3/avoid_warning_about_tkinter.patch
index 24e67b4ca1..184540e794 100644
--- a/meta/recipes-devtools/python/python3/avoid_warning_about_tkinter.patch
+++ b/meta/recipes-devtools/python/python3/avoid_warning_about_tkinter.patch
@@ -1,4 +1,4 @@
1From fead48c8b501a8d7c3db21df2e599f90f38f11d3 Mon Sep 17 00:00:00 2001 1From ba7202700578d435b07cfdfb7b57e83185752800 Mon Sep 17 00:00:00 2001
2From: Andrei Gherzan <andrei@gherzan.ro> 2From: Andrei Gherzan <andrei@gherzan.ro>
3Date: Mon, 28 Jan 2019 15:57:54 +0000 3Date: Mon, 28 Jan 2019 15:57:54 +0000
4Subject: [PATCH] _tkinter module needs tk module along with tcl. tk is not yet 4Subject: [PATCH] _tkinter module needs tk module along with tcl. tk is not yet
@@ -11,26 +11,21 @@ Also simply disable the tk module since its not in DEPENDS.
11Signed-off-by: Andrei Gherzan <andrei@gherzan.ro> 11Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
12 12
13--- 13---
14 setup.py | 8 +++++--- 14 setup.py | 4 ++--
15 1 file changed, 5 insertions(+), 3 deletions(-) 15 1 file changed, 2 insertions(+), 2 deletions(-)
16 16
17diff --git a/setup.py b/setup.py 17diff --git a/setup.py b/setup.py
18index fbec00d..b7a36a6 100644 18index ab18ff0..7691258 100644
19--- a/setup.py 19--- a/setup.py
20+++ b/setup.py 20+++ b/setup.py
21@@ -1623,10 +1623,12 @@ class PyBuildExt(build_ext): 21@@ -1706,8 +1706,8 @@ class PyBuildExt(build_ext):
22 self.extensions.extend(exts) 22 self.detect_decimal()
23 self.detect_ctypes()
24 self.detect_multiprocessing()
25- if not self.detect_tkinter():
26- self.missing.append('_tkinter')
27+# if not self.detect_tkinter():
28+# self.missing.append('_tkinter')
29 self.detect_uuid()
23 30
24 # Call the method for detecting whether _tkinter can be compiled 31 ## # Uncomment these lines if you want to play with xxmodule.c
25- self.detect_tkinter(inc_dirs, lib_dirs)
26+ # self.detect_tkinter(inc_dirs, lib_dirs)
27
28- if '_tkinter' not in [e.name for e in self.extensions]:
29- missing.append('_tkinter')
30+ # tkinter module will not be avalaible as yocto
31+ # doesn't have tk integrated (yet)
32+ #if '_tkinter' not in [e.name for e in self.extensions]:
33+ # missing.append('_tkinter')
34
35 # Build the _uuid module if possible
36 uuid_incs = find_file("uuid.h", inc_dirs, ["/usr/include/uuid"])
diff --git a/meta/recipes-devtools/python/python3/python-config.patch b/meta/recipes-devtools/python/python3/python-config.patch
index f23b8b7df0..c8a8f3d4aa 100644
--- a/meta/recipes-devtools/python/python3/python-config.patch
+++ b/meta/recipes-devtools/python/python3/python-config.patch
@@ -1,4 +1,7 @@
1python-config: Revert to using distutils.sysconfig 1From 07df0ae0d70cba6d1847fe1c24a71063930bec60 Mon Sep 17 00:00:00 2001
2From: Tyler Hall <tylerwhall@gmail.com>
3Date: Sun, 4 May 2014 20:06:43 -0400
4Subject: [PATCH] python-config: Revert to using distutils.sysconfig
2 5
3The newer sysconfig module shares some code with distutils.sysconfig, but the same modifications as in 6The newer sysconfig module shares some code with distutils.sysconfig, but the same modifications as in
4 7
@@ -12,11 +15,16 @@ Upstream-Status: Inappropriate [Embedded Specific]
12 15
13Signed-off-by: Tyler Hall <tylerwhall@gmail.com> 16Signed-off-by: Tyler Hall <tylerwhall@gmail.com>
14: 17:
15Index: Python-3.3.3/Misc/python-config.in 18
16=================================================================== 19---
17--- Python-3.3.3.orig/Misc/python-config.in 20 Misc/python-config.in | 10 +++++-----
18+++ Python-3.3.3/Misc/python-config.in 21 1 file changed, 5 insertions(+), 5 deletions(-)
19@@ -4,7 +4,7 @@ 22
23diff --git a/Misc/python-config.in b/Misc/python-config.in
24index 727c4a8..c702829 100644
25--- a/Misc/python-config.in
26+++ b/Misc/python-config.in
27@@ -6,7 +6,7 @@
20 import getopt 28 import getopt
21 import os 29 import os
22 import sys 30 import sys
@@ -24,8 +32,8 @@ Index: Python-3.3.3/Misc/python-config.in
24+from distutils import sysconfig 32+from distutils import sysconfig
25 33
26 valid_opts = ['prefix', 'exec-prefix', 'includes', 'libs', 'cflags', 34 valid_opts = ['prefix', 'exec-prefix', 'includes', 'libs', 'cflags',
27 'ldflags', 'extension-suffix', 'help', 'abiflags', 'configdir'] 35 'ldflags', 'extension-suffix', 'help', 'abiflags', 'configdir',
28@@ -32,14 +32,14 @@ if '--help' in opt_flags: 36@@ -35,14 +35,14 @@ if '--help' in opt_flags:
29 37
30 for opt in opt_flags: 38 for opt in opt_flags:
31 if opt == '--prefix': 39 if opt == '--prefix':
diff --git a/meta/recipes-devtools/python/python3/python3-manifest.json b/meta/recipes-devtools/python/python3/python3-manifest.json
index dba92b0e39..cbfa8d59d3 100644
--- a/meta/recipes-devtools/python/python3/python3-manifest.json
+++ b/meta/recipes-devtools/python/python3/python3-manifest.json
@@ -122,7 +122,8 @@
122 "logging", 122 "logging",
123 "netclient", 123 "netclient",
124 "numbers", 124 "numbers",
125 "stringold" 125 "stringold",
126 "typing"
126 ], 127 ],
127 "files": [ 128 "files": [
128 "${libdir}/python${PYTHON_MAJMIN}/asyncio", 129 "${libdir}/python${PYTHON_MAJMIN}/asyncio",
@@ -182,26 +183,15 @@
182 "compression": { 183 "compression": {
183 "summary": "Python high-level compression support", 184 "summary": "Python high-level compression support",
184 "rdepends": [ 185 "rdepends": [
185 "core", 186 "core"
186 "shell",
187 "unixadmin"
188 ], 187 ],
189 "files": [ 188 "files": [
190 "${libdir}/python${PYTHON_MAJMIN}/_compression.py",
191 "${libdir}/python${PYTHON_MAJMIN}/bz2.py",
192 "${libdir}/python${PYTHON_MAJMIN}/gzip.py", 189 "${libdir}/python${PYTHON_MAJMIN}/gzip.py",
193 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_bz2.*.so",
194 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_lzma.*.so",
195 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/zlib.*.so",
196 "${libdir}/python${PYTHON_MAJMIN}/lzma.py",
197 "${libdir}/python${PYTHON_MAJMIN}/tarfile.py", 190 "${libdir}/python${PYTHON_MAJMIN}/tarfile.py",
198 "${libdir}/python${PYTHON_MAJMIN}/zipfile.py" 191 "${libdir}/python${PYTHON_MAJMIN}/zipfile.py"
199 ], 192 ],
200 "cached": [ 193 "cached": [
201 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_compression.*.pyc",
202 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/bz2.*.pyc",
203 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/gzip.*.pyc", 194 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/gzip.*.pyc",
204 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/lzma.*.pyc",
205 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/tarfile.*.pyc", 195 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/tarfile.*.pyc",
206 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/zipfile.*.pyc" 196 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/zipfile.*.pyc"
207 ] 197 ]
@@ -210,12 +200,10 @@
210 "summary": "Python interpreter and core modules", 200 "summary": "Python interpreter and core modules",
211 "rdepends": [], 201 "rdepends": [],
212 "files": [ 202 "files": [
213 "${bindir}/python3",
214 "${bindir}/python${PYTHON_MAJMIN}", 203 "${bindir}/python${PYTHON_MAJMIN}",
215 "${bindir}/python${PYTHON_MAJMIN}.real", 204 "${bindir}/python${PYTHON_MAJMIN}.real",
216 "${bindir}/python${PYTHON_BINABI}", 205 "${bindir}/python3",
217 "${includedir}/python${PYTHON_BINABI}/pyconfig*.h", 206 "${includedir}/python${PYTHON_MAJMIN}/pyconfig*.h",
218 "${prefix}/lib/python${PYTHON_MAJMIN}/config*/*[!.a]",
219 "${libdir}/python${PYTHON_MAJMIN}/UserDict.py", 207 "${libdir}/python${PYTHON_MAJMIN}/UserDict.py",
220 "${libdir}/python${PYTHON_MAJMIN}/UserList.py", 208 "${libdir}/python${PYTHON_MAJMIN}/UserList.py",
221 "${libdir}/python${PYTHON_MAJMIN}/UserString.py", 209 "${libdir}/python${PYTHON_MAJMIN}/UserString.py",
@@ -223,6 +211,7 @@
223 "${libdir}/python${PYTHON_MAJMIN}/_abcoll.py", 211 "${libdir}/python${PYTHON_MAJMIN}/_abcoll.py",
224 "${libdir}/python${PYTHON_MAJMIN}/_bootlocale.py", 212 "${libdir}/python${PYTHON_MAJMIN}/_bootlocale.py",
225 "${libdir}/python${PYTHON_MAJMIN}/_collections_abc.py", 213 "${libdir}/python${PYTHON_MAJMIN}/_collections_abc.py",
214 "${libdir}/python${PYTHON_MAJMIN}/_compression.py",
226 "${libdir}/python${PYTHON_MAJMIN}/_markupbase.py", 215 "${libdir}/python${PYTHON_MAJMIN}/_markupbase.py",
227 "${libdir}/python${PYTHON_MAJMIN}/_sitebuiltins.py", 216 "${libdir}/python${PYTHON_MAJMIN}/_sitebuiltins.py",
228 "${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata*.py", 217 "${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata*.py",
@@ -231,6 +220,7 @@
231 "${libdir}/python${PYTHON_MAJMIN}/argparse.py", 220 "${libdir}/python${PYTHON_MAJMIN}/argparse.py",
232 "${libdir}/python${PYTHON_MAJMIN}/ast.py", 221 "${libdir}/python${PYTHON_MAJMIN}/ast.py",
233 "${libdir}/python${PYTHON_MAJMIN}/bisect.py", 222 "${libdir}/python${PYTHON_MAJMIN}/bisect.py",
223 "${libdir}/python${PYTHON_MAJMIN}/bz2.py",
234 "${libdir}/python${PYTHON_MAJMIN}/code.py", 224 "${libdir}/python${PYTHON_MAJMIN}/code.py",
235 "${libdir}/python${PYTHON_MAJMIN}/codecs.py", 225 "${libdir}/python${PYTHON_MAJMIN}/codecs.py",
236 "${libdir}/python${PYTHON_MAJMIN}/codeop.py", 226 "${libdir}/python${PYTHON_MAJMIN}/codeop.py",
@@ -247,6 +237,7 @@
247 "${libdir}/python${PYTHON_MAJMIN}/encodings/latin_1.py", 237 "${libdir}/python${PYTHON_MAJMIN}/encodings/latin_1.py",
248 "${libdir}/python${PYTHON_MAJMIN}/encodings/utf_8.py", 238 "${libdir}/python${PYTHON_MAJMIN}/encodings/utf_8.py",
249 "${libdir}/python${PYTHON_MAJMIN}/enum.py", 239 "${libdir}/python${PYTHON_MAJMIN}/enum.py",
240 "${libdir}/python${PYTHON_MAJMIN}/fnmatch.py",
250 "${libdir}/python${PYTHON_MAJMIN}/functools.py", 241 "${libdir}/python${PYTHON_MAJMIN}/functools.py",
251 "${libdir}/python${PYTHON_MAJMIN}/genericpath.py", 242 "${libdir}/python${PYTHON_MAJMIN}/genericpath.py",
252 "${libdir}/python${PYTHON_MAJMIN}/getopt.py", 243 "${libdir}/python${PYTHON_MAJMIN}/getopt.py",
@@ -267,13 +258,16 @@
267 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/__pycache__/time.*.so", 258 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/__pycache__/time.*.so",
268 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/__pycache__/xreadlines.*.so", 259 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/__pycache__/xreadlines.*.so",
269 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_bisect.*.so", 260 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_bisect.*.so",
261 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_bz2.*.so",
270 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_csv.*.so", 262 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_csv.*.so",
271 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_heapq.*.so", 263 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_heapq.*.so",
264 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_lzma.*.so",
272 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_opcode.*.so", 265 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_opcode.*.so",
273 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_posixsubprocess.*.so", 266 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_posixsubprocess.*.so",
274 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_struct.*.so", 267 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_struct.*.so",
275 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/array.*.so", 268 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/array.*.so",
276 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/binascii.*.so", 269 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/binascii.*.so",
270 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/grp.*.so",
277 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/math.*.so", 271 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/math.*.so",
278 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/parser.*.so", 272 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/parser.*.so",
279 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/readline.*.so", 273 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/readline.*.so",
@@ -281,14 +275,17 @@
281 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/time.*.so", 275 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/time.*.so",
282 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/unicodedata.*.so", 276 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/unicodedata.*.so",
283 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/xreadlines.*.so", 277 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/xreadlines.*.so",
278 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/zlib.*.so",
284 "${libdir}/python${PYTHON_MAJMIN}/linecache.py", 279 "${libdir}/python${PYTHON_MAJMIN}/linecache.py",
285 "${libdir}/python${PYTHON_MAJMIN}/locale.py", 280 "${libdir}/python${PYTHON_MAJMIN}/locale.py",
281 "${libdir}/python${PYTHON_MAJMIN}/lzma.py",
286 "${libdir}/python${PYTHON_MAJMIN}/new.py", 282 "${libdir}/python${PYTHON_MAJMIN}/new.py",
287 "${libdir}/python${PYTHON_MAJMIN}/ntpath.py", 283 "${libdir}/python${PYTHON_MAJMIN}/ntpath.py",
288 "${libdir}/python${PYTHON_MAJMIN}/opcode.py", 284 "${libdir}/python${PYTHON_MAJMIN}/opcode.py",
289 "${libdir}/python${PYTHON_MAJMIN}/operator.py", 285 "${libdir}/python${PYTHON_MAJMIN}/operator.py",
290 "${libdir}/python${PYTHON_MAJMIN}/optparse.py", 286 "${libdir}/python${PYTHON_MAJMIN}/optparse.py",
291 "${libdir}/python${PYTHON_MAJMIN}/os.py", 287 "${libdir}/python${PYTHON_MAJMIN}/os.py",
288 "${libdir}/python${PYTHON_MAJMIN}/pkgutil.py",
292 "${libdir}/python${PYTHON_MAJMIN}/platform.py", 289 "${libdir}/python${PYTHON_MAJMIN}/platform.py",
293 "${libdir}/python${PYTHON_MAJMIN}/posixpath.py", 290 "${libdir}/python${PYTHON_MAJMIN}/posixpath.py",
294 "${libdir}/python${PYTHON_MAJMIN}/re.py", 291 "${libdir}/python${PYTHON_MAJMIN}/re.py",
@@ -296,6 +293,7 @@
296 "${libdir}/python${PYTHON_MAJMIN}/rlcompleter.py", 293 "${libdir}/python${PYTHON_MAJMIN}/rlcompleter.py",
297 "${libdir}/python${PYTHON_MAJMIN}/runpy.py", 294 "${libdir}/python${PYTHON_MAJMIN}/runpy.py",
298 "${libdir}/python${PYTHON_MAJMIN}/selectors.py", 295 "${libdir}/python${PYTHON_MAJMIN}/selectors.py",
296 "${libdir}/python${PYTHON_MAJMIN}/shutil.py",
299 "${libdir}/python${PYTHON_MAJMIN}/signal.py", 297 "${libdir}/python${PYTHON_MAJMIN}/signal.py",
300 "${libdir}/python${PYTHON_MAJMIN}/site.py", 298 "${libdir}/python${PYTHON_MAJMIN}/site.py",
301 "${libdir}/python${PYTHON_MAJMIN}/sitecustomize.py", 299 "${libdir}/python${PYTHON_MAJMIN}/sitecustomize.py",
@@ -315,12 +313,14 @@
315 "${libdir}/python${PYTHON_MAJMIN}/traceback.py", 313 "${libdir}/python${PYTHON_MAJMIN}/traceback.py",
316 "${libdir}/python${PYTHON_MAJMIN}/types.py", 314 "${libdir}/python${PYTHON_MAJMIN}/types.py",
317 "${libdir}/python${PYTHON_MAJMIN}/warnings.py", 315 "${libdir}/python${PYTHON_MAJMIN}/warnings.py",
318 "${libdir}/python${PYTHON_MAJMIN}/weakref.py" 316 "${libdir}/python${PYTHON_MAJMIN}/weakref.py",
317 "${prefix}/lib/python${PYTHON_MAJMIN}/config*/*[!.a]"
319 ], 318 ],
320 "cached": [ 319 "cached": [
321 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/__future__.*.pyc", 320 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/__future__.*.pyc",
322 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_bootlocale.*.pyc", 321 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_bootlocale.*.pyc",
323 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_collections_abc.*.pyc", 322 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_collections_abc.*.pyc",
323 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_compression.*.pyc",
324 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_markupbase.*.pyc", 324 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_markupbase.*.pyc",
325 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_sitebuiltins.*.pyc", 325 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_sitebuiltins.*.pyc",
326 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_sysconfigdata.*.pyc", 326 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_sysconfigdata.*.pyc",
@@ -329,6 +329,7 @@
329 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/argparse.*.pyc", 329 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/argparse.*.pyc",
330 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/ast.*.pyc", 330 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/ast.*.pyc",
331 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/bisect.*.pyc", 331 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/bisect.*.pyc",
332 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/bz2.*.pyc",
332 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/code.*.pyc", 333 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/code.*.pyc",
333 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/codecs.*.pyc", 334 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/codecs.*.pyc",
334 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/codeop.*.pyc", 335 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/codeop.*.pyc",
@@ -339,6 +340,7 @@
339 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/csv.*.pyc", 340 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/csv.*.pyc",
340 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/dis.*.pyc", 341 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/dis.*.pyc",
341 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/enum.*.pyc", 342 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/enum.*.pyc",
343 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/fnmatch.*.pyc",
342 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/functools.*.pyc", 344 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/functools.*.pyc",
343 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/genericpath.*.pyc", 345 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/genericpath.*.pyc",
344 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/getopt.*.pyc", 346 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/getopt.*.pyc",
@@ -350,10 +352,13 @@
350 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/keyword.*.pyc", 352 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/keyword.*.pyc",
351 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/linecache.*.pyc", 353 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/linecache.*.pyc",
352 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/locale.*.pyc", 354 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/locale.*.pyc",
355 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/lzma.*.pyc",
356 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/ntpath.*.pyc",
353 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/opcode.*.pyc", 357 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/opcode.*.pyc",
354 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/operator.*.pyc", 358 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/operator.*.pyc",
355 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/optparse.*.pyc", 359 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/optparse.*.pyc",
356 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/os.*.pyc", 360 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/os.*.pyc",
361 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/pkgutil.*.pyc",
357 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/platform.*.pyc", 362 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/platform.*.pyc",
358 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/posixpath.*.pyc", 363 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/posixpath.*.pyc",
359 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/re.*.pyc", 364 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/re.*.pyc",
@@ -361,6 +366,7 @@
361 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/rlcompleter.*.pyc", 366 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/rlcompleter.*.pyc",
362 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/runpy.*.pyc", 367 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/runpy.*.pyc",
363 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/selectors.*.pyc", 368 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/selectors.*.pyc",
369 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/shutil.*.pyc",
364 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/signal.*.pyc", 370 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/signal.*.pyc",
365 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/site.*.pyc", 371 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/site.*.pyc",
366 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/sre_compile.*.pyc", 372 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/sre_compile.*.pyc",
@@ -405,10 +411,10 @@
405 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_blake2.*.so", 411 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_blake2.*.so",
406 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_crypt.*.so", 412 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_crypt.*.so",
407 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_hashlib.*.so", 413 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_hashlib.*.so",
414 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_md5.*.so",
415 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sha1.*.so",
408 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sha256.*.so", 416 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sha256.*.so",
409 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sha3.*.so", 417 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sha3.*.so",
410 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sha1.*.so",
411 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_md5.*.so",
412 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sha512.*.so" 418 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_sha512.*.so"
413 ], 419 ],
414 "cached": [ 420 "cached": [
@@ -519,14 +525,12 @@
519 ] 525 ]
520 }, 526 },
521 "distutils-windows": { 527 "distutils-windows": {
522 "cached": [], 528 "summary": "Python distribution utilities (Windows installer stubs)",
523 "files": [
524 "${libdir}/python${PYTHON_MAJMIN}/distutils/command/wininst-*.exe"
525 ],
526 "rdepends": [ 529 "rdepends": [
527 "distutils" 530 "core"
528 ], 531 ],
529 "summary": "Python distribution utilities (Windows installer stubs)" 532 "files": [],
533 "cached": []
530 }, 534 },
531 "distutils": { 535 "distutils": {
532 "summary": "Python Distribution Utilities", 536 "summary": "Python Distribution Utilities",
@@ -541,13 +545,19 @@
541 "doctest": { 545 "doctest": {
542 "summary": "Python framework for running examples in docstrings", 546 "summary": "Python framework for running examples in docstrings",
543 "rdepends": [ 547 "rdepends": [
548 "asyncio",
549 "compression",
544 "core", 550 "core",
545 "debugger", 551 "debugger",
546 "difflib", 552 "difflib",
553 "io",
547 "logging", 554 "logging",
555 "netclient",
556 "numbers",
548 "pprint", 557 "pprint",
549 "shell", 558 "shell",
550 "stringold", 559 "stringold",
560 "typing",
551 "unittest" 561 "unittest"
552 ], 562 ],
553 "files": [ 563 "files": [
@@ -641,8 +651,7 @@
641 "crypt", 651 "crypt",
642 "math", 652 "math",
643 "netclient", 653 "netclient",
644 "shell", 654 "shell"
645 "unixadmin"
646 ], 655 ],
647 "files": [ 656 "files": [
648 "${libdir}/python${PYTHON_MAJMIN}/_pyio.py", 657 "${libdir}/python${PYTHON_MAJMIN}/_pyio.py",
@@ -875,9 +884,7 @@
875 "math", 884 "math",
876 "mime", 885 "mime",
877 "netclient", 886 "netclient",
878 "shell", 887 "stringold"
879 "stringold",
880 "unixadmin"
881 ], 888 ],
882 "files": [ 889 "files": [
883 "${libdir}/python${PYTHON_MAJMIN}/cgi.py", 890 "${libdir}/python${PYTHON_MAJMIN}/cgi.py",
@@ -934,12 +941,8 @@
934 "rdepends": [ 941 "rdepends": [
935 "core" 942 "core"
936 ], 943 ],
937 "files": [ 944 "files": [],
938 "${libdir}/python${PYTHON_MAJMIN}/pkgutil.py" 945 "cached": []
939 ],
940 "cached": [
941 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/pkgutil.*.pyc"
942 ]
943 }, 946 },
944 "plistlib": { 947 "plistlib": {
945 "summary": "Generate and parse Mac OS X .plist files", 948 "summary": "Generate and parse Mac OS X .plist files",
@@ -988,8 +991,7 @@
988 "summary": "Python interactive help support", 991 "summary": "Python interactive help support",
989 "rdepends": [ 992 "rdepends": [
990 "core", 993 "core",
991 "netclient", 994 "netclient"
992 "pkgutil"
993 ], 995 ],
994 "files": [ 996 "files": [
995 "${bindir}/pydoc*", 997 "${bindir}/pydoc*",
@@ -1015,22 +1017,17 @@
1015 "rdepends": [ 1017 "rdepends": [
1016 "compression", 1018 "compression",
1017 "core", 1019 "core",
1018 "stringold", 1020 "stringold"
1019 "unixadmin"
1020 ], 1021 ],
1021 "files": [ 1022 "files": [
1022 "${libdir}/python${PYTHON_MAJMIN}/cmd.py", 1023 "${libdir}/python${PYTHON_MAJMIN}/cmd.py",
1023 "${libdir}/python${PYTHON_MAJMIN}/fnmatch.py",
1024 "${libdir}/python${PYTHON_MAJMIN}/glob.py", 1024 "${libdir}/python${PYTHON_MAJMIN}/glob.py",
1025 "${libdir}/python${PYTHON_MAJMIN}/shlex.py", 1025 "${libdir}/python${PYTHON_MAJMIN}/shlex.py"
1026 "${libdir}/python${PYTHON_MAJMIN}/shutil.py"
1027 ], 1026 ],
1028 "cached": [ 1027 "cached": [
1029 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/cmd.*.pyc", 1028 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/cmd.*.pyc",
1030 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/fnmatch.*.pyc",
1031 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/glob.*.pyc", 1029 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/glob.*.pyc",
1032 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/shlex.*.pyc", 1030 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/shlex.*.pyc"
1033 "${libdir}/python${PYTHON_MAJMIN}/__pycache__/shutil.*.pyc"
1034 ] 1031 ]
1035 }, 1032 },
1036 "smtpd": { 1033 "smtpd": {
@@ -1130,7 +1127,6 @@
1130 "core" 1127 "core"
1131 ], 1128 ],
1132 "files": [ 1129 "files": [
1133 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_tkinter.*.so",
1134 "${libdir}/python${PYTHON_MAJMIN}/tkinter" 1130 "${libdir}/python${PYTHON_MAJMIN}/tkinter"
1135 ], 1131 ],
1136 "cached": [] 1132 "cached": []
@@ -1150,12 +1146,17 @@
1150 "unittest": { 1146 "unittest": {
1151 "summary": "Python unit testing framework", 1147 "summary": "Python unit testing framework",
1152 "rdepends": [ 1148 "rdepends": [
1149 "asyncio",
1150 "compression",
1153 "core", 1151 "core",
1154 "difflib", 1152 "difflib",
1153 "io",
1155 "logging", 1154 "logging",
1155 "netclient",
1156 "numbers",
1156 "pprint", 1157 "pprint",
1157 "shell", 1158 "stringold",
1158 "stringold" 1159 "typing"
1159 ], 1160 ],
1160 "files": [ 1161 "files": [
1161 "${libdir}/python${PYTHON_MAJMIN}/unittest", 1162 "${libdir}/python${PYTHON_MAJMIN}/unittest",
@@ -1172,7 +1173,6 @@
1172 ], 1173 ],
1173 "files": [ 1174 "files": [
1174 "${libdir}/python${PYTHON_MAJMIN}/getpass.py", 1175 "${libdir}/python${PYTHON_MAJMIN}/getpass.py",
1175 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/grp.*.so",
1176 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/nis.*.so" 1176 "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/nis.*.so"
1177 ], 1177 ],
1178 "cached": [ 1178 "cached": [
@@ -1185,9 +1185,7 @@
1185 "compression", 1185 "compression",
1186 "core", 1186 "core",
1187 "logging", 1187 "logging",
1188 "shell", 1188 "stringold"
1189 "stringold",
1190 "unixadmin"
1191 ], 1189 ],
1192 "files": [ 1190 "files": [
1193 "${bindir}/pyvenv*", 1191 "${bindir}/pyvenv*",
diff --git a/meta/recipes-devtools/python/python3_3.7.6.bb b/meta/recipes-devtools/python/python3_3.8.1.bb
index 8a03260f3f..a798f9828a 100644
--- a/meta/recipes-devtools/python/python3_3.7.6.bb
+++ b/meta/recipes-devtools/python/python3_3.8.1.bb
@@ -19,8 +19,6 @@ SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \
19 file://0001-Makefile.pre-use-qemu-wrapper-when-gathering-profile.patch \ 19 file://0001-Makefile.pre-use-qemu-wrapper-when-gathering-profile.patch \
20 file://0001-Do-not-hardcode-lib-as-location-for-site-packages-an.patch \ 20 file://0001-Do-not-hardcode-lib-as-location-for-site-packages-an.patch \
21 file://0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch \ 21 file://0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch \
22 file://0002-Don-t-do-runtime-test-to-get-float-byte-order.patch \
23 file://0003-setup.py-pass-missing-libraries-to-Extension-for-mul.patch \
24 file://0001-Lib-sysconfig.py-fix-another-place-where-lib-is-hard.patch \ 22 file://0001-Lib-sysconfig.py-fix-another-place-where-lib-is-hard.patch \
25 file://0001-Makefile-fix-Issue36464-parallel-build-race-problem.patch \ 23 file://0001-Makefile-fix-Issue36464-parallel-build-race-problem.patch \
26 file://0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch \ 24 file://0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch \
@@ -29,18 +27,16 @@ SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \
29 file://0001-Use-FLAG_REF-always-for-interned-strings.patch \ 27 file://0001-Use-FLAG_REF-always-for-interned-strings.patch \
30 file://0001-test_locale.py-correct-the-test-output-format.patch \ 28 file://0001-test_locale.py-correct-the-test-output-format.patch \
31 file://0017-setup.py-do-not-report-missing-dependencies-for-disa.patch \ 29 file://0017-setup.py-do-not-report-missing-dependencies-for-disa.patch \
30 file://0001-setup.py-pass-missing-libraries-to-Extension-for-mul.patch \
32 " 31 "
33 32
34SRC_URI_append_class-native = " \ 33SRC_URI_append_class-native = " \
35 file://0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch \ 34 file://0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch \
36 file://12-distutils-prefix-is-inside-staging-area.patch \ 35 file://12-distutils-prefix-is-inside-staging-area.patch \
37 " 36 "
38SRC_URI_append_class-nativesdk = " \
39 file://0001-main.c-if-OEPYTHON3HOME-is-set-use-instead-of-PYTHON.patch \
40 "
41 37
42SRC_URI[md5sum] = "c08fbee72ad5c2c95b0f4e44bf6fd72c" 38SRC_URI[md5sum] = "b3fb85fd479c0bf950c626ef80cacb57"
43SRC_URI[sha256sum] = "55a2cce72049f0794e9a11a84862e9039af9183603b78bc60d89539f82cf533f" 39SRC_URI[sha256sum] = "75894117f6db7051c1b34f37410168844bbb357c139a8a10a352e9bf8be594e8"
44 40
45# exclude pre-releases for both python 2.x and 3.x 41# exclude pre-releases for both python 2.x and 3.x
46UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P<pver>\d+(\.\d+)+).tar" 42UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P<pver>\d+(\.\d+)+).tar"
@@ -50,8 +46,7 @@ CVE_PRODUCT = "python"
50# This is not exploitable when glibc has CVE-2016-10739 fixed. 46# This is not exploitable when glibc has CVE-2016-10739 fixed.
51CVE_CHECK_WHITELIST += "CVE-2019-18348" 47CVE_CHECK_WHITELIST += "CVE-2019-18348"
52 48
53PYTHON_MAJMIN = "3.7" 49PYTHON_MAJMIN = "3.8"
54PYTHON_BINABI = "${PYTHON_MAJMIN}m"
55 50
56S = "${WORKDIR}/Python-${PV}" 51S = "${WORKDIR}/Python-${PV}"
57 52
@@ -62,8 +57,8 @@ inherit autotools pkgconfig qemu ptest multilib_header update-alternatives
62MULTILIB_SUFFIX = "${@d.getVar('base_libdir',1).split('/')[-1]}" 57MULTILIB_SUFFIX = "${@d.getVar('base_libdir',1).split('/')[-1]}"
63 58
64ALTERNATIVE_${PN}-dev = "python3-config" 59ALTERNATIVE_${PN}-dev = "python3-config"
65ALTERNATIVE_LINK_NAME[python3-config] = "${bindir}/python${PYTHON_BINABI}-config" 60ALTERNATIVE_LINK_NAME[python3-config] = "${bindir}/python${PYTHON_MAJMIN}-config"
66ALTERNATIVE_TARGET[python3-config] = "${bindir}/python${PYTHON_BINABI}-config-${MULTILIB_SUFFIX}" 61ALTERNATIVE_TARGET[python3-config] = "${bindir}/python${PYTHON_MAJMIN}-config-${MULTILIB_SUFFIX}"
67 62
68 63
69DEPENDS = "bzip2-replacement-native libffi bzip2 openssl sqlite3 zlib virtual/libintl xz virtual/crypt util-linux libtirpc libnsl2" 64DEPENDS = "bzip2-replacement-native libffi bzip2 openssl sqlite3 zlib virtual/libintl xz virtual/crypt util-linux libtirpc libnsl2"
@@ -134,7 +129,7 @@ do_install_prepend() {
134} 129}
135 130
136do_install_append_class-target() { 131do_install_append_class-target() {
137 oe_multilib_header python${PYTHON_BINABI}/pyconfig.h 132 oe_multilib_header python${PYTHON_MAJMIN}/pyconfig.h
138} 133}
139 134
140do_install_append_class-native() { 135do_install_append_class-native() {
@@ -164,7 +159,7 @@ do_install_append() {
164} 159}
165 160
166do_install_append_class-nativesdk () { 161do_install_append_class-nativesdk () {
167 create_wrapper ${D}${bindir}/python${PYTHON_MAJMIN} OEPYTHON3HOME='${prefix}' TERMINFO_DIRS='${sysconfdir}/terminfo:/etc/terminfo:/usr/share/terminfo:/usr/share/misc/terminfo:/lib/terminfo' PYTHONNOUSERSITE='1' 162 create_wrapper ${D}${bindir}/python${PYTHON_MAJMIN} TERMINFO_DIRS='${sysconfdir}/terminfo:/etc/terminfo:/usr/share/terminfo:/usr/share/misc/terminfo:/lib/terminfo' PYTHONNOUSERSITE='1'
168} 163}
169 164
170SSTATE_SCAN_FILES += "Makefile _sysconfigdata.py" 165SSTATE_SCAN_FILES += "Makefile _sysconfigdata.py"
@@ -180,7 +175,7 @@ py_package_preprocess () {
180 -e 's:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \ 175 -e 's:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \
181 ${PKGD}/${prefix}/lib/python${PYTHON_MAJMIN}/config-${PYTHON_MAJMIN}${PYTHON_ABI}*/Makefile \ 176 ${PKGD}/${prefix}/lib/python${PYTHON_MAJMIN}/config-${PYTHON_MAJMIN}${PYTHON_ABI}*/Makefile \
182 ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata*.py \ 177 ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata*.py \
183 ${PKGD}/${bindir}/python${PYTHON_BINABI}-config 178 ${PKGD}/${bindir}/python${PYTHON_MAJMIN}-config
184 179
185 # Reformat _sysconfigdata after modifying it so that it remains 180 # Reformat _sysconfigdata after modifying it so that it remains
186 # reproducible 181 # reproducible
@@ -199,7 +194,7 @@ py_package_preprocess () {
199 -c "from py_compile import compile; compile('$sysconfigfile', optimize=2)" 194 -c "from py_compile import compile; compile('$sysconfigfile', optimize=2)"
200 cd - 195 cd -
201 196
202 mv ${PKGD}/${bindir}/python${PYTHON_BINABI}-config ${PKGD}/${bindir}/python${PYTHON_BINABI}-config-${MULTILIB_SUFFIX} 197 mv ${PKGD}/${bindir}/python${PYTHON_MAJMIN}-config ${PKGD}/${bindir}/python${PYTHON_MAJMIN}-config-${MULTILIB_SUFFIX}
203 198
204 #Remove the unneeded copy of target sysconfig data 199 #Remove the unneeded copy of target sysconfig data
205 rm -rf ${PKGD}/${libdir}/python-sysconfigdata 200 rm -rf ${PKGD}/${libdir}/python-sysconfigdata
@@ -281,6 +276,7 @@ python(){
281 packages = newpackages + packages 276 packages = newpackages + packages
282 d.setVar('PACKAGES', ' '.join(packages)) 277 d.setVar('PACKAGES', ' '.join(packages))
283 d.setVar('ALLOW_EMPTY_${PN}-modules', '1') 278 d.setVar('ALLOW_EMPTY_${PN}-modules', '1')
279 d.setVar('ALLOW_EMPTY_${PN}-pkgutil', '1')
284} 280}
285 281
286# Files needed to create a new manifest 282# Files needed to create a new manifest
@@ -325,7 +321,7 @@ RPROVIDES_${PN}-venv += "python3-pyvenv"
325# package libpython3 321# package libpython3
326PACKAGES =+ "libpython3 libpython3-staticdev" 322PACKAGES =+ "libpython3 libpython3-staticdev"
327FILES_libpython3 = "${libdir}/libpython*.so.*" 323FILES_libpython3 = "${libdir}/libpython*.so.*"
328FILES_libpython3-staticdev += "${prefix}/lib/python${PYTHON_MAJMIN}/config-${PYTHON_BINABI}-*/libpython${PYTHON_BINABI}.a" 324FILES_libpython3-staticdev += "${prefix}/lib/python${PYTHON_MAJMIN}/config-${PYTHON_MAJMIN}-*/libpython${PYTHON_MAJMIN}.a"
329INSANE_SKIP_${PN}-dev += "dev-elf" 325INSANE_SKIP_${PN}-dev += "dev-elf"
330 326
331# catch all the rest (unsorted) 327# catch all the rest (unsorted)
@@ -346,3 +342,5 @@ RDEPENDS_${PN}-ptest_append_libc-glibc = " locale-base-tr-tr.iso-8859-9"
346RDEPENDS_${PN}-tkinter += "${@bb.utils.contains('PACKAGECONFIG', 'tk', 'tk tk-lib', '', d)}" 342RDEPENDS_${PN}-tkinter += "${@bb.utils.contains('PACKAGECONFIG', 'tk', 'tk tk-lib', '', d)}"
347RDEPENDS_${PN}-dev = "" 343RDEPENDS_${PN}-dev = ""
348 344
345RDEPENDS_${PN}-tests_append_class-target = " bash"
346RDEPENDS_${PN}-tests_append_class-nativesdk = " bash"