summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/python/python3
AgeCommit message (Collapse)Author
2022-06-21python3: fix a race condition in the test_socket.testSockName testRoss Burton
This test uses find_unused_port() which is inherently racey, so retry it a few times before failing. [ YOCTO #14840 ] Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2022-06-21python3: upgrade 3.10.4 -> 3.10.5Xu Huan
0001-Don-t-search-system-for-headers-libraries.patch refreshed for new version. Signed-off-by: Xu Huan <xuhuan.fnst@fujitsu.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2022-06-17python: Avoid shebang overflow on python-config.pyPaulo Neves
The native path may be too big, leading to shebang overflow. Just use the #!/usr/bin/env python3. Signed-off-by: Paulo Neves <ptsneves@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-05-28python3: Ensure stale empty python module directories don't break the buildRichard Purdie
There are two issues inside importlib. Firstly, the modules are accessed in on disk order. This means behaviour seen on one system might not reproduce on another and is a real headache. Secondly, empty directories left behind by previous modules might be looked at. This has caused a long string of different issues for us. As a result, patch this to a behaviour which works for us. Upstream discussion can follow later, this is breaking builds for too many people to leave unpatched. [YOCTO #14816] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-05-20python3: use built-in distutils for ptest, rather than setuptools' 'fork'Alexander Kanavin
The setuptools version is now used by default when setuptools is installed, but it is incompatible with some of python's own tests. Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-12python3: Do not detect multiarch when cross compilingKhem Raj
This was a long standing problem seen on aarch64 build hosts when compiling python3 with clang cross compiler. The issue is not seen with gcc because native glibc headers are still compatible with gcc cross compiler Signed-off-by: Khem Raj <raj.khem@gmail.com> Cc: Ross Burton <ross.burton@arm.com> Cc: Jon Mason <jdmason@kudzu.us> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-20python3: update 3.10.1 -> 3.10.2Alexander Kanavin
License-Update: copyright years Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-12python3: drop unneeded multiprocessing module patchAlexander Kanavin
pthread has been merged into the main libc library (and was never separate in musl), so separate linking for it is no longer needed. I ran the reproducing sequence on qemux86, qemux86_64 and same targets with musl, and it went fine: root@qemux86:~# python3 Python 3.10.0 (default, Oct 4 2021, 17:55:55) [GCC 11.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import multiprocessing >>> pool_sema = multiprocessing.BoundedSemaphore(value=1) >>> pool_sema.acquire() True >>> pool_sema.release() >>> Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-21python3: backport a fix so the test suite passes with OpenSSL 3.0.1Ross Burton
The test suite makes incorrect assumptions about OpenSSL versions post- 3.0, so backport the fix for the test suite. Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-12python3: udpate to 3.10.1Oleksandr Kravchuk
Refreshed patches. Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-06python3: mark patch as inappropriate, with better explanationAlexander Kanavin
Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-03python3: silence DeprecationWarnings in python3-configRoss Burton
Our patched python3-config uses distutils, but that will emit a DeprecationWarning when imported. This isn't useful when using the output of python3-config to find include paths. This isn't a huge problem typically as the warning goes to stderr, but some build systems read both stdout and stderr. Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-27python3-manifest: -pprint RDEPENDS on -profileTim Orling
python3-profile includes dataclasses. pprint imports dataclasses: https://github.com/python/cpython/blob/3.10/Lib/pprint.py#L38 Signed-off-by: Tim Orling <timothy.t.orling@intel.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-14python3: update 3.9.7 -> 3.10.0Alexander Kanavin
native and target 0001-Lib-sysconfig.py-use-libdir-values-from-configuratio.patch replaced by native-only 0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch which is more reboust against upstream changes, and keeps target code unmodified. This however necessitated adding 0001-sysconfig.py-use-platlibdir-also-for-purelib.patch to avoid hardcoding 'lib' on target builds as libdir. Drop chunk from 0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch as upstream now uses sysconfig directly inside distutils. Add 0001-Lib-pty.py-handle-stdin-I-O-errors-same-way-as-maste.patch and 0001-multiprocessing-disable-a-failing-test.patch to address ptest failures. License-Update: copyright years, case corrections. Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2021-10-01python3: Fix sysroot reproducibilityJoshua Watt
Fixes the reformatting of the sysconfigdata to be reproducible in the sysroot as well as in the package. During this a bug was uncovered in the way that the data was reformatted where it appears that python cannot parse a single line of code over 40000 characters. To work around this, pass a maximum with of "1" to pprint instead of sys.maxsize which will cause it to wrap as often as possible and should keep it reproducible. Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-07-16python3: Add a fix for a make install raceRichard Purdie
Add a fix for reproducibility issues where pyc files for python-config.py may not always be generated. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-07-02python3: upgrade 3.9.5 -> 3.9.6zhengruoqin
0001-Makefile-fix-Issue36464-parallel-build-race-problem.patch removed since it is included in 3.9.6 Signed-off-by: Zheng Ruoqin <zhengrq.fnst@fujitsu.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-06-21python3: skip tests requiring tools-sdkTim Orling
Conditionally skip test_ctypes.test_find unless IMAGE_FEATURES contains 'tools-sdk' as these test cases require full packagegroup-core-buildessential Fixes: AssertionError: Failed ptests: {'python3': ['test_find_library_with_gcc', 'test_find_library_with_ld']} (From OE-Core rev: 70e2fc066a18c35e42610d75eeaa1edd9aab7cf2) Signed-off-by: Tim Orling <timothy.t.orling@intel.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2021-06-17python3-manifest: add statistics subpackageTim Orling
cpython/Lib/statistics.py contains common statistics functions """ Basic statistics module. This module provides functions for calculating statistics of data, including averages, variance, and standard deviation. """ Signed-off-by: Tim Orling <timothy.t.orling@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-18python3: update status on upstreamed patchRoss Burton
Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18python3: Upgrade 3.9.2 -> 3.9.4Alejandro Enedino Hernandez Samaniego
- Rebased patch 0001-test_locale.py-correct-the-test-output-format Maintainer needs to sign CLA and resubmit - configure now explicitly requires autoconf-archive to be present Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18python3: Improve logging, syntax and update deprecated modules to ↵Alejandro Enedino Hernandez Samaniego
create_manifest The imp module has een deprecated by upstream python, drop its usage (imp.get_tag) in favor of sys.implementation.cache_tag. Avoid incorrectly getting dependencies for running script and multiprocessing module. Improve logging behavior of the create_manifest task: - Use indentation. - Logs on temp directory. - Use a proper debug flag. - Standarize syntax. Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-05python3: Skip failing ptests due to load variabilityYi Fan Yu
Skip tests until load issue is fixed, most commonly seen on the arm64 builder. [YOCTO #14296] Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-23python3: fix PACKAGECONFIG handlingMartin Jansa
* it was changed from sysconf_dis to mods_disabled in: https://git.openembedded.org/openembedded-core/diff/meta/recipes-devtools/python/python3/0017-setup.py-do-not-report-missing-dependencies-for-disa.patch?id=7347556b18b45c5f9afc2cade565a75c95876914 but unfortunately this doesn't work as mods_disabled set by remove_configured_extensions can contain only extensions which were disabled, as this list: self.extensions: ['_struct', 'array', '_contextvars', 'math', 'cmath', 'time', '_datetime', '_zoneinfo', '_random', '_bisect', '_heapq', '_pickle', 'atexit', '_json', '_lsprof', 'unicodedata', '_opcode', '_asyncio', '_abc', '_queue', '_statistics', 'fcntl', 'pwd', 'grp', 'spwd', 'select', 'parser', 'mmap', 'syslog', '_xxsubinterpreters', 'audioop', '_csv', '_posixsubprocess', '_testcapi', '_testinternalcapi', '_testbuffer', '_testimportmultiple', '_testmultiphase', '_xxtestfuzz', '_curses', '_curses_panel', '_crypt', '_socket', '_ssl', '_hashlib', '_sha256', '_sha512', '_md5', '_sha1', '_blake2', '_sha3', '_sqlite3', 'termios', 'resource', 'ossaudiodev', 'nis', 'zlib', 'binascii', '_bz2', '_lzma', 'pyexpat', '_elementtree', '_multibytecodec', '_codecs_kr', '_codecs_jp', '_codecs_cn', '_codecs_tw', '_codecs_hk', '_codecs_iso2022', '_decimal', '_ctypes_test', '_posixshmem', '_multiprocessing', '_uuid', 'xxlimited', '_ctypes'] while PACKAGECONFIG in python3 usually uses this to disable _dbm, _gdbm or runtime modules. * without this change the do_install will fail (based on check_build_completeness.py log.do_compile) with: | ERROR: Execution of '/OE/build/oe-core/tmp-glibc/work/x86_64-linux/python3-native/3.9.0-r0/temp/run.do_install.69743' failed with exit code 1: | The necessary bits to build these optional modules were not found: | _dbm _gdbm readline Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-23python3: update to 3.9.2Oleksandr Kravchuk
Removed CVE patch was upstreamed. License-Update: copyright years. Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-03python3: fix CVE-2021-3177Anuj Mittal
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-30python3: update 3.9.0 -> 3.9.1Alexander Kanavin
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-11-24python3: fix CVE-2020-27619Lee Chee Yang
Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-11-11python3: Update manifestAlejandro Hernandez Samaniego
Update the python3-manifest to match the files installed by the new version of python3. - Kept tkinter the way it was although tk isnt part of OE-Core - Made typing part of python3-core - Update other packages with new dependencies such as filecmp and dataclasses. Signed-off-by: Alejandro Enedino Hernandez Samaniego <alhe@linux.microsoft.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-10-30python: update 3.8.5 -> 3.9.0Alexander Kanavin
Drop 0001-Do-not-hardcode-lib-as-location-for-site-packages-an.patch, 0001-configure.ac-fix-LIBPL.patch and 0001-python3-Do-not-hardcode-lib-for-distutils.patch as they are all replaced by the new --platlibdir option to ./configure Rename 0001-Lib-sysconfig.py-fix-another-place-where-lib-is-hard.patch to 0001-Lib-sysconfig.py-use-libdir-values-from-configuratio.patch and describe the changes better. License-Update: documentation now dual license under PSF & BSD (not relevant for the recipe. Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-23meta: add/fix invalid Upstream-Status tagsRoss Burton
Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-11python3-manifest.json: UpdatesNathan Rossi
- Regenerate using create_manifest - Fix up some indentation compared to generated - Add "secrets" module into netclient package (introduced in 3.6) - Move "urllib" python package into core package, it is used more commonly than just netclient (e.g. email, xml, mimetypes, pydoc) - Update compression package dependencies due to some modules moving into core package - Update dependencies due to improvements to get_module_deps handling modules of a python package (e.g. ctypes.utils) Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-11python3: Improve handling of python3 manifest generationNathan Rossi
Specifically cover detection of modules within a python package that do not import anything within their __init__.py. This is at least the case with the xmlrpc package which is only used via its modules xmlrpc.server and xmlrpc.client. Other important corner cases include ctypes.utils which depends on some modules not used by ctypes. This is implemented by generally assuming that importing all the modules of a package (aka *.py within a package, excluding _*.py) will provide enough information. Also due to this change some modules import sysconfig, resulting in sysconfigdata being imported. Handle the conversion of its path to a wildcard based on the platform dependent name being replaced. Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-25Revert "python3: define a profile directory path"Mingli Yu
After ccache upgrade to 3.7.11, there is below logic introduced. 58895dc Add knowledge about -fprofile-{correction,reorder-functions,values} And the python3 ccache build issue [1] is fixed in ccache 3.7.11, so there is no need to define a profile directory path for python3 any more. [1] https://github.com/ccache/ccache/issues/615 Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-12python3: define a profile directory pathMingli Yu
After ccache upgrade to 3.7.10, there comes below error when enable ccache to build python3 and check [1] and [2] for more details. | Python-3.8.3/Modules/_contextvarsmodule.c:43:1: error: source locations for function 'PyInit__contextvars' have changed, the profile data may be out of date [-Werror=coverage-mismatch] That's because the logic for profile directory changes a little in [3] after ccache upgrades to 3.7.10. So define a profile directory path accordingly to fix the above error. [1] https://github.com/ccache/ccache/issues/615 [2] https://lists.openembedded.org/g/openembedded-core/topic/75170448#140065 [3] https://github.com/ccache/ccache/commit/91a2954eb47b4a106e2be6cf611917b895108e35 Signed-off-by: Mingli Yu <mingli.yu@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-03python3: upgrade 3.8.2 -> 3.8.3Alexander Kanavin
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-24python3-manifest.json: add pathlib to coreTim Orling
The pathlib module is for Object-oriented filesystem paths It also provides a lot of handy utilities for checking on paths. This seems to justify adding it to the core package along side os, sys, and the other *path libraries. [YOCTO #13670] Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-30python3: fixing bpo-36852 patch for builds on i686 architectureMatthias Schoepfer
The original patch "bpo-36852: proper detection of mips architecture for soft float" uses AC_CANONICAL_TARGET to determine the platform triplet. While AC_CANONICAL_TARGET exports i686 as target_cpu, gcc is using i386 instead. We fall back here to i386, as it is conform to the previous behavior. Upstream Status: Submitted [https://github.com/python/cpython/pull/13196] Signed-off-by: Matthias Schoepfer <matthias.schoepfer@ithinx.io> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-06python3-native: Should not search the system for headers/libraries.Jeremy Puhlman
The specific issue here is rpc/rpc.h, but its likely more general. /usr/include is searched for rpc/rpc.h and if it exists on the system, it changes behavior. If you are using the extended buildtools tarball on a machine that has /usr/include/rpc/rpc.h, it will decide that is good enough and not continue to search. nis fails to build because /usr/include and /usr/lib are not part of the include/link paths for the buildtools tarball compiler(nor should they be). This makes it so python3-native will not build if you are using the extended buildtools tarball, but from a larger issue perspective it is building in likely different ways depending on what machine it is building on. libtirpc is already a depend so we shouldn't need the hosts rpc/rcp.h. Signed-off-by: Jeremy A. Puhlman <jpuhlman@mvista.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-18python3: resolve ncurses host contaminationAlexander Kanavin
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-14python3: install _tkinter.*.so to python3-tkinter packageYi Zhao
When enable PACKAGECONFIG[tk], we should install _tkinter.*.so to python3-tkinter package rather than python3-misc package. Fixes: ERROR: python3-3.8.1-r0 do_package_qa: QA Issue: /usr/lib/python3.8/lib-dynload/_tkinter.cpython-38-x86_64-linux-gnu.so contained in package python3-misc requires libtk8.6.so()(64bit), but no providers found in RDEPENDS_python3-misc? [file-rdeps] Signed-off-by: Yi Zhao <yi.zhao@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-08python3: Do not hardcode "lib" for distutilsChangqing Li
Get the sys.lib from python3 itself and do not use hardcoded value of 'lib' for distutils. Solve the error below that occurs when run "python3 setup.py install" on lib64 multilib platform: [Errno 2] No such file or directory: '/usr/lib/python3.7/site-packages/test-easy-install-1828.write-test' Signed-off-by: Li Zhou <li.zhou@windriver.com> Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-08python3: fix the installation path of libpython3.7m.a for multilibChangqing Li
Fix the installation path of libpython3.7m.a on mulitlib lib64 platform to lib64 instead of lib Signed-off-by: Li Zhou <li.zhou@windriver.com> Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-21python3: correctly process ptest output with sedAlexander Kanavin
Particularly: [ERROR|FAIL] was matching characters rather than strings. Using (ERROR|FAIL) requires -r option. Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-21python3: do not compile .pyc in parallel during do_install()Alexander Kanavin
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-21python3: update to 3.8.1Alexander Kanavin
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. Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-11-25python3: update patch statusRoss Burton
Signed-off-by: Ross Burton <ross.burton@intel.com>
2019-11-05python3: Upgrade 3.7.4 -> 3.7.5Adrian Bunk
Backported patches removed. Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-24python3: fix CVE-2019-16935Chen Qi
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-22python3: ensure that all forms of python3-config are in python3-devRoss Burton
In multilib builds python3-config gets renamed to eg python3-config-lib64 but this ends up being packaged in python3-core not python3-dev. The manifest uses an extended glob to package all python* binaries that are not python-config into python3-core: "${bindir}/python*[!-config]", However, this doesn't do what was intended, as [] is a range match. Replace the globs with more verbose but precise matches, and clear out FILES_${PN} to ensure that new binaries don't end up in ${PN} (which shouldn't exist). [ YOCTO #13592 ] Signed-off-by: Ross Burton <ross.burton@intel.com>